github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/apigw/v2/gateway/Get.go (about) 1 package gateway 2 3 import ( 4 "github.com/opentelekomcloud/gophertelekomcloud" 5 "github.com/opentelekomcloud/gophertelekomcloud/internal/extract" 6 ) 7 8 func Get(client *golangsdk.ServiceClient, id string) (*Gateway, error) { 9 raw, err := client.Get(client.ServiceURL("apigw", "instances", id), nil, nil) 10 if err != nil { 11 return nil, err 12 } 13 14 var res Gateway 15 err = extract.Into(raw.Body, &res) 16 return &res, err 17 } 18 19 type Gateway struct { 20 ID string `json:"id"` 21 ProjectID string `json:"project_id"` 22 InstanceName string `json:"instance_name"` 23 Status string `json:"status"` 24 InstanceStatus int `json:"instance_status"` 25 Type string `json:"type"` 26 Spec string `json:"spec"` 27 CreateTime int64 `json:"create_time"` 28 EipAddress string `json:"eip_address"` 29 ChargingMode int `json:"charging_mode"` 30 LoadbalancerProvider string `json:"loadbalancer_provider"` 31 Description string `json:"description"` 32 VpcID string `json:"vpc_id"` 33 SubnetID string `json:"subnet_id"` 34 SecurityGroupID string `json:"security_group_id"` 35 MaintainBegin string `json:"maintain_begin"` 36 MaintainEnd string `json:"maintain_end"` 37 IngressIp string `json:"ingress_ip"` 38 UserID string `json:"user_id"` 39 NatEipAddress string `json:"nat_eip_address"` 40 BandwidthSize int `json:"bandwidth_size"` 41 BandwidthChargingMode string `json:"bandwidth_charging_mode"` 42 AvailableZoneIDs string `json:"available_zone_ids"` 43 InstanceVersion string `json:"instance_version"` 44 VirsubnetID string `json:"virsubnet_id"` 45 RomaEipAddress string `json:"roma_eip_address"` 46 // Listeners *Listeners `json:"listeners"` 47 SupportedFeatures []string `json:"supported_features"` 48 EndpointService *EndpointService `json:"endpoint_service"` 49 EndpointServices []EndpointService `json:"endpoint_services"` 50 NodeIps *NodeIps `json:"node_ips"` 51 PublicIps []IpDetail `json:"publicips"` 52 PrivateIps []IpDetail `json:"privateips"` 53 IsReleasable *bool `json:"is_releasable"` 54 IngressBandwidthChargingMode string `json:"ingress_bandwidth_charging_mode"` 55 } 56 57 type EndpointService struct { 58 ServiceName string `json:"service_name"` 59 CreatedAt string `json:"created_at"` 60 } 61 62 type NodeIps struct { 63 LiveData []string `json:"livedata"` 64 Shubao []string `json:"shubao"` 65 } 66 67 type IpDetail struct { 68 IpAddress string `json:"ip_address"` 69 BandwidthSize int `json:"bandwidth_size"` 70 }