github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/nat/v3/gateways/results.go (about)

     1  package gateways
     2  
     3  import "github.com/chnsz/golangsdk/openstack/common/tags"
     4  
     5  // Gateway is the structure represents the private NAT gateway details.
     6  type Gateway struct {
     7  	// The ID of the private NAT gateway.
     8  	ID string `json:"id"`
     9  	// The project ID to which the private NAT gateway belongs.
    10  	ProjectId string `json:"project_id"`
    11  	// The name of the private NAT gateway.
    12  	// The valid length is limited from `1` to `64`, only letters, digits, hyphens (-) and underscores (_) are allowed.
    13  	Name string `json:"name"`
    14  	// The description of the private NAT gateway, which contain maximum of `255` characters, and
    15  	// angle brackets (<) and (>) are not allowed.
    16  	Description string `json:"description"`
    17  	// The specification of the private NAT gateway.
    18  	// The valid values are as follows:
    19  	// + **Small**: Small type, which supports up to `20` rules, `200 Mbit/s` bandwidth, `20,000` PPS and `2,000` SNAT
    20  	//   connections.
    21  	// + **Medium**: Medium type, which supports up to `50` rules, `500 Mbit/s` bandwidth, `50,000` PPS and `5,000` SNAT
    22  	//   connections.
    23  	// + **Large**: Large type, which supports up to `200` rules, `2 Gbit/s` bandwidth, `200,000` PPS and `20,000` SNAT
    24  	//   connections.
    25  	// + **Extra-Large**: Extra-large type, which supports up to `500` rules, `5 Gbit/s` bandwidth, `500,000` PPS and
    26  	//   `50,000` SNAT connections.
    27  	Spec string `json:"spec"`
    28  	// The current status of the private NAT gateway.
    29  	Status string `json:"status"`
    30  	// The creation time of the private NAT gateway.
    31  	CreatedAt string `json:"created_at"`
    32  	// The latest update time of the private NAT gateway.
    33  	UpdatedAt string `json:"updated_at"`
    34  	// The VPC configuration of the private NAT gateway.
    35  	DownLinkVpcs []DownLinkVpcResp `json:"downlink_vpcs"`
    36  	// The key/value pairs to associate with the NAT geteway.
    37  	Tags []tags.ResourceTag `json:"tags"`
    38  	// The enterprise project ID to which the private NAT gateway belongs.
    39  	EnterpriseProjectId string `json:"enterprise_project_id"`
    40  }
    41  
    42  // DownLinkVpcResp is an object that represents the VPC configuration to which private NAT gateway belongs.
    43  type DownLinkVpcResp struct {
    44  	// The subnet ID to which the private NAT gateway belongs.
    45  	SubnetId string `json:"virsubnet_id"`
    46  	// The VPC ID to which the private NAT gateway belongs.
    47  	VpcId string `json:"vpc_id"`
    48  }
    49  
    50  type createResp struct {
    51  	// The gateway detail.
    52  	Gateway Gateway `json:"gateway"`
    53  }
    54  
    55  type queryResp struct {
    56  	// The gateway detail.
    57  	Gateway Gateway `json:"gateway"`
    58  }
    59  
    60  type updateResp struct {
    61  	// The gateway detail.
    62  	Gateway Gateway `json:"gateway"`
    63  }