groups

package
v1.0.21 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 14, 2020 License: Apache-2.0 Imports: 3 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateURL

func CreateURL(c *gophercloud.ServiceClient) string

func DeleteURL

func DeleteURL(c *gophercloud.ServiceClient, scalingGroupId string) string

func EnableURL

func EnableURL(c *gophercloud.ServiceClient, scalingGroupId string) string

func GetURL

func GetURL(c *gophercloud.ServiceClient, scalingGroupId string) string

func ListURL

func ListURL(c *gophercloud.ServiceClient) string

func UpdateURL

func UpdateURL(c *gophercloud.ServiceClient, scalingGroupId string) string

Types

type CreateOpts

type CreateOpts struct {
	// Specifies the AS group name. The name can contain letters,
	// digits, underscores (_), and hyphens (-), and cannot exceed 64 characters.
	ScalingGroupName string `json:"scaling_group_name" required:"true"`

	// Specifies the AS configuration ID. You can obtain its value
	// from the API used to query AS configurations. For details, see Querying AS
	// Configurations.https://support.huaweicloud.com/en-us/api-as/en-us_topic_0043063056.ht
	// ml
	ScalingConfigurationId string `json:"scaling_configuration_id,omitempty"`

	// Specifies the expected number of instances. The default value
	// is the minimum number of instances.The value ranges from the minimum number of
	// instances to the maximum number of instances.
	DesireInstanceNumber *int `json:"desire_instance_number,omitempty"`

	// Specifies the minimum number of instances. The default value is
	// 0.
	MinInstanceNumber *int `json:"min_instance_number,omitempty"`

	// Specifies the maximum number of instances. The default value is
	// 0.
	MaxInstanceNumber *int `json:"max_instance_number,omitempty"`

	// Specifies the cooling duration (in seconds). The value ranges
	// from 0 to 86400, and is 900 by default.The cooling duration takes effect only for
	// scaling actions triggered by alarms. Scaling actions executed manually as well as
	// those scheduled to trigger periodically or at a particular time will not be
	// affected.
	CoolDownTime *int `json:"cool_down_time,omitempty"`

	// Specifies the ID of a typical ELB listener. The system supports
	// the binding of up to three ELB listeners, the IDs of which are separated using a
	// comma (,). You can use vpc_id to obtain a load balancer ID from the API used to query
	// an ELB list. For details, see section "Querying Load Balancers" in the Elastic Load
	// Balance API Reference. Then, use the load balancer ID to query the ELB listener list
	// to obtain the ELB listener ID. For details, see section "Querying Listeners" in the
	// Elastic Load Balance API Reference.
	LbListenerId string `json:"lb_listener_id,omitempty"`

	// Specifies the AZ information. The ECS associated with the
	// scaling action will be created in the specified AZ. If you do not specify an AZ, the
	// system automatically specifies one.For details, see section Regions and
	// Endpoints.https://developer.huaweicloud.com/endpoint
	AvailableZones []string `json:"available_zones,omitempty"`

	// Specifies network information. The system supports up to five
	// subnets. The first subnet transferred serves as the primary NIC of the ECS by
	// default. You can use vpc_id to obtain the parameter value from the API used to query
	// VPC subnets. For details, see section Subnet > Querying Subnets in the Virtual
	// Private Cloud API Reference.
	Networks []Network `json:"networks" required:"true"`

	// Specifies security group information. You can use vpc_id to
	// obtain the parameter value from the API used to query VPC security groups. For
	// details, see section "Querying Security Groups" in the Virtual Private Cloud API
	// Reference.
	SecurityGroups []SecurityGroup `json:"security_groups,omitempty"`

	// Specifies the VPC information. You can obtain its value from
	// the API used to query VPCs. For details, see section "Querying VPCs" in the Virtual
	// Private Cloud API Reference.
	VpcId string `json:"vpc_id" required:"true"`

	// Specifies the health check method for instances in the AS
	// group. The health check methods include ELB_AUDIT and NOVA_AUDIT. If load balancing
	// is configured, the default value of this parameter is ELB_AUDIT. Otherwise, the
	// default value is NOVA_AUDIT.ELB_AUDIT refers to the ELB health check, which takes
	// effect in an AS group that has a listener.NOVA_AUDIT refers to the health check
	// delivered with AS.
	HealthPeriodicAuditMethod string `json:"health_periodic_audit_method,omitempty"`

	// Specifies the health check period for instances. The period has
	// four options: 5 minutes (default), 15 minutes, 60 minutes, and 180 minutes.
	HealthPeriodicAuditTime *int `json:"health_periodic_audit_time,omitempty"`

	// Specifies the health check interval.
	HealthPeriodicAuditTimeGracePeriod *int `json:"health_periodic_audit_grace_period,omitempty"`

	// Specifies the instance removal policy.(Default)
	// OLD_CONFIG_OLD_INSTANCE: The earlier-created instances that were selected from the
	// instances created based on earlier-created configurations are removed
	// first.OLD_CONFIG_NEW_INSTANCE: The later-created instances that were selected from
	// the instances created based on earlier-created configurations are removed
	// first.OLD_INSTANCE: The earlier-created instances are removed first.NEW_INSTANCE: The
	// later-created instances are removed first.
	InstanceTerminatePolicy string `json:"instance_terminate_policy,omitempty"`

	// Specifies the notification mode.EMAIL refers to notification by
	// email.This notification mode is going to be canceled. You are advised to configure
	// the notification function for the AS group. See Notifications for
	// details.https://support.huaweicloud.com/en-us/api-as/en-us_topic_0043063034.html
	Notifications []string `json:"notifications,omitempty"`

	// Specifies whether to delete the EIP bound to the ECS when
	// deleting the ECS. If you do not want to delete the EIP, set this parameter to false.
	// Then, the system only unbinds the EIP from the ECS and reserves the EIP.The value can
	// be true or false. The default value is false.true: deletes the EIP bound to the ECS
	// when deleting the ECS. When the ECS is charged in Yearly/Monthly mode, the EIP bound
	// to the ECS will not be deleted when the ECS is deleted.false: only unbinds the EIP
	// bound to the ECS when deleting the ECS
	DeletePublicip *bool `json:"delete_publicip,omitempty"`

	LBaasListeners      []LBaasListener `json:"lbaas_listeners,omitempty"`
	EnterpriseProjectID string          `json:"enterprise_project_id,omitempty"`
}

