Documentation ¶
Overview ¶
Package ipam provides methods and message types of the ipam v1 API.
Index ¶
- Constants
- type API
- func (s *API) AttachIP(req *AttachIPRequest, opts ...scw.RequestOption) (*IP, error)
- func (s *API) BookIP(req *BookIPRequest, opts ...scw.RequestOption) (*IP, error)
- func (s *API) DetachIP(req *DetachIPRequest, 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) MoveIP(req *MoveIPRequest, opts ...scw.RequestOption) (*IP, 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 AttachIPRequest
- type BookIPRequest
- type CustomResource
- type DetachIPRequest
- type GetIPRequest
- type IP
- type ListIPsRequest
- type ListIPsRequestOrderBy
- type ListIPsResponse
- type MoveIPRequest
- 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") ResourceTypeCustom = ResourceType("custom") 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") ResourceTypeMgdbInstance = ResourceType("mgdb_instance") ResourceTypeAppleSiliconServer = ResourceType("apple_silicon_server") ResourceTypeAppleSiliconPrivateNic = ResourceType("apple_silicon_private_nic") )
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) AttachIP ¶
func (s *API) AttachIP(req *AttachIPRequest, opts ...scw.RequestOption) (*IP, error)
AttachIP: Attach an existing reserved IP from a Private Network subnet to a custom, named resource via its MAC address. An example of a custom resource is a virtual machine hosted on an Elastic Metal server. Do not use this method for attaching IP addresses to standard Scaleway resources as it will fail - see the relevant product API for an equivalent method.
func (*API) BookIP ¶
func (s *API) BookIP(req *BookIPRequest, opts ...scw.RequestOption) (*IP, error)
BookIP: Reserve a new IP from the specified source. Currently IPs can only be reserved from a Private Network.
func (*API) DetachIP ¶
func (s *API) DetachIP(req *DetachIPRequest, opts ...scw.RequestOption) (*IP, error)
DetachIP: Detach a private IP from a custom resource. An example of a custom resource is a virtual machine hosted on an Elastic Metal server. Do not use this method for detaching IP addresses from standard Scaleway resources (e.g. Instances, Load Balancers) as it will fail - see the relevant product API for an equivalent method.
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) MoveIP ¶
func (s *API) MoveIP(req *MoveIPRequest, opts ...scw.RequestOption) (*IP, error)
MoveIP: Move an existing reserved private IP from one custom resource (e.g. a virtual machine hosted on an Elastic Metal server) to another custom resource. This will detach it from the first resource, and attach it to the second. Do not use this method for moving IP addresses between standard Scaleway resources (e.g. Instances, Load Balancers) as it will fail - see the relevant product API for an equivalent method.
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 AttachIPRequest ¶
type AttachIPRequest 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:"-"` // Resource: custom resource to be attached to the IP. Resource *CustomResource `json:"resource"` }
AttachIPRequest: attach ip request.
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 reserve the IP. Not all sources are available for reservation. 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 reserved, then the call will fail. Address *net.IP `json:"address,omitempty"` // Tags: tags for the IP. Tags []string `json:"tags"` // Resource: custom resource to attach to the IP being reserved. An example of a custom resource is a virtual machine hosted on an Elastic Metal server. Do not use this for attaching IP addresses to standard Scaleway resources, as it will fail - instead, see the relevant product API for an equivalent method. Resource *CustomResource `json:"resource,omitempty"` }
BookIPRequest: book ip request.
type CustomResource ¶
type CustomResource struct { // MacAddress: mAC address of the custom resource. MacAddress string `json:"mac_address"` // Name: when the resource is in a Private Network, a DNS record is available to resolve the resource name. Name *string `json:"name"` }
CustomResource: custom resource.
type DetachIPRequest ¶
type DetachIPRequest 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:"-"` // Resource: custom resource currently attached to the IP. Resource *CustomResource `json:"resource"` }
DetachIPRequest: detach 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 reserved. 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 reserved 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:"-"` // 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:"-"` // ResourceID: resource ID to filter for. Only IPs attached to this resource will be returned. ResourceID *string `json:"-"` // ResourceIDs: resource IDs to filter for. Only IPs attached to at least one of these resources will be returned. ResourceIDs []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:"-"` // ResourceTypes: resource types to filter for. Only IPs attached to these types of resources will be returned. ResourceTypes []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:"-"` // IPIDs: IP IDs to filter for. Only IPs with these UUIDs will be returned. IPIDs []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
func (ListIPsRequestOrderBy) Values ¶
func (enum ListIPsRequestOrderBy) Values() []ListIPsRequestOrderBy
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 MoveIPRequest ¶
type MoveIPRequest 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:"-"` // FromResource: custom resource currently attached to the IP. FromResource *CustomResource `json:"from_resource"` // ToResource: custom resource to be attached to the IP. ToResource *CustomResource `json:"to_resource,omitempty"` }
MoveIPRequest: move ip request.
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
func (ResourceType) Values ¶
func (enum ResourceType) Values() []ResourceType
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.