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  }