func (CreateOpts) ToGroupsCreateMap

func (opts CreateOpts) ToGroupsCreateMap() (map[string]interface{}, error)

type CreateOptsBuilder

type CreateOptsBuilder interface {
	ToGroupsCreateMap() (map[string]interface{}, error)
}

type CreateResponse

type CreateResponse struct {
	// Specifies the AS group ID.
	ScalingGroupId string `json:"scaling_group_id"`
}

type CreateResult

type CreateResult struct {
	// contains filtered or unexported fields
}

func Create

func Create(client *gophercloud.ServiceClient, opts CreateOptsBuilder) (r CreateResult)

func (CreateResult) Extract

func (r CreateResult) Extract() (*CreateResponse, error)

type DeleteOpts

type DeleteOpts struct {
	// Specifies whether to forcibly delete an AS group. The value can
	// be yes or no(default).
	ForceDelete string `q:"force_delete"`
}

func (DeleteOpts) ToDeleteQuery

func (opts DeleteOpts) ToDeleteQuery() (string, error)

type DeleteOptsBuilder

type DeleteOptsBuilder interface {
	ToDeleteQuery() (string, error)
}

type DeleteResult

type DeleteResult struct {
	gophercloud.ErrResult
}

func Delete

func Delete(client *gophercloud.ServiceClient, scalingGroupId string, opts DeleteOptsBuilder) (r DeleteResult)

type EnableOpts

type EnableOpts struct {
	// Specifies a flag for enabling or disabling an AS group.resume:
	// enables the AS group.pause: disables the AS group.
	Action string `json:"action" required:"true"`
}

func (EnableOpts) ToGroupsEnableMap

func (opts EnableOpts) ToGroupsEnableMap() (map[string]interface{}, error)

type EnableOptsBuilder

type EnableOptsBuilder interface {
	ToGroupsEnableMap() (map[string]interface{}, error)
}

type EnableResponse

type EnableResponse struct {
}

type EnableResult

type EnableResult struct {
	// contains filtered or unexported fields
}

func Enable

func Enable(client *gophercloud.ServiceClient, scalingGroupId string, opts EnableOptsBuilder) (r EnableResult)

