qingcloud-sdk-go/service/security_group.go

1092 lines
34 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 SecurityGroupService struct {
Config *config.Config
Properties *SecurityGroupServiceProperties
}
type SecurityGroupServiceProperties struct {
// QingCloud Zone ID
Zone *string `json:"zone" name:"zone"` // Required
}
func (s *QingCloudService) SecurityGroup(zone string) (*SecurityGroupService, error) {
properties := &SecurityGroupServiceProperties{
Zone: &zone,
}
return &SecurityGroupService{Config: s.Config, Properties: properties}, nil
}
// Documentation URL: https://docs.qingcloud.com/api/sg/add_security_group_rules.html
func (s *SecurityGroupService) AddSecurityGroupRules(i *AddSecurityGroupRulesInput) (*AddSecurityGroupRulesOutput, error) {
if i == nil {
i = &AddSecurityGroupRulesInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "AddSecurityGroupRules",
RequestMethod: "GET",
}
x := &AddSecurityGroupRulesOutput{}
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 AddSecurityGroupRulesInput struct {
Rules []*SecurityGroupRule `json:"rules" name:"rules" location:"params"` // Required
SecurityGroup *string `json:"security_group" name:"security_group" location:"params"` // Required
}
func (v *AddSecurityGroupRulesInput) Validate() error {
if len(v.Rules) == 0 {
return errors.ParameterRequiredError{
ParameterName: "Rules",
ParentName: "AddSecurityGroupRulesInput",
}
}
if len(v.Rules) > 0 {
for _, property := range v.Rules {
if err := property.Validate(); err != nil {
return err
}
}
}
if v.SecurityGroup == nil {
return errors.ParameterRequiredError{
ParameterName: "SecurityGroup",
ParentName: "AddSecurityGroupRulesInput",
}
}
return nil
}
type AddSecurityGroupRulesOutput 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"`
SecurityGroupRules []*string `json:"security_group_rules" name:"security_group_rules" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/sg/apply_security_group.html
func (s *SecurityGroupService) ApplySecurityGroup(i *ApplySecurityGroupInput) (*ApplySecurityGroupOutput, error) {
if i == nil {
i = &ApplySecurityGroupInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "ApplySecurityGroup",
RequestMethod: "GET",
}
x := &ApplySecurityGroupOutput{}
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 ApplySecurityGroupInput struct {
Instances []*string `json:"instances" name:"instances" location:"params"`
SecurityGroup *string `json:"security_group" name:"security_group" location:"params"` // Required
}
func (v *ApplySecurityGroupInput) Validate() error {
if v.SecurityGroup == nil {
return errors.ParameterRequiredError{
ParameterName: "SecurityGroup",
ParentName: "ApplySecurityGroupInput",
}
}
return nil
}
type ApplySecurityGroupOutput 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/sg/apply_security_group_ipsets.html
func (s *SecurityGroupService) ApplySecurityGroupIPSets(i *ApplySecurityGroupIPSetsInput) (*ApplySecurityGroupIPSetsOutput, error) {
if i == nil {
i = &ApplySecurityGroupIPSetsInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "ApplySecurityGroupIPSets",
RequestMethod: "GET",
}
x := &ApplySecurityGroupIPSetsOutput{}
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 ApplySecurityGroupIPSetsInput struct {
SecurityGroupIPSets []*string `json:"security_group_ipsets" name:"security_group_ipsets" location:"params"` // Required
}
func (v *ApplySecurityGroupIPSetsInput) Validate() error {
if len(v.SecurityGroupIPSets) == 0 {
return errors.ParameterRequiredError{
ParameterName: "SecurityGroupIPSets",
ParentName: "ApplySecurityGroupIPSetsInput",
}
}
return nil
}
type ApplySecurityGroupIPSetsOutput 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/sg/create_security_group.html
func (s *SecurityGroupService) CreateSecurityGroup(i *CreateSecurityGroupInput) (*CreateSecurityGroupOutput, error) {
if i == nil {
i = &CreateSecurityGroupInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "CreateSecurityGroup",
RequestMethod: "GET",
}
x := &CreateSecurityGroupOutput{}
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 CreateSecurityGroupInput struct {
SecurityGroupName *string `json:"security_group_name" name:"security_group_name" location:"params"`
}
func (v *CreateSecurityGroupInput) Validate() error {
return nil
}
type CreateSecurityGroupOutput 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"`
SecurityGroupID *string `json:"security_group_id" name:"security_group_id" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/sg/create_security_group_ipset.html
func (s *SecurityGroupService) CreateSecurityGroupIPSet(i *CreateSecurityGroupIPSetInput) (*CreateSecurityGroupIPSetOutput, error) {
if i == nil {
i = &CreateSecurityGroupIPSetInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "CreateSecurityGroupIPSet",
RequestMethod: "GET",
}
x := &CreateSecurityGroupIPSetOutput{}
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 CreateSecurityGroupIPSetInput struct {
// IPSetType's available values: 0, 1
IPSetType *int `json:"ipset_type" name:"ipset_type" location:"params"` // Required
SecurityGroupIPSetName *string `json:"security_group_ipset_name" name:"security_group_ipset_name" location:"params"`
Val *string `json:"val" name:"val" location:"params"` // Required
}
func (v *CreateSecurityGroupIPSetInput) Validate() error {
if v.IPSetType == nil {
return errors.ParameterRequiredError{
ParameterName: "IPSetType",
ParentName: "CreateSecurityGroupIPSetInput",
}
}
if v.IPSetType != nil {
ipSetTypeValidValues := []string{"0", "1"}
ipSetTypeParameterValue := fmt.Sprint(*v.IPSetType)
ipSetTypeIsValid := false
for _, value := range ipSetTypeValidValues {
if value == ipSetTypeParameterValue {
ipSetTypeIsValid = true
}
}
if !ipSetTypeIsValid {
return errors.ParameterValueNotAllowedError{
ParameterName: "IPSetType",
ParameterValue: ipSetTypeParameterValue,
AllowedValues: ipSetTypeValidValues,
}
}
}
if v.Val == nil {
return errors.ParameterRequiredError{
ParameterName: "Val",
ParentName: "CreateSecurityGroupIPSetInput",
}
}
return nil
}
type CreateSecurityGroupIPSetOutput 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"`
SecurityGroupIPSetID *string `json:"security_group_ipset_id" name:"security_group_ipset_id" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/sg/create_security_group_snapshot.html
func (s *SecurityGroupService) CreateSecurityGroupSnapshot(i *CreateSecurityGroupSnapshotInput) (*CreateSecurityGroupSnapshotOutput, error) {
if i == nil {
i = &CreateSecurityGroupSnapshotInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "CreateSecurityGroupSnapshot",
RequestMethod: "GET",
}
x := &CreateSecurityGroupSnapshotOutput{}
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 CreateSecurityGroupSnapshotInput struct {
Name *string `json:"name" name:"name" location:"params"`
SecurityGroup *string `json:"security_group" name:"security_group" location:"params"` // Required
}
func (v *CreateSecurityGroupSnapshotInput) Validate() error {
if v.SecurityGroup == nil {
return errors.ParameterRequiredError{
ParameterName: "SecurityGroup",
ParentName: "CreateSecurityGroupSnapshotInput",
}
}
return nil
}
type CreateSecurityGroupSnapshotOutput 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"`
SecurityGroupID *string `json:"security_group_id" name:"security_group_id" location:"elements"`
SecurityGroupSnapshotID *string `json:"security_group_snapshot_id" name:"security_group_snapshot_id" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/sg/delete_security_group_ipsets.html
func (s *SecurityGroupService) DeleteSecurityGroupIPSets(i *DeleteSecurityGroupIPSetsInput) (*DeleteSecurityGroupIPSetsOutput, error) {
if i == nil {
i = &DeleteSecurityGroupIPSetsInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "DeleteSecurityGroupIPSets",
RequestMethod: "GET",
}
x := &DeleteSecurityGroupIPSetsOutput{}
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 DeleteSecurityGroupIPSetsInput struct {
SecurityGroupIPSets []*string `json:"security_group_ipsets" name:"security_group_ipsets" location:"params"` // Required
}
func (v *DeleteSecurityGroupIPSetsInput) Validate() error {
if len(v.SecurityGroupIPSets) == 0 {
return errors.ParameterRequiredError{
ParameterName: "SecurityGroupIPSets",
ParentName: "DeleteSecurityGroupIPSetsInput",
}
}
return nil
}
type DeleteSecurityGroupIPSetsOutput 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"`
SecurityGroupIPSets []*string `json:"security_group_ipsets" name:"security_group_ipsets" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/sg/delete_security_group_rules.html
func (s *SecurityGroupService) DeleteSecurityGroupRules(i *DeleteSecurityGroupRulesInput) (*DeleteSecurityGroupRulesOutput, error) {
if i == nil {
i = &DeleteSecurityGroupRulesInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "DeleteSecurityGroupRules",
RequestMethod: "GET",
}
x := &DeleteSecurityGroupRulesOutput{}
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 DeleteSecurityGroupRulesInput struct {
SecurityGroupRules []*string `json:"security_group_rules" name:"security_group_rules" location:"params"` // Required
}
func (v *DeleteSecurityGroupRulesInput) Validate() error {
if len(v.SecurityGroupRules) == 0 {
return errors.ParameterRequiredError{
ParameterName: "SecurityGroupRules",
ParentName: "DeleteSecurityGroupRulesInput",
}
}
return nil
}
type DeleteSecurityGroupRulesOutput 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"`
SecurityGroupRules []*string `json:"security_group_rules" name:"security_group_rules" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/sg/delete_security_group_snapshots.html
func (s *SecurityGroupService) DeleteSecurityGroupSnapshots(i *DeleteSecurityGroupSnapshotsInput) (*DeleteSecurityGroupSnapshotsOutput, error) {
if i == nil {
i = &DeleteSecurityGroupSnapshotsInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "DeleteSecurityGroupSnapshots",
RequestMethod: "GET",
}
x := &DeleteSecurityGroupSnapshotsOutput{}
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 DeleteSecurityGroupSnapshotsInput struct {
SecurityGroupSnapshots []*string `json:"security_group_snapshots" name:"security_group_snapshots" location:"params"` // Required
}
func (v *DeleteSecurityGroupSnapshotsInput) Validate() error {
if len(v.SecurityGroupSnapshots) == 0 {
return errors.ParameterRequiredError{
ParameterName: "SecurityGroupSnapshots",
ParentName: "DeleteSecurityGroupSnapshotsInput",
}
}
return nil
}
type DeleteSecurityGroupSnapshotsOutput 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"`
SecurityGroupSnapshots []*string `json:"security_group_snapshots" name:"security_group_snapshots" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/sg/delete_security_groups.html
func (s *SecurityGroupService) DeleteSecurityGroups(i *DeleteSecurityGroupsInput) (*DeleteSecurityGroupsOutput, error) {
if i == nil {
i = &DeleteSecurityGroupsInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "DeleteSecurityGroups",
RequestMethod: "GET",
}
x := &DeleteSecurityGroupsOutput{}
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 DeleteSecurityGroupsInput struct {
SecurityGroups []*string `json:"security_groups" name:"security_groups" location:"params"` // Required
}
func (v *DeleteSecurityGroupsInput) Validate() error {
if len(v.SecurityGroups) == 0 {
return errors.ParameterRequiredError{
ParameterName: "SecurityGroups",
ParentName: "DeleteSecurityGroupsInput",
}
}
return nil
}
type DeleteSecurityGroupsOutput 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"`
SecurityGroups []*string `json:"security_groups" name:"security_groups" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/sg/describe_security_group_ipsets.html
func (s *SecurityGroupService) DescribeSecurityGroupIPSets(i *DescribeSecurityGroupIPSetsInput) (*DescribeSecurityGroupIPSetsOutput, error) {
if i == nil {
i = &DescribeSecurityGroupIPSetsInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "DescribeSecurityGroupIPSets",
RequestMethod: "GET",
}
x := &DescribeSecurityGroupIPSetsOutput{}
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 DescribeSecurityGroupIPSetsInput struct {
// IPSetType's available values: 0, 1
IPSetType *int `json:"ipset_type" name:"ipset_type" location:"params"`
Limit *int `json:"limit" name:"limit" default:"20" location:"params"`
Offset *int `json:"offset" name:"offset" default:"0" location:"params"`
Owner *string `json:"owner" name:"owner" location:"params"`
ProjectID *string `json:"project_id" name:"project_id" location:"params"`
SecurityGroupIPSetName *string `json:"security_group_ipset_name" name:"security_group_ipset_name" location:"params"`
SecurityGroupIPSets []*string `json:"security_group_ipsets" name:"security_group_ipsets" location:"params"`
Tags []*string `json:"tags" name:"tags" location:"params"`
Verbose *int `json:"verbose" name:"verbose" default:"0" location:"params"`
}
func (v *DescribeSecurityGroupIPSetsInput) Validate() error {
if v.IPSetType != nil {
ipSetTypeValidValues := []string{"0", "1"}
ipSetTypeParameterValue := fmt.Sprint(*v.IPSetType)
ipSetTypeIsValid := false
for _, value := range ipSetTypeValidValues {
if value == ipSetTypeParameterValue {
ipSetTypeIsValid = true
}
}
if !ipSetTypeIsValid {
return errors.ParameterValueNotAllowedError{
ParameterName: "IPSetType",
ParameterValue: ipSetTypeParameterValue,
AllowedValues: ipSetTypeValidValues,
}
}
}
return nil
}
type DescribeSecurityGroupIPSetsOutput 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"`
SecurityGroupIPSetSet []*SecurityGroupIPSet `json:"security_group_ipset_set" name:"security_group_ipset_set" location:"elements"`
TotalCount *int `json:"total_count" name:"total_count" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/sg/describe_security_group_rules.html
func (s *SecurityGroupService) DescribeSecurityGroupRules(i *DescribeSecurityGroupRulesInput) (*DescribeSecurityGroupRulesOutput, error) {
if i == nil {
i = &DescribeSecurityGroupRulesInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "DescribeSecurityGroupRules",
RequestMethod: "GET",
}
x := &DescribeSecurityGroupRulesOutput{}
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 DescribeSecurityGroupRulesInput struct {
// Direction's available values: 0, 1
Direction *int `json:"direction" name:"direction" location:"params"`
Limit *int `json:"limit" name:"limit" default:"20" location:"params"`
Offset *int `json:"offset" name:"offset" default:"0" location:"params"`
Owner *string `json:"owner" name:"owner" location:"params"`
SecurityGroup *string `json:"security_group" name:"security_group" location:"params"`
SecurityGroupRules []*string `json:"security_group_rules" name:"security_group_rules" location:"params"`
}
func (v *DescribeSecurityGroupRulesInput) Validate() error {
if v.Direction != nil {
directionValidValues := []string{"0", "1"}
directionParameterValue := fmt.Sprint(*v.Direction)
directionIsValid := false
for _, value := range directionValidValues {
if value == directionParameterValue {
directionIsValid = true
}
}
if !directionIsValid {
return errors.ParameterValueNotAllowedError{
ParameterName: "Direction",
ParameterValue: directionParameterValue,
AllowedValues: directionValidValues,
}
}
}
return nil
}
type DescribeSecurityGroupRulesOutput 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"`
SecurityGroupRuleSet []*SecurityGroupRule `json:"security_group_rule_set" name:"security_group_rule_set" location:"elements"`
TotalCount *int `json:"total_count" name:"total_count" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/sg/describe_security_group_snapshots.html
func (s *SecurityGroupService) DescribeSecurityGroupSnapshots(i *DescribeSecurityGroupSnapshotsInput) (*DescribeSecurityGroupSnapshotsOutput, error) {
if i == nil {
i = &DescribeSecurityGroupSnapshotsInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "DescribeSecurityGroupSnapshots",
RequestMethod: "GET",
}
x := &DescribeSecurityGroupSnapshotsOutput{}
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 DescribeSecurityGroupSnapshotsInput struct {
Limit *int `json:"limit" name:"limit" default:"20" location:"params"`
Offset *int `json:"offset" name:"offset" default:"0" location:"params"`
ProjectID *string `json:"project_id" name:"project_id" location:"params"`
Reverse *int `json:"reverse" name:"reverse" default:"1" location:"params"`
SecurityGroup *string `json:"security_group" name:"security_group" location:"params"` // Required
SecurityGroupSnapshots []*string `json:"security_group_snapshots" name:"security_group_snapshots" location:"params"`
}
func (v *DescribeSecurityGroupSnapshotsInput) Validate() error {
if v.SecurityGroup == nil {
return errors.ParameterRequiredError{
ParameterName: "SecurityGroup",
ParentName: "DescribeSecurityGroupSnapshotsInput",
}
}
return nil
}
type DescribeSecurityGroupSnapshotsOutput 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"`
SecurityGroupSnapshotSet []*SecurityGroupSnapshot `json:"security_group_snapshot_set" name:"security_group_snapshot_set" location:"elements"`
TotalCount *int `json:"total_count" name:"total_count" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/sg/describe_security_groups.html
func (s *SecurityGroupService) DescribeSecurityGroups(i *DescribeSecurityGroupsInput) (*DescribeSecurityGroupsOutput, error) {
if i == nil {
i = &DescribeSecurityGroupsInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "DescribeSecurityGroups",
RequestMethod: "GET",
}
x := &DescribeSecurityGroupsOutput{}
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 DescribeSecurityGroupsInput struct {
Limit *int `json:"limit" name:"limit" default:"20" location:"params"`
Offset *int `json:"offset" name:"offset" default:"0" location:"params"`
Owner *string `json:"owner" name:"owner" location:"params"`
ProjectID *string `json:"project_id" name:"project_id" location:"params"`
SearchWord *string `json:"search_word" name:"search_word" location:"params"`
SecurityGroups []*string `json:"security_groups" name:"security_groups" location:"params"`
Tags []*string `json:"tags" name:"tags" location:"params"`
Verbose *int `json:"verbose" name:"verbose" default:"0" location:"params"`
}
func (v *DescribeSecurityGroupsInput) Validate() error {
return nil
}
type DescribeSecurityGroupsOutput 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"`
SecurityGroupSet []*SecurityGroup `json:"security_group_set" name:"security_group_set" location:"elements"`
TotalCount *int `json:"total_count" name:"total_count" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/sg/modify_security_group_attributes.html
func (s *SecurityGroupService) ModifySecurityGroupAttributes(i *ModifySecurityGroupAttributesInput) (*ModifySecurityGroupAttributesOutput, error) {
if i == nil {
i = &ModifySecurityGroupAttributesInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "ModifySecurityGroupAttributes",
RequestMethod: "GET",
}
x := &ModifySecurityGroupAttributesOutput{}
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 ModifySecurityGroupAttributesInput struct {
Description *string `json:"description" name:"description" location:"params"`
SecurityGroup *string `json:"security_group" name:"security_group" location:"params"` // Required
SecurityGroupName *string `json:"security_group_name" name:"security_group_name" location:"params"`
}
func (v *ModifySecurityGroupAttributesInput) Validate() error {
if v.SecurityGroup == nil {
return errors.ParameterRequiredError{
ParameterName: "SecurityGroup",
ParentName: "ModifySecurityGroupAttributesInput",
}
}
return nil
}
type ModifySecurityGroupAttributesOutput 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"`
SecurityGroupID *string `json:"security_group_id" name:"security_group_id" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/sg/modify_security_group_ipset_attributes.html
func (s *SecurityGroupService) ModifySecurityGroupIPSetAttributes(i *ModifySecurityGroupIPSetAttributesInput) (*ModifySecurityGroupIPSetAttributesOutput, error) {
if i == nil {
i = &ModifySecurityGroupIPSetAttributesInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "ModifySecurityGroupIPSetAttributes",
RequestMethod: "GET",
}
x := &ModifySecurityGroupIPSetAttributesOutput{}
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 ModifySecurityGroupIPSetAttributesInput struct {
Description *string `json:"description" name:"description" location:"params"`
SecurityGroupIPSet *string `json:"security_group_ipset" name:"security_group_ipset" location:"params"` // Required
SecurityGroupIPSetName *string `json:"security_group_ipset_name" name:"security_group_ipset_name" location:"params"`
Val *string `json:"val" name:"val" location:"params"`
}
func (v *ModifySecurityGroupIPSetAttributesInput) Validate() error {
if v.SecurityGroupIPSet == nil {
return errors.ParameterRequiredError{
ParameterName: "SecurityGroupIPSet",
ParentName: "ModifySecurityGroupIPSetAttributesInput",
}
}
return nil
}
type ModifySecurityGroupIPSetAttributesOutput 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"`
SecurityGroupIPSetID *string `json:"security_group_ipset_id" name:"security_group_ipset_id" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/sg/modify_security_group_rule_attributes.html
func (s *SecurityGroupService) ModifySecurityGroupRuleAttributes(i *ModifySecurityGroupRuleAttributesInput) (*ModifySecurityGroupRuleAttributesOutput, error) {
if i == nil {
i = &ModifySecurityGroupRuleAttributesInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "ModifySecurityGroupRuleAttributes",
RequestMethod: "GET",
}
x := &ModifySecurityGroupRuleAttributesOutput{}
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 ModifySecurityGroupRuleAttributesInput struct {
// Direction's available values: 0, 1
Direction *int `json:"direction" name:"direction" location:"params"`
Priority *int `json:"priority" name:"priority" location:"params"`
Protocol *string `json:"protocol" name:"protocol" location:"params"`
// RuleAction's available values: accept, drop
RuleAction *string `json:"rule_action" name:"rule_action" location:"params"`
SecurityGroup *string `json:"security_group" name:"security_group" location:"params"`
SecurityGroupRule *string `json:"security_group_rule" name:"security_group_rule" location:"params"` // Required
SecurityGroupRuleName *string `json:"security_group_rule_name" name:"security_group_rule_name" location:"params"`
Val1 *string `json:"val1" name:"val1" location:"params"`
Val2 *string `json:"val2" name:"val2" location:"params"`
Val3 *string `json:"val3" name:"val3" location:"params"`
}
func (v *ModifySecurityGroupRuleAttributesInput) Validate() error {
if v.Direction != nil {
directionValidValues := []string{"0", "1"}
directionParameterValue := fmt.Sprint(*v.Direction)
directionIsValid := false
for _, value := range directionValidValues {
if value == directionParameterValue {
directionIsValid = true
}
}
if !directionIsValid {
return errors.ParameterValueNotAllowedError{
ParameterName: "Direction",
ParameterValue: directionParameterValue,
AllowedValues: directionValidValues,
}
}
}
if v.RuleAction != nil {
ruleActionValidValues := []string{"accept", "drop"}
ruleActionParameterValue := fmt.Sprint(*v.RuleAction)
ruleActionIsValid := false
for _, value := range ruleActionValidValues {
if value == ruleActionParameterValue {
ruleActionIsValid = true
}
}
if !ruleActionIsValid {
return errors.ParameterValueNotAllowedError{
ParameterName: "RuleAction",
ParameterValue: ruleActionParameterValue,
AllowedValues: ruleActionValidValues,
}
}
}
if v.SecurityGroupRule == nil {
return errors.ParameterRequiredError{
ParameterName: "SecurityGroupRule",
ParentName: "ModifySecurityGroupRuleAttributesInput",
}
}
return nil
}
type ModifySecurityGroupRuleAttributesOutput 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"`
SecurityGroupRuleID *string `json:"security_group_rule_id" name:"security_group_rule_id" location:"elements"`
}
// Documentation URL: https://docs.qingcloud.com/api/sg/rollback_security_group.html
func (s *SecurityGroupService) RollbackSecurityGroup(i *RollbackSecurityGroupInput) (*RollbackSecurityGroupOutput, error) {
if i == nil {
i = &RollbackSecurityGroupInput{}
}
o := &data.Operation{
Config: s.Config,
Properties: s.Properties,
APIName: "RollbackSecurityGroup",
RequestMethod: "GET",
}
x := &RollbackSecurityGroupOutput{}
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 RollbackSecurityGroupInput struct {
SecurityGroup *string `json:"security_group" name:"security_group" location:"params"` // Required
SecurityGroupSnapshot *string `json:"security_group_snapshot" name:"security_group_snapshot" location:"params"` // Required
}
func (v *RollbackSecurityGroupInput) Validate() error {
if v.SecurityGroup == nil {
return errors.ParameterRequiredError{
ParameterName: "SecurityGroup",
ParentName: "RollbackSecurityGroupInput",
}
}
if v.SecurityGroupSnapshot == nil {
return errors.ParameterRequiredError{
ParameterName: "SecurityGroupSnapshot",
ParentName: "RollbackSecurityGroupInput",
}
}
return nil
}
type RollbackSecurityGroupOutput 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"`
SecurityGroupID *string `json:"security_group_id" name:"security_group_id" location:"elements"`
SecurityGroupSnapshotID *string `json:"security_group_snapshot_id" name:"security_group_snapshot_id" location:"elements"`
}