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  }