func (EnableResult) Extract

func (r EnableResult) Extract() (*EnableResponse, error)

type GetResponse

type GetResponse struct {

	// Specifies details about the AS group.
	ScalingGroup ScalingGroup `json:"scaling_group"`
}

type GetResult

type GetResult struct {
	// contains filtered or unexported fields
}

func Get

func Get(client *gophercloud.ServiceClient, scalingGroupId string) (r GetResult)

func (GetResult) Extract

func (r GetResult) Extract() (*ScalingGroup, error)

type GroupPage

type GroupPage struct {
	pagination.NumberPageBase
}

func (GroupPage) IsEmpty

func (r GroupPage) IsEmpty() (bool, error)

IsEmpty returns true if a ListResult contains no services.

func (GroupPage) LastStartNumber

func (r GroupPage) LastStartNumber() (string, error)

LastStartNumber returns the last service in a ListResult.

type LBaasListener

type LBaasListener struct {
	PoolID       string `json:"pool_id" required:"true"`
	ProtocolPort *int   `json:"protocol_port" required:"true"`
	Weight       *int   `json:"weight,omitempty"`
}

type LbListener

type LbListener struct {
	ListenerID   string `json:"listener_id"`
	PoolID       string `json:"pool_id"`
	ProtocolPort int    `json:"protocol_port"`
	Weight       int    `json:"weight"`
}

type ListOpts

type ListOpts struct {
	// Specifies the AS group name.
	ScalingGroupName string `q:"scaling_group_name"`

	// Specifies the AS configuration ID. You can obtain its value
	// from the API used to query AS configurations. For details, see Querying AS
	// Configurations.https://support.huaweicloud.com/en-us/api-as/en-us_topic_0043063056.ht
	// ml
	ScalingConfigurationId string `q:"scaling_configuration_id"`

	// Specifies the AS group status. The value can be INSERVICE,
	// PAUSED, ERROR, or DELETING.
	ScalingGroupStatus string `q:"scaling_group_status"`

	// Specifies the start line number. The default value is 0.
	StartNumber int `q:"start_number"`

	// Specifies the number of query records. The default value is
	// 20.
	Limit int `q:"limit"`

	EnterpriseProjectID string `q:"enterprise_project_id"`
}

func (ListOpts) ToListQuery

func (opts ListOpts) ToListQuery() (string, error)

type ListOptsBuilder

type ListOptsBuilder interface {
	ToListQuery() (string, error)
}

type ListResponse

type ListResponse struct {

	// Specifies the total number of query records.
	TotalNumber int `json:"total_number"`

	// Specifies the start number of query records.
	StartNumber int `json:"start_number"`

	// Specifies the number of query records.
	Limit int `json:"limit"`

	// Specifies the scaling group list.
	ScalingGroups []ScalingGroup `json:"scaling_groups"`
}

func ExtractGroups

func ExtractGroups(r pagination.Page) (ListResponse, error)

ExtractGroups is a function that takes a ListResult and returns the information.

type Network

type Network struct {
	// Specifies the network ID.
	ID string `json:"id" required:"true"`

	Ipv6Enable    *bool          `json:"ipv6_enable,omitempty"`
	Ipv6Bandwidth *SecurityGroup `json:"ipv6_bandwidth,omitempty"`
}

type ScalingGroup

