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) UpdateIP(req *UpdateIPRequest, opts ...scw.RequestOption) (*IP, error)
- type BookIPRequest
- type GetIPRequest
- type IP
- type ListIPsRequest
- type ListIPsRequestOrderBy
- type ListIPsResponse
- type ReleaseIPRequest
- 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") )
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 IP addresses with Scaleway's 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) 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: 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 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 must be set.
PrivateNetworkID *string `json:"private_network_id,omitempty"`
// 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 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.