Documentation ¶
Overview ¶
Package ipam provides methods and message types of the ipam v1 API.
Index ¶
- Constants
- type API
- func (s *API) BookIP(req *BookIPRequest, opts ...scw.RequestOption) (*IP, error)
- func (s *API) GetIP(req *GetIPRequest, opts ...scw.RequestOption) (*IP, error)
- func (s *API) ListIPs(req *ListIPsRequest, opts ...scw.RequestOption) (*ListIPsResponse, error)
- func (s *API) Regions() []scw.Region
- func (s *API) ReleaseIP(req *ReleaseIPRequest, opts ...scw.RequestOption) error
- func (s *API) ReleaseIPSet(req *ReleaseIPSetRequest, opts ...scw.RequestOption) error
- func (s *API) UpdateIP(req *UpdateIPRequest, opts ...scw.RequestOption) (*IP, error)
- type BookIPRequest
- type GetIPRequest
- type IP
- type ListIPsRequest
- type ListIPsRequestOrderBy
- type ListIPsResponse
- type ReleaseIPRequest
- type ReleaseIPSetRequest
- type Resource
- type ResourceType
- type Reverse
- type Source
- type UpdateIPRequest
Constants ¶
const ( ListIPsRequestOrderByCreatedAtDesc = ListIPsRequestOrderBy("created_at_desc") ListIPsRequestOrderByCreatedAtAsc = ListIPsRequestOrderBy("created_at_asc") ListIPsRequestOrderByUpdatedAtDesc = ListIPsRequestOrderBy("updated_at_desc") ListIPsRequestOrderByUpdatedAtAsc = ListIPsRequestOrderBy("updated_at_asc") ListIPsRequestOrderByAttachedAtDesc = ListIPsRequestOrderBy("attached_at_desc") ListIPsRequestOrderByAttachedAtAsc = ListIPsRequestOrderBy("attached_at_asc") )
const ( ResourceTypeUnknownType = ResourceType("unknown_type") ResourceTypeInstanceServer = ResourceType("instance_server") ResourceTypeInstanceIP = ResourceType("instance_ip") ResourceTypeInstancePrivateNic = ResourceType("instance_private_nic") ResourceTypeLBServer = ResourceType("lb_server") ResourceTypeFipIP = ResourceType("fip_ip") ResourceTypeVpcGateway = ResourceType("vpc_gateway") ResourceTypeVpcGatewayNetwork = ResourceType("vpc_gateway_network") ResourceTypeK8sNode = ResourceType("k8s_node") ResourceTypeK8sCluster = ResourceType("k8s_cluster") ResourceTypeRdbInstance = ResourceType("rdb_instance") ResourceTypeRedisCluster = ResourceType("redis_cluster") ResourceTypeBaremetalServer = ResourceType("baremetal_server") ResourceTypeBaremetalPrivateNic = ResourceType("baremetal_private_nic") ResourceTypeLlmDeployment = ResourceType("llm_deployment") )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type API ¶
type API struct {
// contains filtered or unexported fields
}
This API allows you to manage your Scaleway IP addresses with our IP Address Management tool.
func (*API) BookIP ¶
func (s *API) BookIP(req *BookIPRequest, opts ...scw.RequestOption) (*IP, error)
BookIP: Book a new IP from the specified source. Currently IPs can only be booked from a Private Network.
func (*API) GetIP ¶
func (s *API) GetIP(req *GetIPRequest, opts ...scw.RequestOption) (*IP, error)
GetIP: Retrieve details of an existing IP, specified by its IP ID.
func (*API) ListIPs ¶
func (s *API) ListIPs(req *ListIPsRequest, opts ...scw.RequestOption) (*ListIPsResponse, error)
ListIPs: List existing IPs in the specified region using various filters. For example, you can filter for IPs within a specified Private Network, or for public IPs within a specified Project. By default, the IPs returned in the list are ordered by creation date in ascending order, though this can be modified via the order_by field.
func (*API) ReleaseIP ¶
func (s *API) ReleaseIP(req *ReleaseIPRequest, opts ...scw.RequestOption) error
ReleaseIP: Release an IP not currently attached to a resource, and returns it to the available IP pool.
func (*API) ReleaseIPSet ¶
func (s *API) ReleaseIPSet(req *ReleaseIPSetRequest, opts ...scw.RequestOption) error
ReleaseIPSet:
func (*API) UpdateIP ¶
func (s *API) UpdateIP(req *UpdateIPRequest, opts ...scw.RequestOption) (*IP, error)
UpdateIP: Update parameters including tags of the specified IP.
type BookIPRequest ¶
type BookIPRequest struct { // Region: region to target. If none is passed will use default region from the config. Region scw.Region `json:"-"` // ProjectID: when creating an IP in a Private Network, the Project must match the Private Network's Project. ProjectID string `json:"project_id"` // Source: source in which to book the IP. Not all sources are available for booking. Source *Source `json:"source"` // IsIPv6: request an IPv6 instead of an IPv4. IsIPv6 bool `json:"is_ipv6"` // Address: the requested address should not include the subnet mask (/suffix). Note that only the Private Network source allows you to pick a specific IP. If the requested IP is already booked, then the call will fail. Address *net.IP `json:"address,omitempty"` // Tags: tags for the IP. Tags []string `json:"tags"` }
BookIPRequest: book ip request.
type GetIPRequest ¶
type GetIPRequest struct { // Region: region to target. If none is passed will use default region from the config. Region scw.Region `json:"-"` // IPID: IP ID. IPID string `json:"-"` }
GetIPRequest: get ip request.
type IP ¶
type IP struct { // ID: IP ID. ID string `json:"id"` // Address: iPv4 or IPv6 address in CIDR notation. Address scw.IPNet `json:"address"` // ProjectID: scaleway Project the IP belongs to. ProjectID string `json:"project_id"` // IsIPv6: defines whether the IP is an IPv6 (false = IPv4). IsIPv6 bool `json:"is_ipv6"` // CreatedAt: date the IP was booked. CreatedAt *time.Time `json:"created_at"` // UpdatedAt: date the IP was last modified. UpdatedAt *time.Time `json:"updated_at"` // Source: source pool where the IP was booked in. Source *Source `json:"source"` // Resource: resource which the IP is attached to. Resource *Resource `json:"resource"` // Tags: tags for the IP. Tags []string `json:"tags"` // Reverses: array of reverses associated with the IP. Reverses []*Reverse `json:"reverses"` // Region: region of the IP. Region scw.Region `json:"region"` // Zone: zone of the IP, if zonal. Zone *scw.Zone `json:"zone"` }
IP: ip.
type ListIPsRequest ¶
type ListIPsRequest struct { // Region: region to target. If none is passed will use default region from the config. Region scw.Region `json:"-"` // OrderBy: sort order of the returned IPs. // Default value: created_at_desc OrderBy ListIPsRequestOrderBy `json:"-"` // Page: page number to return, from the paginated results. Page *int32 `json:"-"` // PageSize: maximum number of IPs to return per page. PageSize *uint32 `json:"-"` // ProjectID: project ID to filter for. Only IPs belonging to this Project will be returned. ProjectID *string `json:"-"` // Zonal: zone to filter for. Only IPs that are zonal, and in this zone, will be returned. // Precisely one of Zonal, PrivateNetworkID, SubnetID must be set. Zonal *string `json:"zonal,omitempty"` // PrivateNetworkID: only IPs that are private, and in this Private Network, will be returned. // Precisely one of Zonal, PrivateNetworkID, SubnetID must be set. PrivateNetworkID *string `json:"private_network_id,omitempty"` // SubnetID: only IPs inside this exact subnet will be returned. // Precisely one of Zonal, PrivateNetworkID, SubnetID must be set. SubnetID *string `json:"subnet_id,omitempty"` // VpcID: only IPs owned by resources in this VPC will be returned. VpcID *string `json:"-"` // Attached: defines whether to filter only for IPs which are attached to a resource. Attached *bool `json:"-"` // ResourceID: resource ID to filter for. Only IPs attached to this resource will be returned. ResourceID *string `json:"-"` // ResourceType: resource type to filter for. Only IPs attached to this type of resource will be returned. // Default value: unknown_type ResourceType ResourceType `json:"-"` // MacAddress: mAC address to filter for. Only IPs attached to a resource with this MAC address will be returned. MacAddress *string `json:"-"` // Tags: tags to filter for, only IPs with one or more matching tags will be returned. Tags []string `json:"-"` // OrganizationID: organization ID to filter for. Only IPs belonging to this Organization will be returned. OrganizationID *string `json:"-"` // IsIPv6: defines whether to filter only for IPv4s or IPv6s. IsIPv6 *bool `json:"-"` // ResourceName: attached resource name to filter for, only IPs attached to a resource with this string within their name will be returned. ResourceName *string `json:"-"` }
ListIPsRequest: list i ps request.
type ListIPsRequestOrderBy ¶
type ListIPsRequestOrderBy string
func (ListIPsRequestOrderBy) MarshalJSON ¶
func (enum ListIPsRequestOrderBy) MarshalJSON() ([]byte, error)
func (ListIPsRequestOrderBy) String ¶
func (enum ListIPsRequestOrderBy) String() string
func (*ListIPsRequestOrderBy) UnmarshalJSON ¶
func (enum *ListIPsRequestOrderBy) UnmarshalJSON(data []byte) error
type ListIPsResponse ¶
ListIPsResponse: list i ps response.
func (*ListIPsResponse) UnsafeAppend ¶
func (r *ListIPsResponse) UnsafeAppend(res interface{}) (uint64, error)
UnsafeAppend should not be used Internal usage only
func (*ListIPsResponse) UnsafeGetTotalCount ¶
func (r *ListIPsResponse) UnsafeGetTotalCount() uint64
UnsafeGetTotalCount should not be used Internal usage only
type ReleaseIPRequest ¶
type ReleaseIPRequest struct { // Region: region to target. If none is passed will use default region from the config. Region scw.Region `json:"-"` // IPID: IP ID. IPID string `json:"-"` }
ReleaseIPRequest: release ip request.
type ReleaseIPSetRequest ¶
type ReleaseIPSetRequest struct { // Region: region to target. If none is passed will use default region from the config. Region scw.Region `json:"-"` IPIDs []string `json:"ip_ids"` }
ReleaseIPSetRequest: release ip set request.
type Resource ¶
type Resource struct { // Type: type of resource the IP is attached to. // Default value: unknown_type Type ResourceType `json:"type"` // ID: ID of the resource the IP is attached to. ID string `json:"id"` // MacAddress: mAC of the resource the IP is attached to. MacAddress *string `json:"mac_address"` // Name: when the IP is in a Private Network, then a DNS record is available to resolve the resource name to this IP. Name *string `json:"name"` }
Resource: resource.
type ResourceType ¶
type ResourceType string
func (ResourceType) MarshalJSON ¶
func (enum ResourceType) MarshalJSON() ([]byte, error)
func (ResourceType) String ¶
func (enum ResourceType) String() string
func (*ResourceType) UnmarshalJSON ¶
func (enum *ResourceType) UnmarshalJSON(data []byte) error
type Reverse ¶
type Reverse struct { // Hostname: reverse domain name. Hostname string `json:"hostname"` // Address: IP corresponding to the hostname. Address *net.IP `json:"address"` }
Reverse: reverse.
type Source ¶
type Source struct { // Zonal: this source is global. // Precisely one of Zonal, PrivateNetworkID, SubnetID must be set. Zonal *string `json:"zonal,omitempty"` // PrivateNetworkID: this source is specific. // Precisely one of Zonal, PrivateNetworkID, SubnetID must be set. PrivateNetworkID *string `json:"private_network_id,omitempty"` // SubnetID: this source is specific. // Precisely one of Zonal, PrivateNetworkID, SubnetID must be set. SubnetID *string `json:"subnet_id,omitempty"` }
Source: source.
type UpdateIPRequest ¶
type UpdateIPRequest struct { // Region: region to target. If none is passed will use default region from the config. Region scw.Region `json:"-"` // IPID: IP ID. IPID string `json:"-"` // Tags: tags for the IP. Tags *[]string `json:"tags,omitempty"` // Reverses: array of reverse domain names associated with an IP in the subnet of the current IP. Reverses []*Reverse `json:"reverses"` }
UpdateIPRequest: update ip request.