type ScalingGroup struct {
	// Specifies the name of the AS group.
	ScalingGroupName string `json:"scaling_group_name"`

	// Specifies the AS group ID.
	ScalingGroupId string `json:"scaling_group_id"`

	// Specifies the status of the AS group.
	ScalingGroupStatus string `json:"scaling_group_status"`

	// Specifies the AS configuration ID.
	ScalingConfigurationId string `json:"scaling_configuration_id"`

	// Specifies the AS configuration name.
	ScalingConfigurationName string `json:"scaling_configuration_name"`

	// Specifies the number of current instances in the AS group.
	CurrentInstanceNumber int `json:"current_instance_number"`

	// Specifies the expected number of instances in the AS group.
	DesireInstanceNumber int `json:"desire_instance_number"`

	// Specifies the minimum number of instances in the AS group.
	MinInstanceNumber int `json:"min_instance_number"`

	// Specifies the maximum number of instances in the AS group.
	MaxInstanceNumber int `json:"max_instance_number"`

	// Specifies the cooling duration (s).
	CoolDownTime int `json:"cool_down_time"`

	// Specifies the ID of a typical ELB listener. ELB listener IDs
	// are separated using a comma (,).
	LbListenerId string `json:"lb_listener_id"`

	// This field is reserved.
	LbaasListeners []LbListener `json:"lbaas_listeners"`

	// Specifies the AZ information.
	AvailableZones []string `json:"available_zones"`

	// Specifies network information.
	Networks []Network `json:"networks"`

	// Specifies security group information.
	SecurityGroups []SecurityGroup `json:"security_groups"`

	// Specifies the time when an AS group was created. The time
	// format complies with UTC.
	CreateTime string `json:"create_time"`

	// Specifies the ID of the VPC to which the AS group belongs.
	VpcId string `json:"vpc_id"`

	// Specifies details about the AS group.
	Detail string `json:"detail"`

	// Specifies the scaling flag of the AS group.
	IsScaling bool `json:"is_scaling"`

	// Specifies the health check method.
	HealthPeriodicAuditMethod string `json:"health_periodic_audit_method"`

	// Specifies the health check interval.
	HealthPeriodicAuditTime int `json:"health_periodic_audit_time"`

	// Specifies the health check interval.
	HealthPeriodicAuditTimeGracePeriod int `json:"health_periodic_audit_grace_period"`

	// Specifies the instance removal policy.
	InstanceTerminatePolicy string `json:"instance_terminate_policy"`

	// Specifies the notification mode.
	Notifications []string `json:"notifications"`

	// Specifies whether to delete the EIP bound to the ECS when
	// deleting the ECS.
	DeletePublicip bool `json:"delete_publicip"`

	// This field is reserved.
	CloudLocationId string `json:"cloud_location_id"`

	EnterpriseProjectID string `json:"enterprise_project_id"`

	ActivityType string `json:"activity_type"`
}

type SecurityGroup

type SecurityGroup struct {
	// Specifies the ID of the security group.
	ID string `json:"id" required:"true"`
}

type UpdateOpts

