github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/api/container/containerv2/subnets.go (about) 1 package containerv2 2 3 import ( 4 "fmt" 5 6 "github.com/IBM-Cloud/bluemix-go/client" 7 ) 8 9 type SubnetConfig struct { 10 AvailableIPv4AddressCount int `json:"availableIPv4AddressCount"` 11 ID string `json:"id"` 12 Ipv4CIDRBlock string `json:"ipv4CIDRBlock"` 13 Name string `json:"name"` 14 PublicGatewayID string `json:"publicGatewayID"` 15 PublicGatewayName string `json:"publicGatewayName"` 16 VpcID string `json:"vpcID"` 17 VpcName string `json:"vpcName"` 18 Zone string `json:"zone"` 19 } 20 21 type subnet struct { 22 client *client.Client 23 } 24 25 //Subnets interface 26 type Subnets interface { 27 ListSubnets(vpcID, zone string, target ClusterTargetHeader) ([]SubnetConfig, error) 28 } 29 30 func newSubnetsAPI(c *client.Client) Subnets { 31 return &subnet{ 32 client: c, 33 } 34 } 35 36 //ListSubnets list the subnets for a given VPC 37 func (r *subnet) ListSubnets(vpcID, zone string, target ClusterTargetHeader) ([]SubnetConfig, error) { 38 var successV []SubnetConfig 39 _, err := r.client.Get(fmt.Sprintf("/v2/vpc/getSubnets?vpc=%s&provider=%s&zone=%s", vpcID, target.Provider, zone), &successV, target.ToMap()) 40 return successV, err 41 }