qingcloud-sdk-go/service/shared_storage.go

1082 lines
30 KiB
Go

// +-------------------------------------------------------------------------
// | Copyright (C) 2016 Yunify, Inc.
// +-------------------------------------------------------------------------
// | Licensed under the Apache License, Version 2.0 (the "License");
// | you may not use this work except in compliance with the License.
// | You may obtain a copy of the License in the LICENSE file, or at:
// |
// | http://www.apache.org/licenses/LICENSE-2.0
// |
// | Unless required by applicable law or agreed to in writing, software
// | distributed under the License is distributed on an "AS IS" BASIS,
// | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// | See the License for the specific language governing permissions and
// | limitations under the License.
// +-------------------------------------------------------------------------
package service
import (
"fmt"
"time"
"github.com/yunify/qingcloud-sdk-go/config"
"github.com/yunify/qingcloud-sdk-go/request"
"github.com/yunify/qingcloud-sdk-go/request/data"
"github.com/yunify/qingcloud-sdk-go/request/errors"
)
var _ fmt.State
var _ time.Time
type SharedStorageService struct {
Config *config.Config
Properties *SharedStorageServiceProperties
}
type SharedStorageServiceProperties struct {
// QingCloud Zone ID
Zone *string `json:"zone" name:"zone"` // Required
}
func (s *QingCloudService) SharedStorage(zone string) (*SharedStorageService, error) {
properties := &SharedStorageServiceProperties{
Zone: &zone,
}
return &SharedStorageService{Config: s.Config, Properties: properties}, nil
}
// Documentation URL: https://docs.qingcloud.com/api/vsan/attach_to_s2_shared_target.html
func (s *SharedStorageService) AttachToS2SharedTarget(i *AttachToS2SharedTargetInput) (*AttachToS2SharedTargetOutput, error) {
if i == nil {
i = &AttachToS2SharedTargetInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "AttachToS2SharedTarget",
RequestMethod: "GET",
}
x := &AttachToS2SharedTargetOutput{}
r, err := request.New(o, i, x)
if err != nil {
return nil, err
}
err = r.Send()
if err != nil {
return nil, err
}
return x, err
}
type AttachToS2SharedTargetInput struct {
SharedTarget *string `json:"shared_target" name:"shared_target" location:"params"` // Required
Volumes []*string `json:"volumes" name:"volumes" location:"params"` // Required
}
func (v *AttachToS2SharedTargetInput) Validate() error {
if v.SharedTarget == nil {
return errors.ParameterRequiredError{
ParameterName: "SharedTarget",
ParentName: "AttachToS2SharedTargetInput",
}
}
if len(v.Volumes) == 0 {
return errors.ParameterRequiredError{
ParameterName: "Volumes",
ParentName: "AttachToS2SharedTargetInput",
}
}
return nil
}
type AttachToS2SharedTargetOutput struct {
Message *string `json:"message" name:"message"`
Action *string `json:"action" name:"action" location:"elements"`
RetCode *int `json:"ret_code" name:"ret_code" location:"elements"`
SharedTarget *S2SharedTarget `json:"shared_target" name:"shared_target" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/vsan/change_s2_server_vxnet.html
func (s *SharedStorageService) ChangeS2ServerVxNet(i *ChangeS2ServerVxNetInput) (*ChangeS2ServerVxNetOutput, error) {
if i == nil {
i = &ChangeS2ServerVxNetInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "ChangeS2ServerVxnet",
RequestMethod: "GET",
}
x := &ChangeS2ServerVxNetOutput{}
r, err := request.New(o, i, x)
if err != nil {
return nil, err
}
err = r.Send()
if err != nil {
return nil, err
}
return x, err
}
type ChangeS2ServerVxNetInput struct {
PrivateIP *string `json:"private_ip" name:"private_ip" location:"params"`
S2Server *string `json:"s2_server" name:"s2_server" location:"params"` // Required
VxNet *string `json:"vxnet" name:"vxnet" location:"params"` // Required
}
func (v *ChangeS2ServerVxNetInput) Validate() error {
if v.S2Server == nil {
return errors.ParameterRequiredError{
ParameterName: "S2Server",
ParentName: "ChangeS2ServerVxNetInput",
}
}
if v.VxNet == nil {
return errors.ParameterRequiredError{
ParameterName: "VxNet",
ParentName: "ChangeS2ServerVxNetInput",
}
}
return nil
}
type ChangeS2ServerVxNetOutput struct {
Message *string `json:"message" name:"message"`
Action *string `json:"action" name:"action" location:"elements"`
JobID *string `json:"job_id" name:"job_id" location:"elements"`
RetCode *int `json:"ret_code" name:"ret_code" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/vsan/create_s2_server.html
func (s *SharedStorageService) CreateS2Server(i *CreateS2ServerInput) (*CreateS2ServerOutput, error) {
if i == nil {
i = &CreateS2ServerInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "CreateS2Server",
RequestMethod: "GET",
}
x := &CreateS2ServerOutput{}
r, err := request.New(o, i, x)
if err != nil {
return nil, err
}
err = r.Send()
if err != nil {
return nil, err
}
return x, err
}
type CreateS2ServerInput struct {
Description *string `json:"description" name:"description" location:"params"`
PrivateIP *string `json:"private_ip" name:"private_ip" location:"params"`
// S2Class's available values: 0, 1
S2Class *int `json:"s2_class" name:"s2_class" location:"params"`
S2ServerName *string `json:"s2_server_name" name:"s2_server_name" location:"params"`
ServiceType *string `json:"service_type" name:"service_type" location:"params"`
VxNet *string `json:"vxnet" name:"vxnet" location:"params"`
}
func (v *CreateS2ServerInput) Validate() error {
if v.S2Class != nil {
s2ClassValidValues := []string{"0", "1"}
s2ClassParameterValue := fmt.Sprint(*v.S2Class)
s2ClassIsValid := false
for _, value := range s2ClassValidValues {
if value == s2ClassParameterValue {
s2ClassIsValid = true
}
}
if !s2ClassIsValid {
return errors.ParameterValueNotAllowedError{
ParameterName: "S2Class",
ParameterValue: s2ClassParameterValue,
AllowedValues: s2ClassValidValues,
}
}
}
return nil
}
type CreateS2ServerOutput struct {
Message *string `json:"message" name:"message"`
Action *string `json:"action" name:"action" location:"elements"`
JobID *string `json:"job_id" name:"job_id" location:"elements"`
RetCode *int `json:"ret_code" name:"ret_code" location:"elements"`
S2Server *string `json:"s2_server" name:"s2_server" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/vsan/create_s2_shared_target.html
func (s *SharedStorageService) CreateS2SharedTarget(i *CreateS2SharedTargetInput) (*CreateS2SharedTargetOutput, error) {
if i == nil {
i = &CreateS2SharedTargetInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "CreateS2SharedTarget",
RequestMethod: "GET",
}
x := &CreateS2SharedTargetOutput{}
r, err := request.New(o, i, x)
if err != nil {
return nil, err
}
err = r.Send()
if err != nil {
return nil, err
}
return x, err
}
type CreateS2SharedTargetInput struct {
Description *string `json:"description" name:"description" location:"params"`
ExportName *string `json:"export_name" name:"export_name" location:"params"` // Required
ExportNameNfs *string `json:"export_name_nfs" name:"export_name_nfs" location:"params"`
InitiatorNames []*string `json:"initiator_names" name:"initiator_names" location:"params"`
S2Group *string `json:"s2_group" name:"s2_group" location:"params"`
S2ServerID *string `json:"s2_server_id" name:"s2_server_id" location:"params"` // Required
// TargetType's available values: ISCSI, NFS
TargetType *string `json:"target_type" name:"target_type" location:"params"` // Required
Volumes []*string `json:"volumes" name:"volumes" location:"params"`
}
func (v *CreateS2SharedTargetInput) Validate() error {
if v.ExportName == nil {
return errors.ParameterRequiredError{
ParameterName: "ExportName",
ParentName: "CreateS2SharedTargetInput",
}
}
if v.S2ServerID == nil {
return errors.ParameterRequiredError{
ParameterName: "S2ServerID",
ParentName: "CreateS2SharedTargetInput",
}
}
if v.TargetType == nil {
return errors.ParameterRequiredError{
ParameterName: "TargetType",
ParentName: "CreateS2SharedTargetInput",
}
}
if v.TargetType != nil {
targetTypeValidValues := []string{"ISCSI", "NFS"}
targetTypeParameterValue := fmt.Sprint(*v.TargetType)
targetTypeIsValid := false
for _, value := range targetTypeValidValues {
if value == targetTypeParameterValue {
targetTypeIsValid = true
}
}
if !targetTypeIsValid {
return errors.ParameterValueNotAllowedError{
ParameterName: "TargetType",
ParameterValue: targetTypeParameterValue,
AllowedValues: targetTypeValidValues,
}
}
}
return nil
}
type CreateS2SharedTargetOutput struct {
Message *string `json:"message" name:"message"`
Action *string `json:"action" name:"action" location:"elements"`
RetCode *int `json:"ret_code" name:"ret_code" location:"elements"`
S2SharedTarget *string `json:"s2_shared_target" name:"s2_shared_target" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/vsan/delete_s2_servers.html
func (s *SharedStorageService) DeleteS2Servers(i *DeleteS2ServersInput) (*DeleteS2ServersOutput, error) {
if i == nil {
i = &DeleteS2ServersInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "DeleteS2Servers",
RequestMethod: "GET",
}
x := &DeleteS2ServersOutput{}
r, err := request.New(o, i, x)
if err != nil {
return nil, err
}
err = r.Send()
if err != nil {
return nil, err
}
return x, err
}
type DeleteS2ServersInput struct {
S2Servers []*string `json:"s2_servers" name:"s2_servers" location:"params"` // Required
}
func (v *DeleteS2ServersInput) Validate() error {
if len(v.S2Servers) == 0 {
return errors.ParameterRequiredError{
ParameterName: "S2Servers",
ParentName: "DeleteS2ServersInput",
}
}
return nil
}
type DeleteS2ServersOutput struct {
Message *string `json:"message" name:"message"`
Action *string `json:"action" name:"action" location:"elements"`
JobID *string `json:"job_id" name:"job_id" location:"elements"`
RetCode *int `json:"ret_code" name:"ret_code" location:"elements"`
S2Servers []*string `json:"s2_servers" name:"s2_servers" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/vsan/delete_s2_shared_targets.html
func (s *SharedStorageService) DeleteS2SharedTargets(i *DeleteS2SharedTargetsInput) (*DeleteS2SharedTargetsOutput, error) {
if i == nil {
i = &DeleteS2SharedTargetsInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "DeleteS2SharedTargets",
RequestMethod: "GET",
}
x := &DeleteS2SharedTargetsOutput{}
r, err := request.New(o, i, x)
if err != nil {
return nil, err
}
err = r.Send()
if err != nil {
return nil, err
}
return x, err
}
type DeleteS2SharedTargetsInput struct {
SharedTargets []*string `json:"shared_targets" name:"shared_targets" location:"params"` // Required
}
func (v *DeleteS2SharedTargetsInput) Validate() error {
if len(v.SharedTargets) == 0 {
return errors.ParameterRequiredError{
ParameterName: "SharedTargets",
ParentName: "DeleteS2SharedTargetsInput",
}
}
return nil
}
type DeleteS2SharedTargetsOutput struct {
Message *string `json:"message" name:"message"`
Action *string `json:"action" name:"action" location:"elements"`
RetCode *int `json:"ret_code" name:"ret_code" location:"elements"`
SharedTargets []*string `json:"shared_targets" name:"shared_targets" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/vsan/describle_s2_default_parameters.html
func (s *SharedStorageService) DescribeS2DefaultParameters(i *DescribeS2DefaultParametersInput) (*DescribeS2DefaultParametersOutput, error) {
if i == nil {
i = &DescribeS2DefaultParametersInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "DescribeS2DefaultParameters",
RequestMethod: "GET",
}
x := &DescribeS2DefaultParametersOutput{}
r, err := request.New(o, i, x)
if err != nil {
return nil, err
}
err = r.Send()
if err != nil {
return nil, err
}
return x, err
}
type DescribeS2DefaultParametersInput struct {
Limit *int `json:"limit" name:"limit" default:"20" location:"params"`
Offset *int `json:"offset" name:"offset" default:"0" location:"params"`
// ServiceType's available values: vsan
ServiceType *string `json:"service_type" name:"service_type" location:"params"`
// TargetType's available values: ISCSI
TargetType *string `json:"target_type" name:"target_type" location:"params"`
}
func (v *DescribeS2DefaultParametersInput) Validate() error {
if v.ServiceType != nil {
serviceTypeValidValues := []string{"vsan"}
serviceTypeParameterValue := fmt.Sprint(*v.ServiceType)
serviceTypeIsValid := false
for _, value := range serviceTypeValidValues {
if value == serviceTypeParameterValue {
serviceTypeIsValid = true
}
}
if !serviceTypeIsValid {
return errors.ParameterValueNotAllowedError{
ParameterName: "ServiceType",
ParameterValue: serviceTypeParameterValue,
AllowedValues: serviceTypeValidValues,
}
}
}
if v.TargetType != nil {
targetTypeValidValues := []string{"ISCSI"}
targetTypeParameterValue := fmt.Sprint(*v.TargetType)
targetTypeIsValid := false
for _, value := range targetTypeValidValues {
if value == targetTypeParameterValue {
targetTypeIsValid = true
}
}
if !targetTypeIsValid {
return errors.ParameterValueNotAllowedError{
ParameterName: "TargetType",
ParameterValue: targetTypeParameterValue,
AllowedValues: targetTypeValidValues,
}
}
}
return nil
}
type DescribeS2DefaultParametersOutput struct {
Message *string `json:"message" name:"message"`
Action *string `json:"action" name:"action" location:"elements"`
RetCode *int `json:"ret_code" name:"ret_code" location:"elements"`
S2DefaultParametersSet []*S2DefaultParameters `json:"s2_default_parameters_set" name:"s2_default_parameters_set" location:"elements"`
TotalCount *int `json:"total_count" name:"total_count" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/vsan/describe_s2_servers.html
func (s *SharedStorageService) DescribeS2Servers(i *DescribeS2ServersInput) (*DescribeS2ServersOutput, error) {
if i == nil {
i = &DescribeS2ServersInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "DescribeS2Servers",
RequestMethod: "GET",
}
x := &DescribeS2ServersOutput{}
r, err := request.New(o, i, x)
if err != nil {
return nil, err
}
err = r.Send()
if err != nil {
return nil, err
}
return x, err
}
type DescribeS2ServersInput struct {
Limit *int `json:"limit" name:"limit" default:"20" location:"params"`
Offset *int `json:"offset" name:"offset" default:"0" location:"params"`
S2Servers []*string `json:"s2_servers" name:"s2_servers" location:"params"`
SearchWord *string `json:"search_word" name:"search_word" location:"params"`
Status []*string `json:"status" name:"status" location:"params"`
Tags []*string `json:"tags" name:"tags" location:"params"`
Verbose *int `json:"verbose" name:"verbose" location:"params"`
}
func (v *DescribeS2ServersInput) Validate() error {
return nil
}
type DescribeS2ServersOutput struct {
Message *string `json:"message" name:"message"`
Action *string `json:"action" name:"action" location:"elements"`
RetCode *int `json:"ret_code" name:"ret_code" location:"elements"`
S2ServerSet []*S2Server `json:"s2_server_set" name:"s2_server_set" location:"elements"`
TotalCount *int `json:"total_count" name:"total_count" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/vsan/describe_s2_shared_targets.html
func (s *SharedStorageService) DescribeS2SharedTargets(i *DescribeS2SharedTargetsInput) (*DescribeS2SharedTargetsOutput, error) {
if i == nil {
i = &DescribeS2SharedTargetsInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "DescribeS2SharedTargets",
RequestMethod: "GET",
}
x := &DescribeS2SharedTargetsOutput{}
r, err := request.New(o, i, x)
if err != nil {
return nil, err
}
err = r.Send()
if err != nil {
return nil, err
}
return x, err
}
type DescribeS2SharedTargetsInput struct {
Limit *int `json:"limit" name:"limit" default:"20" location:"params"`
Offset *int `json:"offset" name:"offset" default:"0" location:"params"`
S2ServerID *string `json:"s2_server_id" name:"s2_server_id" location:"params"`
SearchWord *string `json:"search_word" name:"search_word" location:"params"`
SharedTargets []*string `json:"shared_targets" name:"shared_targets" location:"params"`
Verbose *int `json:"verbose" name:"verbose" location:"params"`
}
func (v *DescribeS2SharedTargetsInput) Validate() error {
return nil
}
type DescribeS2SharedTargetsOutput struct {
Message *string `json:"message" name:"message"`
Action *string `json:"action" name:"action" location:"elements"`
RetCode *int `json:"ret_code" name:"ret_code" location:"elements"`
SharedTargetSet []*S2SharedTarget `json:"shared_target_set" name:"shared_target_set" location:"elements"`
TotalCount *int `json:"total_count" name:"total_count" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/vsan/detach_from_s2_shared_target.html
func (s *SharedStorageService) DetachFromS2SharedTarget(i *DetachFromS2SharedTargetInput) (*DetachFromS2SharedTargetOutput, error) {
if i == nil {
i = &DetachFromS2SharedTargetInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "DetachFromS2SharedTarget",
RequestMethod: "GET",
}
x := &DetachFromS2SharedTargetOutput{}
r, err := request.New(o, i, x)
if err != nil {
return nil, err
}
err = r.Send()
if err != nil {
return nil, err
}
return x, err
}
type DetachFromS2SharedTargetInput struct {
SharedTarget *string `json:"shared_target" name:"shared_target" location:"params"` // Required
Volumes []*string `json:"volumes" name:"volumes" location:"params"` // Required
}
func (v *DetachFromS2SharedTargetInput) Validate() error {
if v.SharedTarget == nil {
return errors.ParameterRequiredError{
ParameterName: "SharedTarget",
ParentName: "DetachFromS2SharedTargetInput",
}
}
if len(v.Volumes) == 0 {
return errors.ParameterRequiredError{
ParameterName: "Volumes",
ParentName: "DetachFromS2SharedTargetInput",
}
}
return nil
}
type DetachFromS2SharedTargetOutput struct {
Message *string `json:"message" name:"message"`
Action *string `json:"action" name:"action" location:"elements"`
RetCode *int `json:"ret_code" name:"ret_code" location:"elements"`
SharedTarget *S2SharedTarget `json:"shared_target" name:"shared_target" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/vsan/disable_s2_shared_targets.html
func (s *SharedStorageService) DisableS2SharedTargets(i *DisableS2SharedTargetsInput) (*DisableS2SharedTargetsOutput, error) {
if i == nil {
i = &DisableS2SharedTargetsInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "DisableS2SharedTargets",
RequestMethod: "GET",
}
x := &DisableS2SharedTargetsOutput{}
r, err := request.New(o, i, x)
if err != nil {
return nil, err
}
err = r.Send()
if err != nil {
return nil, err
}
return x, err
}
type DisableS2SharedTargetsInput struct {
SharedTargets []*string `json:"shared_targets" name:"shared_targets" location:"params"` // Required
}
func (v *DisableS2SharedTargetsInput) Validate() error {
if len(v.SharedTargets) == 0 {
return errors.ParameterRequiredError{
ParameterName: "SharedTargets",
ParentName: "DisableS2SharedTargetsInput",
}
}
return nil
}
type DisableS2SharedTargetsOutput struct {
Message *string `json:"message" name:"message"`
Action *string `json:"action" name:"action" location:"elements"`
RetCode *int `json:"ret_code" name:"ret_code" location:"elements"`
SharedTargets []*string `json:"shared_targets" name:"shared_targets" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/vsan/enable_s2_shared_targets.html
func (s *SharedStorageService) EnableS2SharedTargets(i *EnableS2SharedTargetsInput) (*EnableS2SharedTargetsOutput, error) {
if i == nil {
i = &EnableS2SharedTargetsInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "EnableS2SharedTargets",
RequestMethod: "GET",
}
x := &EnableS2SharedTargetsOutput{}
r, err := request.New(o, i, x)
if err != nil {
return nil, err
}
err = r.Send()
if err != nil {
return nil, err
}
return x, err
}
type EnableS2SharedTargetsInput struct {
SharedTargets []*string `json:"shared_targets" name:"shared_targets" location:"params"` // Required
}
func (v *EnableS2SharedTargetsInput) Validate() error {
if len(v.SharedTargets) == 0 {
return errors.ParameterRequiredError{
ParameterName: "SharedTargets",
ParentName: "EnableS2SharedTargetsInput",
}
}
return nil
}
type EnableS2SharedTargetsOutput struct {
Message *string `json:"message" name:"message"`
Action *string `json:"action" name:"action" location:"elements"`
RetCode *int `json:"ret_code" name:"ret_code" location:"elements"`
SharedTargets []*string `json:"shared_targets" name:"shared_targets" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/vsan/modify_s2_server.html
func (s *SharedStorageService) ModifyS2Server(i *ModifyS2ServerInput) (*ModifyS2ServerOutput, error) {
if i == nil {
i = &ModifyS2ServerInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "ModifyS2Server",
RequestMethod: "GET",
}
x := &ModifyS2ServerOutput{}
r, err := request.New(o, i, x)
if err != nil {
return nil, err
}
err = r.Send()
if err != nil {
return nil, err
}
return x, err
}
type ModifyS2ServerInput struct {
Description *string `json:"description" name:"description" location:"params"`
S2Server *string `json:"s2_server" name:"s2_server" location:"params"` // Required
S2ServerName *string `json:"s2_server_name" name:"s2_server_name" location:"params"`
}
func (v *ModifyS2ServerInput) Validate() error {
if v.S2Server == nil {
return errors.ParameterRequiredError{
ParameterName: "S2Server",
ParentName: "ModifyS2ServerInput",
}
}
return nil
}
type ModifyS2ServerOutput struct {
Message *string `json:"message" name:"message"`
Action *string `json:"action" name:"action" location:"elements"`
RetCode *int `json:"ret_code" name:"ret_code" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/vsan/modify_s2_shared_target.html
func (s *SharedStorageService) ModifyS2SharedTargets(i *ModifyS2SharedTargetsInput) (*ModifyS2SharedTargetsOutput, error) {
if i == nil {
i = &ModifyS2SharedTargetsInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "ModifyS2SharedTargets",
RequestMethod: "GET",
}
x := &ModifyS2SharedTargetsOutput{}
r, err := request.New(o, i, x)
if err != nil {
return nil, err
}
err = r.Send()
if err != nil {
return nil, err
}
return x, err
}
type ModifyS2SharedTargetsInput struct {
InitiatorNames []*string `json:"initiator_names" name:"initiator_names" location:"params"`
Operation *string `json:"operation" name:"operation" location:"params"` // Required
Parameters []*string `json:"parameters" name:"parameters" location:"params"` // Required
SharedTargets []*string `json:"shared_targets" name:"shared_targets" location:"params"` // Required
}
func (v *ModifyS2SharedTargetsInput) Validate() error {
if v.Operation == nil {
return errors.ParameterRequiredError{
ParameterName: "Operation",
ParentName: "ModifyS2SharedTargetsInput",
}
}
if len(v.Parameters) == 0 {
return errors.ParameterRequiredError{
ParameterName: "Parameters",
ParentName: "ModifyS2SharedTargetsInput",
}
}
if len(v.SharedTargets) == 0 {
return errors.ParameterRequiredError{
ParameterName: "SharedTargets",
ParentName: "ModifyS2SharedTargetsInput",
}
}
return nil
}
type ModifyS2SharedTargetsOutput struct {
Message *string `json:"message" name:"message"`
Action *string `json:"action" name:"action" location:"elements"`
RetCode *int `json:"ret_code" name:"ret_code" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/vsan/poweroff_s2_servers.html
func (s *SharedStorageService) PowerOffS2Servers(i *PowerOffS2ServersInput) (*PowerOffS2ServersOutput, error) {
if i == nil {
i = &PowerOffS2ServersInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "PowerOffS2Servers",
RequestMethod: "GET",
}
x := &PowerOffS2ServersOutput{}
r, err := request.New(o, i, x)
if err != nil {
return nil, err
}
err = r.Send()
if err != nil {
return nil, err
}
return x, err
}
type PowerOffS2ServersInput struct {
S2Servers *string `json:"s2_servers" name:"s2_servers" location:"params"` // Required
}
func (v *PowerOffS2ServersInput) Validate() error {
if v.S2Servers == nil {
return errors.ParameterRequiredError{
ParameterName: "S2Servers",
ParentName: "PowerOffS2ServersInput",
}
}
return nil
}
type PowerOffS2ServersOutput struct {
Message *string `json:"message" name:"message"`
Action *string `json:"action" name:"action" location:"elements"`
JobID *string `json:"job_id" name:"job_id" location:"elements"`
RetCode *int `json:"ret_code" name:"ret_code" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/vsan/poweron_s2_servers.html
func (s *SharedStorageService) PowerOnS2Servers(i *PowerOnS2ServersInput) (*PowerOnS2ServersOutput, error) {
if i == nil {
i = &PowerOnS2ServersInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "PowerOnS2Servers",
RequestMethod: "GET",
}
x := &PowerOnS2ServersOutput{}
r, err := request.New(o, i, x)
if err != nil {
return nil, err
}
err = r.Send()
if err != nil {
return nil, err
}
return x, err
}
type PowerOnS2ServersInput struct {
S2Servers []*string `json:"s2_servers" name:"s2_servers" location:"params"` // Required
}
func (v *PowerOnS2ServersInput) Validate() error {
if len(v.S2Servers) == 0 {
return errors.ParameterRequiredError{
ParameterName: "S2Servers",
ParentName: "PowerOnS2ServersInput",
}
}
return nil
}
type PowerOnS2ServersOutput struct {
Message *string `json:"message" name:"message"`
Action *string `json:"action" name:"action" location:"elements"`
JobID *string `json:"job_id" name:"job_id" location:"elements"`
RetCode *int `json:"ret_code" name:"ret_code" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/vsan/resize_s2_servers.html
func (s *SharedStorageService) ResizeS2Servers(i *ResizeS2ServersInput) (*ResizeS2ServersOutput, error) {
if i == nil {
i = &ResizeS2ServersInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "ResizeS2Servers",
RequestMethod: "GET",
}
x := &ResizeS2ServersOutput{}
r, err := request.New(o, i, x)
if err != nil {
return nil, err
}
err = r.Send()
if err != nil {
return nil, err
}
return x, err
}
type ResizeS2ServersInput struct {
S2Server *string `json:"s2_server" name:"s2_server" location:"params"` // Required
S2ServerType *int `json:"s2_server_type" name:"s2_server_type" location:"params"` // Required
}
func (v *ResizeS2ServersInput) Validate() error {
if v.S2Server == nil {
return errors.ParameterRequiredError{
ParameterName: "S2Server",
ParentName: "ResizeS2ServersInput",
}
}
if v.S2ServerType == nil {
return errors.ParameterRequiredError{
ParameterName: "S2ServerType",
ParentName: "ResizeS2ServersInput",
}
}
return nil
}
type ResizeS2ServersOutput struct {
Message *string `json:"message" name:"message"`
Action *string `json:"action" name:"action" location:"elements"`
JobID *string `json:"job_id" name:"job_id" location:"elements"`
RetCode *int `json:"ret_code" name:"ret_code" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/vsan/update_s2_servers.html
func (s *SharedStorageService) UpdateS2Servers(i *UpdateS2ServersInput) (*UpdateS2ServersOutput, error) {
if i == nil {
i = &UpdateS2ServersInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "UpdateS2Servers",
RequestMethod: "GET",
}
x := &UpdateS2ServersOutput{}
r, err := request.New(o, i, x)
if err != nil {
return nil, err
}
err = r.Send()
if err != nil {
return nil, err
}
return x, err
}
type UpdateS2ServersInput struct {
S2Servers []*string `json:"s2_servers" name:"s2_servers" location:"params"` // Required
}
func (v *UpdateS2ServersInput) Validate() error {
if len(v.S2Servers) == 0 {
return errors.ParameterRequiredError{
ParameterName: "S2Servers",
ParentName: "UpdateS2ServersInput",
}
}
return nil
}
type UpdateS2ServersOutput struct {
Message *string `json:"message" name:"message"`
Action *string `json:"action" name:"action" location:"elements"`
JobID *string `json:"job_id" name:"job_id" location:"elements"`
RetCode *int `json:"ret_code" name:"ret_code" location:"elements"`
}