type UpdateOpts struct {
	// Specifies the AS group name. The name can contain letters,
	// digits, underscores (_), and hyphens (-), and cannot exceed 64 characters.
	ScalingGroupName string `json:"scaling_group_name,omitempty"`

	// Specifies the expected number of instances.The value ranges
	// from the minimum number of instances to the maximum number of instances.
	DesireInstanceNumber *int `json:"desire_instance_number,omitempty"`

	// Specifies the minimum number of instances.
	MinInstanceNumber *int `json:"min_instance_number,omitempty"`

	// Specifies the maximum number of instances, which is greater
	// than or equal to the minimum number of instances.
	MaxInstanceNumber *int `json:"max_instance_number,omitempty"`

	// Specifies the cooling duration (in seconds). The value ranges
	// from 0 to 86400.
	CoolDownTime *int `json:"cool_down_time,omitempty"`

	// Specifies the AZ information. The ECS associated with the
	// scaling action will be created in the specified AZ. If you do not specify an AZ, the
	// system automatically specifies one.For details, see section Regions and Endpoints.The
	// value of this parameter can be changed only when all the following conditions are
	// met:No scaling actions are triggered in the AS group.The number of instances in the
	// AS group is 0.The AS group is not in service.
	AvailableZones []string `json:"available_zones,omitempty"`

	// Specifies network information. The system supports up to five
	// subnets. The first subnet transferred serves as the primary NIC of the ECS by
	// default. You can use vpc_id to obtain the parameter value from the API used to query
	// VPC subnets. For details, see section Subnet > Querying Subnets in the Virtual
	// Private Cloud API Reference. The value of this parameter can be changed only when all
	// the following conditions are met:No scaling actions are triggered in the AS group.The
	// number of instances in the AS group is 0.The AS group is not in service.
	Networks []Network `json:"networks,omitempty"`

	// Specifies security group information. You can use vpc_id to
	// obtain the parameter value from the API used to query VPC security groups. For
	// details, see section "Querying Security Groups" in the Virtual Private Cloud API
	// Reference.The value of this parameter can be changed only when all the following
	// conditions are met:No scaling actions are triggered in the AS group.The number of
	// instances in the AS group is 0.The AS group is not in service.
	SecurityGroups []SecurityGroup `json:"security_groups,omitempty"`

	// Specifies the ID of a typical ELB listener. The system supports
	// the binding of up to three ELB listeners, the IDs of which are separated using a
	// comma (,). You can use vpc_id to obtain a load balancer ID from the API used to query
	// an ELB list. For details, see section "Querying Load Balancers" in the Elastic Load
	// Balance API Reference. Then, use the load balancer ID to query the ELB listener list
	// to obtain the ELB listener ID. For details, see section "Querying Listeners" in the
	// Elastic Load Balance API Reference.The value of this parameter can be changed only
	// when all the following conditions are met:No scaling actions are triggered in the AS
	// group.The number of instances in the AS group is 0.The AS group is not in service.
	LbListenerId string `json:"lb_listener_id,omitempty"`

	// Specifies the health check method for instances in the AS
	// group. The health check methods include ELB_AUDIT and NOVA_AUDIT.ELB_AUDIT refers to
	// the ELB health check, which takes effect in an AS group that has a
	// listener.NOVA_AUDIT refers to the health check delivered with AS.
	HealthPeriodicAuditMethod string `json:"health_periodic_audit_method,omitempty"`

	// Specifies the health check period for the instances in the AS
	// group. The value can be 5 minutes, 15 minutes, 60 minutes, or 180 minutes.
	HealthPeriodicAuditTime *int `json:"health_periodic_audit_time,omitempty"`

	// Specifies the instance removal policy.(Default)
	// OLD_CONFIG_OLD_INSTANCE: The earlier-created instances that were selected from the
	// instances created based on earlier-created configurations are removed
	// first.OLD_CONFIG_NEW_INSTANCE: The later-created instances that were selected from
	// the instances created based on earlier-created configurations are removed
	// first.OLD_INSTANCE: The earlier-created instances are removed first.NEW_INSTANCE: The
	// later-created instances are removed first.
	InstanceTerminatePolicy string `json:"instance_terminate_policy,omitempty"`

	// Specifies the AS configuration ID. You can obtain its value
	// from the API used to query AS configurations. For details, see Querying AS
	// Configurations.https://support.huaweicloud.com/en-us/api-as/en-us_topic_0043063056.ht
	// ml
	ScalingConfigurationId string `json:"scaling_configuration_id,omitempty"`

	// Specifies the notification mode.EMAIL refers to notification by
	// email.This notification mode is going to be canceled. You are advised to configure
	// the notification function for the AS group. See Notifications for
	// details.https://support.huaweicloud.com/en-us/api-as/en-us_topic_0043063034.html
	Notifications []string `json:"notifications,omitempty"`

	// Specifies whether to delete the EIP bound to the ECS when
	// deleting the ECS. If you do not want to delete the EIP, set this parameter to false.
	// Then, the system only unbinds the EIP from the ECS and reserves the EIP.The value can
	// be true or false. The default value is false.true: deletes the EIP bound to the ECS
	// when deleting the ECS. When the ECS is charged in Yearly/Monthly mode, the EIP bound
	// to the ECS will not be deleted when the ECS is deleted.false: only unbinds the EIP
	// bound to the ECS when deleting the ECS
	DeletePublicip *bool `json:"delete_publicip,omitempty"`

	LBaasListeners      []LBaasListener `json:"lbaas_listeners,omitempty"`
	EnterpriseProjectID string          `json:"enterprise_project_id,omitempty"`
}

func (UpdateOpts) ToGroupsUpdateMap

func (opts UpdateOpts) ToGroupsUpdateMap() (map[string]interface{}, error)

type UpdateOptsBuilder

type UpdateOptsBuilder interface {
	ToGroupsUpdateMap() (map[string]interface{}, error)
}

type UpdateResponse

type UpdateResponse struct {
	// Specifies the AS group ID.
	ScalingGroupId string `json:"scaling_group_id"`
}

type UpdateResult

type UpdateResult struct {
	// contains filtered or unexported fields
}

func Update

func Update(client *gophercloud.ServiceClient, scalingGroupId string, opts UpdateOptsBuilder) (r UpdateResult)

func (UpdateResult) Extract

func (r UpdateResult) Extract() (*UpdateResponse, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL