diff --git a/openstack/autoscaling/v1/groups/requests.go b/openstack/autoscaling/v1/groups/requests.go index 7c6598cc0..ef94b40ab 100644 --- a/openstack/autoscaling/v1/groups/requests.go +++ b/openstack/autoscaling/v1/groups/requests.go @@ -19,6 +19,7 @@ type CreateOpts struct { MaxInstanceNumber int `json:"max_instance_number,omitempty"` CoolDownTime int `json:"cool_down_time,omitempty"` LBListenerID string `json:"lb_listener_id,omitempty"` + LBaaSListeners []LBaaSListenerOpts `json:"lbaas_listeners,omitempty"` AvailableZones []string `json:"available_zones,omitempty"` Networks []NetworkOpts `json:"networks" required:"ture"` SecurityGroup []SecurityGroupOpts `json:"security_groups" required:"ture"` @@ -38,6 +39,12 @@ type SecurityGroupOpts struct { ID string `json:"id,omitempty"` } +type LBaaSListenerOpts struct { + PoolID string `json:"pool_id" required:"true"` + ProtocolPort int `json:"protocol_port" required:"true"` + Weight int `json:"weight,omitempty"` +} + func (opts CreateOpts) ToGroupCreateMap() (map[string]interface{}, error) { return golangsdk.BuildRequestBody(opts, "") } @@ -111,6 +118,7 @@ type UpdateOpts struct { MaxInstanceNumber int `json:"max_instance_number,omitempty"` CoolDownTime int `json:"cool_down_time,omitempty"` LBListenerID string `json:"lb_listener_id,omitempty"` + LBaaSListeners []LBaaSListenerOpts `json:"lbaas_listeners,omitempty"` AvailableZones []string `json:"available_zones,omitempty"` Networks []NetworkOpts `json:"networks,omitempty"` SecurityGroup []SecurityGroupOpts `json:"security_groups,omitempty"` diff --git a/openstack/autoscaling/v1/groups/results.go b/openstack/autoscaling/v1/groups/results.go index d6a2fa957..98eb70d50 100644 --- a/openstack/autoscaling/v1/groups/results.go +++ b/openstack/autoscaling/v1/groups/results.go @@ -49,7 +49,7 @@ type Group struct { MaxInstanceNumber int `json:"max_instance_number"` CoolDownTime int `json:"cool_down_time"` LBListenerID string `json:"lb_listener_id"` - LBaaSListeners []interface{} `json:"lbaas_listeners"` + LBaaSListeners []LBaaSListener `json:"lbaas_listeners"` AvailableZones []string `json:"available_zones"` Networks []Network `json:"networks"` SecurityGroups []SecurityGroup `json:"security_groups"` @@ -73,6 +73,13 @@ type SecurityGroup struct { ID string `json:"id"` } +type LBaaSListener struct { + ListenerID string `json:"listener_id"` + PoolID string `json:"pool_id"` + ProtocolPort int `json:"protocol_port"` + Weight int `json:"weight"` +} + type GroupPage struct { pagination.SinglePageBase }