Documentation
¶
Index ¶
- func ActionURL(c *gophercloud.ServiceClient, scalingPolicyId string) string
- func CreateURL(c *gophercloud.ServiceClient) string
- func DeleteURL(c *gophercloud.ServiceClient, scalingPolicyId string) string
- func GetURL(c *gophercloud.ServiceClient, scalingPolicyId string) string
- func List(client *gophercloud.ServiceClient, scalingGroupId string, opts ListOptsBuilder) pagination.Pager
- func ListURL(c *gophercloud.ServiceClient, scalingGroupId string) string
- func UpdateURL(c *gophercloud.ServiceClient, scalingPolicyId string) string
- type ActionOpts
- type ActionOptsBuilder
- type ActionResult
- type CreateOpts
- type CreateOptsBuilder
- type CreateResponse
- type CreateResult
- type CreateScalingPolicyAction
- type DeleteResult
- type GetResponse
- type GetResult
- type ListOpts
- type ListOptsBuilder
- type ListResponse
- type PolicyPage
- type ScalingPolicy
- type ScalingPolicyAction
- type ScheduledPolicy
- type UpdateOpts
- type UpdateOptsBuilder
- type UpdateResponse
- type UpdateResult
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ActionURL ¶
func ActionURL(c *gophercloud.ServiceClient, scalingPolicyId string) string
func CreateURL ¶
func CreateURL(c *gophercloud.ServiceClient) string
func DeleteURL ¶
func DeleteURL(c *gophercloud.ServiceClient, scalingPolicyId string) string
func GetURL ¶
func GetURL(c *gophercloud.ServiceClient, scalingPolicyId string) string
func List ¶
func List(client *gophercloud.ServiceClient, scalingGroupId string, opts ListOptsBuilder) pagination.Pager
func ListURL ¶
func ListURL(c *gophercloud.ServiceClient, scalingGroupId string) string
func UpdateURL ¶
func UpdateURL(c *gophercloud.ServiceClient, scalingPolicyId string) string
Types ¶
type ActionOpts ¶
type ActionOpts struct {
// Specifies the operation flag for an AS group.execute: executes
// the AS group.resume: enables the AS group.pause: disables the AS group.
Action string `json:"action" required:"true"`
}
func (ActionOpts) ToPoliciesActionMap ¶
func (opts ActionOpts) ToPoliciesActionMap() (map[string]interface{}, error)
type ActionOptsBuilder ¶
type ActionResult ¶
type ActionResult struct {
gophercloud.ErrResult
}
func Action ¶
func Action(client *gophercloud.ServiceClient, scalingPolicyId string, opts ActionOptsBuilder) (r ActionResult)
type CreateOpts ¶
type CreateOpts struct {
// Specifies the AS policy name. The name can contain letters,
// digits, underscores (_), and hyphens (-), and cannot exceed 64 characters.
ScalingPolicyName string `json:"scaling_policy_name" required:"true"`
// Specifies the AS group ID. You can obtain its value from the
// API used to query AS groups. For details, see Querying AS
// Groups.https://support.huaweicloud.com/en-us/api-as/en-us_topic_0043063030.html
ScalingGroupId string `json:"scaling_group_id" required:"true"`
// Specifies the AS policy type.ALARM (corresponding to alarm_id):
// indicates that the scaling action is triggered by an alarm.SCHEDULED (corresponding
// to scheduled_policy): indicates that the scaling action is triggered as
// scheduled.RECURRENCE (corresponding to scheduled_policy): indicates that the scaling
// action is triggered periodically.
ScalingPolicyType string `json:"scaling_policy_type" required:"true"`
// Specifies the alarm rule ID. This parameter is mandatory when
// scaling_policy_type is set to ALARM. After this parameter is specified, the value of
// scheduled_policy does not take effect.After you create an alarm policy, the system
// automatically adds an alarm triggering activity of the autoscaling type to the
// alarm_actions field in the alarm rule specified by the parameter value.You can obtain
// the parameter value by querying the CES alarm rule list. For details, see section
// Querying Alarms in the Cloud Eye API Reference.
AlarmId string `json:"alarm_id,omitempty"`
// Specifies the periodic or scheduled AS policy. This parameter
// is mandatory when scaling_policy_type is set to SCHEDULED or RECURRENCE. After this
// parameter is specified, the value of alarm_id does not take effect.
ScheduledPolicy ScheduledPolicy `json:"scheduled_policy"`
// Specifies the action of the AS policy.
ScalingPolicyAction CreateScalingPolicyAction `json:"scaling_policy_action"`
// Specifies the cooling duration (in seconds), and is 900 by
// default.
CoolDownTime *int `json:"cool_down_time,omitempty"`
}
func (CreateOpts) ToPoliciesCreateMap ¶
func (opts CreateOpts) ToPoliciesCreateMap() (map[string]interface{}, error)
type CreateOptsBuilder ¶
type CreateResponse ¶
type CreateResponse struct {
// Specifies the AS policy ID.
ScalingPolicyId string `json:"scaling_policy_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 CreateScalingPolicyAction ¶
type CreateScalingPolicyAction struct {
// Specifies the operation to be performed. The default operation
// is ADD.ADD: adds specified number of instances to the AS group.REMOVE: removes
// specified number of instances from the AS group.SET: sets the number of instances in
// the AS group.
Operation string `json:"operation,omitempty"`
// Specifies the number of instances to be operated. The default
// number is 1.Either instance_number or instance_percentage is required.
InstanceNumber *int `json:"instance_number,omitempty"`
// Indicates the percentage of instances to be operated. You can
// increase/decrease or set the number of instances in an AS group to the specified
// percentage of the current number of instances.If neither instance_number nor
// instance_percentage is specified, the number of instances to be operated is 1.Either
// instance_number or instance_percentage is required.
InstancePercentage *int `json:"instance_percentage,omitempty"`
}
type DeleteResult ¶
type DeleteResult struct {
gophercloud.ErrResult
}
func Delete ¶
func Delete(client *gophercloud.ServiceClient, scalingPolicyId string) (r DeleteResult)
type GetResponse ¶
type GetResponse struct {
// Specifies details about the AS policy.
ScalingPolicy ScalingPolicy `json:"scaling_policy"`
}
type GetResult ¶
type GetResult struct {
// contains filtered or unexported fields
}
func Get ¶
func Get(client *gophercloud.ServiceClient, scalingPolicyId string) (r GetResult)
func (GetResult) Extract ¶
func (r GetResult) Extract() (*ScalingPolicy, error)
type ListOpts ¶
type ListOpts struct {
// Specifies the AS policy ID.
ScalingPolicyID string `q:"scaling_policy_id"`
// Specifies the AS policy name.
ScalingPolicyName string `q:"scaling_policy_name"`
// Specifies the AS policy type.
ScalingPolicyType string `q:"scaling_policy_type"`
// Specifies the start line number. The default value is 0.
StartNumber int `q:"start_number"`
// Specifies the total number of query records. The default value
// is 20 and the maximum value is 100.
Limit int `q:"limit"`
}
func (ListOpts) ToListQuery ¶
type ListOptsBuilder ¶
type ListResponse ¶
type ListResponse struct {
// Specifies the total number of query records.
TotalNumber int `json:"total_number"`
// Specifies the start line number.
StartNumber int `json:"start_number"`
// Specifies the total number of query records.
Limit int `json:"limit"`
// Specifies the AS policy list.
ScalingPolicies []ScalingPolicy `json:"scaling_policies"`
}
func ExtractPolicies ¶
func ExtractPolicies(r pagination.Page) (ListResponse, error)
ExtractPolicies is a function that takes a ListResult and returns the information.
type PolicyPage ¶
type PolicyPage struct {
pagination.NumberPageBase
}
func (PolicyPage) IsEmpty ¶
func (r PolicyPage) IsEmpty() (bool, error)
IsEmpty returns true if a ListResult contains no services.
func (PolicyPage) LastStartNumber ¶
func (r PolicyPage) LastStartNumber() (string, error)
LastStartNumber returns the last service in a ListResult.
type ScalingPolicy ¶
type ScalingPolicy struct {
// Specifies the AS group ID.
ScalingGroupId string `json:"scaling_group_id"`
// Specifies the AS policy name.
ScalingPolicyName string `json:"scaling_policy_name"`
// Specifies the AS policy ID.
ScalingPolicyId string `json:"scaling_policy_id"`
// Specifies the AS policy status.INSERVICE: indicates that the AS
// policy is in use.PAUSED: indicates that the AS policy is disabled.
PolicyStatus string `json:"policy_status"`
// Specifies the AS policy type.ALARM: indicates that the scaling
// action is triggered by an alarm. A value is returned for alarm_id, and no value is
// returned for scheduled_policy.SCHEDULED: indicates that the scaling action is
// triggered as scheduled. A value is returned for scheduled_policy, and no value is
// returned for alarm_id, recurrence_type, recurrence_value, start_time, or
// end_time.RECURRENCE: indicates that the scaling action is triggered periodically.
// Values are returned for scheduled_policy, recurrence_type, recurrence_value,
// start_time, and end_time, and no value is returned for alarm_id.
ScalingPolicyType string `json:"scaling_policy_type"`
// Specifies the alarm ID.
AlarmId string `json:"alarm_id"`
// Specifies the periodic or scheduled AS policy.
ScheduledPolicy ScheduledPolicy `json:"scheduled_policy"`
// Specifies the scaling action of the AS policy.
ScalingPolicyAction ScalingPolicyAction `json:"scaling_policy_action"`
// Specifies the cooling duration (s).
CoolDownTime int `json:"cool_down_time"`
// Specifies the time when an AS policy is created. The time
// format complies with UTC.
CreateTime string `json:"create_time"`
}
type ScalingPolicyAction ¶
type ScalingPolicyAction struct {
// Specifies the operation to be performed. The default operation
// is ADD.ADD: adds specified number of instances to the AS group.REMOVE: removes
// specified number of instances from the AS group.SET: sets the number of instances in
// the AS group.
Operation string `json:"operation,omitempty"`
// Specifies the number of instances to be operated. The default
// number is 1.Either instance_number or instance_percentage is required.
InstanceNumber *int `json:"instance_number,omitempty"`
// Indicates the percentage of instances to be operated. You can
// increase/decrease or set the number of instances in an AS group to the specified
// percentage of the current number of instances.If neither instance_number nor
// instance_percentage is specified, the number of instances to be operated is 1.Either
// instance_number or instance_percentage is required.
InstancePercentage *int `json:"instance_percentage,omitempty"`
}
type ScheduledPolicy ¶
type ScheduledPolicy struct {
// Specifies the time when the scaling action is triggered. The
// time format must comply with UTC.If scaling_policy_type is set to SCHEDULED, the time
// format is YYYY-MM-DDThh:mmZ.If scaling_policy_type is set to RECURRENCE, the time
// format is hh:mm.
LaunchTime string `json:"launch_time" required:"true"`
// Specifies the periodic triggering type. This parameter is
// mandatory when scaling_policy_type is set to RECURRENCE.Daily: indicates that the
// scaling action is triggered once a day.Weekly: indicates that the scaling action is
// triggered once a week.Monthly indicates that the scaling action is triggered once a
// month.
RecurrenceType string `json:"recurrence_type,omitempty"`
// Specifies the frequency at which scaling actions are
// triggered.If recurrence_type is set to Daily, the value is null, indicating that the
// scaling action is triggered once a day.If recurrence_type is set to Weekly, the value
// ranges from 1 (Sunday) to 7 (Saturday). The digits refer to dates in each week and
// separated by a comma. For example, 1,3,5.If recurrence_type is set to Monthly, the
// value ranges from 1 to 31. The digits refer to the dates in each month and separated
// by a comma, such as 1,10,13,28.
RecurrenceValue string `json:"recurrence_value,omitempty"`
// Specifies the start time of the scaling action triggered
// periodically. The time format complies with UTC.The current time is used by
// default.The time format is YYYY-MM-DDThh:mmZ.
StartTime string `json:"start_time,omitempty"`
// Specifies the end time of the scaling action triggered
// periodically. The time format complies with UTC. This parameter is mandatory when
// scaling_policy_type is set to RECURRENCE.When the scaling action is triggered
// periodically, the end time cannot be earlier than the current and start time.The time
// format is YYYY-MM-DDThh:mmZ
EndTime string `json:"end_time,omitempty"`
}
type UpdateOpts ¶
type UpdateOpts struct {
// Specifies the AS policy name. The name can contain letters,
// digits, underscores (_), and hyphens (-), and cannot exceed 64 characters.
ScalingPolicyName string `json:"scaling_policy_name,omitempty"`
// Specifies the AS policy type.ALARM (corresponding to alarm_id):
// indicates that the scaling action is triggered by an alarm.SCHEDULED (corresponding
// to scheduled_policy): indicates that the scaling action is triggered as
// scheduled.RECURRENCE (corresponding to scheduled_policy): indicates that the scaling
// action is triggered periodically.
ScalingPolicyType string `json:"scaling_policy_type,omitempty"`
// Specifies the alarm rule ID. This parameter is mandatory when
// scaling_policy_type is set to ALARM. After this parameter is specified, the value of
// scheduled_policy does not take effect.After you create an alarm policy, the system
// automatically adds an alarm triggering activity of the autoscaling type to the
// alarm_actions field in the alarm rule specified by the parameter value.You can obtain
// the parameter value by querying the CES alarm rule list. For details, see section
// Querying Alarms in the Cloud Eye API Reference.
AlarmId string `json:"alarm_id,omitempty"`
// Specifies the periodic or scheduled AS policy. This parameter
// is mandatory when scaling_policy_type is set to SCHEDULED or RECURRENCE. After this
// parameter is specified, the value of alarm_id does not take effect.
ScheduledPolicy ScheduledPolicy `json:"scheduled_policy"`
// Specifies the scaling action of the AS policy.
ScalingPolicyAction ScalingPolicyAction `json:"scaling_policy_action"`
// Specifies the cooling duration (in seconds), which is 900 by
// default.
CoolDownTime *int `json:"cool_down_time,omitempty"`
}
func (UpdateOpts) ToPoliciesUpdateMap ¶
func (opts UpdateOpts) ToPoliciesUpdateMap() (map[string]interface{}, error)
type UpdateOptsBuilder ¶
type UpdateResponse ¶
type UpdateResponse struct {
// Specifies the AS policy ID.
ScalingPolicyId string `json:"scaling_policy_id"`
}
type UpdateResult ¶
type UpdateResult struct {
// contains filtered or unexported fields
}
func Update ¶
func Update(client *gophercloud.ServiceClient, scalingPolicyId string, opts UpdateOptsBuilder) (r UpdateResult)
func (UpdateResult) Extract ¶
func (r UpdateResult) Extract() (*UpdateResponse, error)
Click to show internal directories.
Click to hide internal directories.