List backup policies
GET /backup_policies
This request lists backup policies in the region. Backup policies control which sources are selected for backup and include a set of backup policy plans that provide the backup schedules and deletion triggers.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.backup-policy.backup-policy.readis.backup-policy.backup-policy.list
Auditing
Calling this method generates the following auditing event.
is.backup-policy.backup-policy.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
name
string
Filters the collection to resources with a `name` property matching the exact specified name.
tag
Filters the collection to resources with an item in the `tags` property matching the exact specified tag.
Response
200 - The backup policies were retrieved successfully
backup_policies
array
A page of backup policies
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
Create a backup policy
POST /backup_policies
This request creates a new backup policy from a backup policy prototype object. The prototype object is structured in the same way as a retrieved backup policy, and contains the information necessary to create the new backup policy.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.backup-policy.backup-policy.create
Auditing
Calling this method generates the following auditing event.
is.backup-policy.backup-policy.create
Request
Request Body
BackupPolicyPrototype
The backup policy prototype object
match_resource_type
Required *
string
The resource type this backup policy will apply to. Resources that have both a matching type and a matching user tag will be subject to the backup policy.
match_user_tags
Required *
array
The user tags this backup policy will apply to. Resources that have both a matching user tag and a matching type will be subject to the backup policy.
name
string
The name for this backup policy. The name must not be used by another backup policy in the region. If unspecified, the name will be a hyphenated list of randomly-selected words.
plans
array
The prototype objects for backup plans to be created for this backup policy.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
scope
BackupPolicyScopePrototype
The scope to use for this backup policy.
If unspecified, the policy will be scoped to the account.
Response
201 - The backup policy was created successfully.
created_at
string
The date and time that the backup policy was created
crn
string
The CRN for this backup policy
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this backup policy
id
string
The unique identifier for this backup policy
last_job_completed_at
string
The date and time that the most recent job for this backup policy completed.
If absent, no job has yet completed for this backup policy.
lifecycle_state
object
The lifecycle state of the backup policy
match_resource_type
string
The resource type this backup policy applies to. Resources that have both a matching type and a matching user tag will be subject to the backup policy.
The enumerated values for this property may expand in the future.
match_user_tags
array
The user tags this backup policy applies to. Resources that have both a matching user tag and a matching type will be subject to the backup policy.
name
string
The name for this backup policy. The name is unique across all backup policies in the region.
plans
array
The plans for the backup policy.
resource_group
object
The resource group for this backup policy
resource_type
string
The resource type
scope
BackupPolicyScope
The scope for this backup policy.
400 - An invalid backup policy prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The backup policy prototype object conflicts with another backup policy in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List jobs for a backup policy
GET /backup_policies/{backup_policy_id}/jobs
This request retrieves jobs for a backup policy. A backup job represents the execution of a backup policy plan for a resource matching the policy's criteria.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.backup-policy.backup-policy.read
Auditing
Calling this method generates the following auditing event.
is.backup-policy.backup-job.read
Request
Path Parameters
Query Parameters
status
Filters the collection to backup policy jobs with a `status` property matching the specified value.
backup_policy_plan.id
Filters the collection to backup policy jobs with a `backup_policy_plan.id` property matching the specified identifier.
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
sort
string
Sorts the returned collection by the specified property name in ascending order. A `-` may be prepended to the name to sort in descending order. For example, the value `-created_at` sorts the collection by the `created_at` property in descending order, and the value `name` sorts it by the `name` property in ascending order.
source.id
Filters the collection to backup policy jobs with a `source.id` property matching the specified identifier.
target_snapshots[].id
Filters the collection to backup policy jobs with an item in the `target_snapshots` property with an `id` property matching the specified identifier.
target_snapshots[].crn
string
Filters the collection to backup policy jobs with an item in the `target_snapshots` property with a `crn` property matching the specified CRN.
Response
200 - The backup policy jobs were retrieved successfully.
first
object
A link to the first page of resources
jobs
array
A page of jobs for the backup policy
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - A backup policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a backup policy job
GET /backup_policies/{backup_policy_id}/jobs/{id}
This request retrieves a single backup policy job specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.backup-policy.backup-policy.read
Auditing
Calling this method generates the following auditing event.
is.backup-policy.backup-job.read
Request
Response
200 - The backup policy job was retrieved successfully.
auto_delete
boolean
Indicates whether this backup policy job will be automatically deleted after it completes. At present, this is always `true`, but may be modifiable in the future.
auto_delete_after
integer
If `auto_delete` is `true`, the days after completion that this backup policy job will be deleted. This value may be modifiable in the future.
backup_policy_plan
object
The backup policy plan operated this backup policy job (may be deleted).
completed_at
string
The date and time that the backup policy job was completed.
If absent, the backup policy job has not yet completed.
created_at
string
The date and time that the backup policy job was created
href
string
The URL for this backup policy job
id
string
The unique identifier for this backup policy job
job_type
string
The type of backup policy job.
The enumerated values for this property may expand in the future.
resource_type
string
The resource type
source
BackupPolicyJobSource
The source this backup was created from (may be deleted).
status
object
The status of the backup policy job.
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
target_snapshots
array
The snapshots operated on by this backup policy job (may be deleted).
404 - A backup policy job with the specified identifier could not be found for the backup
policy with the specified identifier.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List plans for a backup policy
GET /backup_policies/{backup_policy_id}/plans
This request retrieves plans for a backup policy. Backup plans provide the backup schedule and deletion triggers.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.backup-policy.backup-policy.read
Auditing
Calling this method generates the following auditing event.
is.backup-policy.backup-plan.read
Request
Path Parameters
Query Parameters
name
string
Filters the collection to resources with a `name` property matching the exact specified name.
Response
200 - The backup policy plans were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
plans
array
A page of plans for the backup policy
total_count
integer
The total number of resources across all pages
404 - A backup policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
POST /backup_policies/{backup_policy_id}/plans
This request creates a new backup policy plan from a backup policy plan prototype object. The prototype object is structured in the same way as a retrieved backup policy plan, and contains the information necessary to create the new backup policy plan.
Backups created by this plan will use the resource group of the source being backed up.
Backups created by this plan will use the plan's name truncated to 46 characters, followed by a unique 16-character suffix.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.backup-policy.backup-policy.update
Auditing
Calling this method generates the following auditing event.
is.backup-policy.backup-plan.create
Request
Request Body
BackupPolicyPlanPrototype
The backup policy plan prototype object
active
boolean
Indicates whether the plan is active.
attach_user_tags
array
The user tags to attach to each backup (snapshot) created by this plan.
clone_policy
BackupPolicyPlanClonePolicyPrototype
max_snapshots
integer
The maximum number of recent snapshots (per source) that will keep clones.
zones
Required *
array
The zone this backup policy plan will create snapshot clones in.
copy_user_tags
boolean
Indicates whether to copy the source's user tags to the created backups (snapshots).
cron_spec
Required *
string
The cron specification for the backup schedule. The backup policy jobs (which create and delete backups for this plan) will not start until this time, and may start for up to 90 minutes after this time.
All backup schedules for plans in the same policy must be at least an hour apart.
deletion_trigger
BackupPolicyPlanDeletionTriggerPrototype
delete_after
integer
The maximum number of days to keep each backup after creation.
delete_over_count
integer
The maximum number of recent backups to keep. If unspecified, there will be no maximum.
name
string
The name for this backup policy plan. The name must not be used by another plan for the backup policy. If unspecified, the name will be a hyphenated list of randomly-selected words.
remote_region_policies
array
The policies for additional backups in remote regions.
Response
201 - The backup policy plan was created successfully.
active
boolean
Indicates whether the plan is active.
attach_user_tags
array
The user tags to attach to backups (snapshots) created by this plan.
clone_policy
BackupPolicyPlanClonePolicy
copy_user_tags
boolean
Indicates whether to copy the source's user tags to the created backups (snapshots).
created_at
string
The date and time that the backup policy plan was created
cron_spec
string
The cron specification for the backup schedule. The backup policy jobs (which create and delete backups for this plan) will not start until this time, and may start for up to 90 minutes after this time.
All backup schedules for plans in the same policy must be at least an hour apart.
deletion_trigger
BackupPolicyPlanDeletionTrigger
href
string
The URL for this backup policy plan
id
string
The unique identifier for this backup policy plan
lifecycle_state
object
The lifecycle state of this backup policy plan
name
string
The name for this backup policy plan. The name is unique across all plans in the backup policy.
remote_region_policies
array
The policies for additional backups in remote regions.
resource_type
string
The resource type
400 - An invalid backup policy plan prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A backup policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The backup policy plan prototype object specified an encryption key that cannot
be used in its current state.
errors
array
The errors that occurred.
trace
string
The unique error identifier
DELETE /backup_policies/{backup_policy_id}/plans/{id}
This request deletes a backup policy plan. This operation cannot be reversed. Any backups that have been created by the plan will remain but will no longer be subject to the plan's deletion trigger. Any running jobs associated with the plan will run to completion before the plan is deleted.
If the request is accepted, the backup policy plan `status` will be set to `deleting`. Once deletion processing completes, the backup policy plan will no longer be retrievable.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.backup-policy.backup-policy.update
Auditing
Calling this method generates the following auditing event.
is.backup-policy.backup-plan.delete
Request
Path Parameters
Query Parameters
Response
202 - The backup policy plan deletion request was accepted.
active
boolean
Indicates whether the plan is active.
attach_user_tags
array
The user tags to attach to backups (snapshots) created by this plan.
clone_policy
BackupPolicyPlanClonePolicy
copy_user_tags
boolean
Indicates whether to copy the source's user tags to the created backups (snapshots).
created_at
string
The date and time that the backup policy plan was created
cron_spec
string
The cron specification for the backup schedule. The backup policy jobs (which create and delete backups for this plan) will not start until this time, and may start for up to 90 minutes after this time.
All backup schedules for plans in the same policy must be at least an hour apart.
deletion_trigger
BackupPolicyPlanDeletionTrigger
href
string
The URL for this backup policy plan
id
string
The unique identifier for this backup policy plan
lifecycle_state
object
The lifecycle state of this backup policy plan
name
string
The name for this backup policy plan. The name is unique across all plans in the backup policy.
remote_region_policies
array
The policies for additional backups in remote regions.
resource_type
string
The resource type
404 - A backup policy plan with the specified identifier could not be found for the policy
plan with the specified identifier.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the backup
policy plan.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a backup policy plan
GET /backup_policies/{backup_policy_id}/plans/{id}
This request retrieves a single backup policy plan specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.backup-policy.backup-policy.read
Auditing
Calling this method generates the following auditing event.
is.backup-policy.backup-plan.read
Request
Response
200 - The backup policy plan was retrieved successfully.
active
boolean
Indicates whether the plan is active.
attach_user_tags
array
The user tags to attach to backups (snapshots) created by this plan.
clone_policy
BackupPolicyPlanClonePolicy
copy_user_tags
boolean
Indicates whether to copy the source's user tags to the created backups (snapshots).
created_at
string
The date and time that the backup policy plan was created
cron_spec
string
The cron specification for the backup schedule. The backup policy jobs (which create and delete backups for this plan) will not start until this time, and may start for up to 90 minutes after this time.
All backup schedules for plans in the same policy must be at least an hour apart.
deletion_trigger
BackupPolicyPlanDeletionTrigger
href
string
The URL for this backup policy plan
id
string
The unique identifier for this backup policy plan
lifecycle_state
object
The lifecycle state of this backup policy plan
name
string
The name for this backup policy plan. The name is unique across all plans in the backup policy.
remote_region_policies
array
The policies for additional backups in remote regions.
resource_type
string
The resource type
404 - A backup policy plan with the specified identifier could not be found for the backup
policy with the specified identifier.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a backup policy plan
PATCH /backup_policies/{backup_policy_id}/plans/{id}
This request updates a backup policy plan with the information in a provided plan patch. The plan patch object is structured in the same way as a retrieved backup policy plan and can contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.backup-policy.backup-policy.update
Auditing
Calling this method generates the following auditing event.
is.backup-policy.backup-plan.update
Request
Request Body
The backup policy plan patch
Path Parameters
Query Parameters
Response
200 - The backup policy plan was updated successfully.
active
boolean
Indicates whether the plan is active.
attach_user_tags
array
The user tags to attach to backups (snapshots) created by this plan.
clone_policy
BackupPolicyPlanClonePolicy
copy_user_tags
boolean
Indicates whether to copy the source's user tags to the created backups (snapshots).
created_at
string
The date and time that the backup policy plan was created
cron_spec
string
The cron specification for the backup schedule. The backup policy jobs (which create and delete backups for this plan) will not start until this time, and may start for up to 90 minutes after this time.
All backup schedules for plans in the same policy must be at least an hour apart.
deletion_trigger
BackupPolicyPlanDeletionTrigger
href
string
The URL for this backup policy plan
id
string
The unique identifier for this backup policy plan
lifecycle_state
object
The lifecycle state of this backup policy plan
name
string
The name for this backup policy plan. The name is unique across all plans in the backup policy.
remote_region_policies
array
The policies for additional backups in remote regions.
resource_type
string
The resource type
400 - An invalid backup policy plan patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A backup policy plan with the specified identifier could not be found for the backup
policy with the specified identifier.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The specified encryption key cannot be used in its current state.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the backup
policy plan.
errors
array
The errors that occurred.
trace
string
The unique error identifier
DELETE /backup_policies/{id}
This request deletes a backup policy. This operation cannot be reversed.
If the request is accepted, the backup policy `status` will be set to `deleting`. Once deletion processing completes, the backup policy will no longer be retrievable.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.backup-policy.backup-policy.delete
Auditing
Calling this method generates the following auditing event.
is.backup-policy.backup-policy.delete
Request
Path Parameters
Query Parameters
Response
202 - The backup policy deletion request was accepted.
created_at
string
The date and time that the backup policy was created
crn
string
The CRN for this backup policy
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this backup policy
id
string
The unique identifier for this backup policy
last_job_completed_at
string
The date and time that the most recent job for this backup policy completed.
If absent, no job has yet completed for this backup policy.
lifecycle_state
object
The lifecycle state of the backup policy
match_resource_type
string
The resource type this backup policy applies to. Resources that have both a matching type and a matching user tag will be subject to the backup policy.
The enumerated values for this property may expand in the future.
match_user_tags
array
The user tags this backup policy applies to. Resources that have both a matching user tag and a matching type will be subject to the backup policy.
name
string
The name for this backup policy. The name is unique across all backup policies in the region.
plans
array
The plans for the backup policy.
resource_group
object
The resource group for this backup policy
resource_type
string
The resource type
scope
BackupPolicyScope
The scope for this backup policy.
404 - A backup policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the backup
policy.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a backup policy
GET /backup_policies/{id}
This request retrieves a single backup policy specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.backup-policy.backup-policy.read
Auditing
Calling this method generates the following auditing event.
is.backup-policy.backup-policy.read
Request
Response
200 - The backup policy was retrieved successfully.
created_at
string
The date and time that the backup policy was created
crn
string
The CRN for this backup policy
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this backup policy
id
string
The unique identifier for this backup policy
last_job_completed_at
string
The date and time that the most recent job for this backup policy completed.
If absent, no job has yet completed for this backup policy.
lifecycle_state
object
The lifecycle state of the backup policy
match_resource_type
string
The resource type this backup policy applies to. Resources that have both a matching type and a matching user tag will be subject to the backup policy.
The enumerated values for this property may expand in the future.
match_user_tags
array
The user tags this backup policy applies to. Resources that have both a matching user tag and a matching type will be subject to the backup policy.
name
string
The name for this backup policy. The name is unique across all backup policies in the region.
plans
array
The plans for the backup policy.
resource_group
object
The resource group for this backup policy
resource_type
string
The resource type
scope
BackupPolicyScope
The scope for this backup policy.
404 - A backup policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a backup policy
PATCH /backup_policies/{id}
This request updates a backup policy with the information in a provided backup policy patch. The backup policy patch object is structured in the same way as a retrieved backup policy and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.backup-policy.backup-policy.update
Auditing
Calling this method generates the following auditing event.
is.backup-policy.backup-policy.update
Request
Request Body
The backup policy patch
Path Parameters
Query Parameters
Response
200 - The backup policy was updated successfully.
created_at
string
The date and time that the backup policy was created
crn
string
The CRN for this backup policy
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this backup policy
id
string
The unique identifier for this backup policy
last_job_completed_at
string
The date and time that the most recent job for this backup policy completed.
If absent, no job has yet completed for this backup policy.
lifecycle_state
object
The lifecycle state of the backup policy
match_resource_type
string
The resource type this backup policy applies to. Resources that have both a matching type and a matching user tag will be subject to the backup policy.
The enumerated values for this property may expand in the future.
match_user_tags
array
The user tags this backup policy applies to. Resources that have both a matching user tag and a matching type will be subject to the backup policy.
name
string
The name for this backup policy. The name is unique across all backup policies in the region.
plans
array
The plans for the backup policy.
resource_group
object
The resource group for this backup policy
resource_type
string
The resource type
scope
BackupPolicyScope
The scope for this backup policy.
400 - An invalid backup policy patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A backup policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The backup policy patch conflicts with another backup policy in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the backup
policy.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List capacities for bare metal servers
GET /bare_metal_server/capacities
This request lists bare metal server capacities in the region.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.capacity.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
profile.name
string
Filters the collection to resources with a `profile.name` property matching the specified profile name.
zone.name
string
Filters the collection to resources with a `zone.name` property matching the exact specified name.
Response
200 - The available bare metal server capacities were retrieved successfully
capacities
array
A page of available bare metal server capacities.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
List bare metal server profiles
GET /bare_metal_server/profiles
This request lists bare metal server profiles available in the region. A bare metal server profile specifies the performance characteristics and pricing model for a bare metal server.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.profile.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The bare metal server profiles were retrieved successfully
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
profiles
array
A page of bare metal server profiles
total_count
integer
The total number of resources across all pages
Retrieve a bare metal server profile
GET /bare_metal_server/profiles/{name}
This request retrieves a single bare metal server profile specified by the name in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.profile.read
Request
Path Parameters
name
Required *
string
The bare metal server profile name
Query Parameters
Response
200 - The bare metal server profile was retrieved successfully
bandwidth
BareMetalServerProfileBandwidth
console_types
BareMetalServerProfileConsoleTypes
The console type configuration for a bare metal server with this profile.
cpu_architecture
BareMetalServerProfileCPUArchitecture
cpu_core_count
BareMetalServerProfileCPUCoreCount
cpu_socket_count
BareMetalServerProfileCPUSocketCount
disks
BareMetalServerProfileDisks
The disks for a bare metal server with this profile.
family
string
The product family this bare metal server profile belongs to
href
string
The URL for this bare metal server profile
memory
BareMetalServerProfileMemory
name
string
The name for this bare metal server profile
network_attachment_count
BareMetalServerProfileNetworkAttachmentCount
network_interface_count
BareMetalServerProfileNetworkInterfaceCount
os_architecture
BareMetalServerProfileOSArchitecture
reservation_terms
BareMetalServerProfileReservationTerms
resource_type
string
The resource type
supported_trusted_platform_module_modes
BareMetalServerProfileSupportedTrustedPlatformModuleModes
The supported trusted platform module modes for this bare metal server profile.
supported_volume_attachment_protocols
array
The volume attachment protocols supported by bare metal servers that use this profile. These protocols determine how block storage volumes can be attached to servers created from the profile. An empty array indicates that the profile does not support volume attachments.
- `nvme_tcp`: Non-Volatile Memory Express (NVMe) over TCP/IP. This protocol allows bare metal servers to connect to volumes over the network using the NVMe protocol.
virtual_network_interfaces_supported
BareMetalServerProfileVirtualNetworkInterfacesSupported
Indicates whether this profile supports virtual network interfaces
zones
BareMetalServerProfileZones
The zones in this region that support this bare metal server profile.
404 - A bare metal server profile with the specified name could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List bare metal servers
GET /bare_metal_servers
This request lists bare metal servers in the region.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.listis.bare-metal-server.bare-metal-server.read
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.bare-metal-server.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
name
string
Filters the collection to resources with a `name` property matching the exact specified name.
reservation.id
Filters the collection to resources with a `reservation.id` property matching the specified identifier.
reservation.crn
string
Filters the collection to resources with a `reservation.crn` property matching the specified identifier.
reservation.name
string
Filters the collection to resources with a `reservation.name` property matching the specified identifier.
vpc.id
Filters the collection to resources with a `vpc.id` property matching the specified identifier.
vpc.crn
string
Filters the collection to resources with a `vpc.crn` property matching the specified CRN.
vpc.name
string
Filters the collection to resources with a `vpc.name` property matching the exact specified name.
Response
200 - The bare metal servers were retrieved successfully.
bare_metal_servers
array
A page of bare metal servers
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
POST /bare_metal_servers
This request provisions a new bare metal server from a prototype object. The prototype object is structured in the same way as a retrieved bare metal server, and contains the information necessary to provision the new bare metal server. The bare metal server is automatically started.
For this request to succeed, the properties in the request must adhere to the source image's `allowed_use` property.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.createis.subnet.subnet.operateis.subnet.subnet.updateis.security-group.security-group.operateis.vpc.vpc.operateis.key.key.operateis.image.image.operateis.bare-metal-server.bare-metal-server.ip-spoofingis.bare-metal-server.bare-metal-server.infrastructure-natis.reservation.reservation.operateiam-identity.profile.getiam-identity.profile.updateiam-identity.profile.linkToResourceis.virtual-network-interface.virtual-network-interface.createis.virtual-network-interface.virtual-network-interface.manage-infrastructure-natis.virtual-network-interface.virtual-network-interface.manage-ip-spoofingis.virtual-network-interface.virtual-network-interface.manage-protocol-state-filtering-mode
Auditing
Calling this method generates the following auditing event.
is.virtual-network-interface.virtual-network-interface.createis.virtual-network-interface.virtual-network-interface.attachis.bare-metal-server.network-attachment.attachis.bare-metal-server.bare-metal-server.createis.bare-metal-server.network-attachment.createis.bare-metal-server.network-interface.createis.bare-metal-server.network-interface.attachis.subnet.reserved-ip.attachis.subnet.reserved-ip.createis.security-group.security-group.attachis.subnet.subnet.updateis.bare-metal-server.bare-metal-server.attachis.reservation.reservation.attach
Request
Request Body
BareMetalServerPrototype
The bare metal server prototype object
bandwidth
integer
The total bandwidth (in megabits per second) shared across the bare metal server's network interfaces. The specified value must match one of the bandwidth values in the bare metal server's profile. If unspecified, the default value from the profile will be used.
enable_secure_boot
boolean
Indicates whether secure boot is enabled. If enabled, the image must support secure boot or the server will fail to boot.
initialization
Required *
BareMetalServerInitializationPrototype
default_trusted_profile
object
The default trusted profile to be used when initializing the bare metal server.
If unspecified, no default trusted profile will be made available.
keys
Required *
array
The public SSH keys to install on the bare metal server. Keys will be made available to the bare metal server as cloud-init vendor data. For cloud-init enabled images, these keys will also be added as SSH authorized keys for the default user.
For Windows images, at least one SSH key of type `rsa` must be specified. One of the provided keys is selected to encrypt the administrator password. SSH keys are optional for other images; however, if no keys are specified, the bare metal server will be inaccessible unless the selected image provides an alternative access mechanism.
To allow for remote block storage attachment, at least one key of type `rsa` must be specified. One of the provided keys is selected to encrypt the `storage_access` secret. If no keys are specified, the bare metal server will be unable to connect to remote block storage until either:
- the server is reinitialized with at least one key of type `rsa`
- the `storage_access` secret is rotated with a key of type `rsa`
user_data
string
The user data to make available when setting up the bare metal server.
metadata_service
BareMetalServerMetadataServicePrototype
The metadata service configuration for the bare metal server
enabled
boolean
Indicates whether the metadata service endpoint will be available to the bare metal server
protocol
string
The communication protocol to use for the metadata service endpoint. Applies only when the metadata service is enabled.
- `http`: HTTP protocol (unencrypted)
- `https`: HTTP Secure protocol
name
string
The name for this bare metal server. The name must not be used by another bare metal server in the region. If unspecified, the name will be a hyphenated list of randomly-selected words.
The system hostname will be based on this name.
profile
Required *
object
Identifies a bare metal server profile by a unique property.
reservation_affinity
BareMetalServerReservationAffinityPrototype
policy
string
The reservation affinity policy to use for this bare metal server:
- `disabled`: Reservations will not be used
- `manual`: Reservations in `pool` will be available for use
- `automatic`: Any reservations with an `affinity_policy` of `automatic` that have the same `profile` and `zone` as this bare metal server are available for use.
The policy will default to `manual` if `pool` is not empty. Otherwise the policy will default to `automatic`.
pool
array
The pool of reservations available for use by this bare metal server.
Specified reservations must have a `status` of `active`, and have the same `profile` and `zone` as this bare metal server.
If `policy` is `manual`, `pool` must have one reservation. If `policy` is `disabled` or `automatic`, `pool` must be empty. If `policy` is `manual`, the `pool` must contain a reservation with available capacity.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
trusted_platform_module
BareMetalServerTrustedPlatformModulePrototype
mode
string
The trusted platform module mode to use. The specified value must be listed in the bare metal server profile's `supported_trusted_platform_module_modes`.
If unspecified, the default trusted platform module mode from the profile will be used.
volume_attachments
array
The additional volume attachments to create for the bare metal server
vpc
object
Identifies a VPC by a unique property.
zone
Required *
object
Identifies a zone by a unique property.
Response
201 - The bare metal server was created successfully.
bandwidth
integer
The total bandwidth (in megabits per second) shared across the bare metal server network attachments or bare metal server network interfaces
boot_target
BareMetalServerBootTarget
The resource from which this bare metal server is booted.
The resources supported by this property may expand in the future.
cpu
BareMetalServerCPU
The bare metal server CPU configuration
created_at
string
The date and time that the bare metal server was created
crn
string
The CRN for this bare metal server
disks
array
The disks for this bare metal server, including any disks that are associated with the `boot_target`.
enable_secure_boot
boolean
Indicates whether secure boot is enabled. If enabled, the image must support secure boot or the server will fail to boot.
firmware
BareMetalServerFirmware
Firmware information for the bare metal server
health_reasons
array
The reasons for the current server `health_state` (if any):
- `reservation_capacity_unavailable`: The reservation affinity pool has no available capacity.
- `reservation_deleted`: The reservation affinity pool has a deleted reservation.
- `reservation_expired`: The reservation affinity pool has an expired reservation.
- `reservation_failed`: The reservation affinity pool has a failed reservation.
See health status reasons for details. The enumerated values for this property may expand in the future.
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this bare metal server
id
string
The unique identifier for this bare metal server
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the bare metal server.
memory
integer
The amount of memory, truncated to whole gibibytes
metadata_service
BareMetalServerMetadataService
The metadata service configuration for the bare metal server
name
string
The name for this bare metal server. The name is unique across all bare metal servers in the region.
network_attachments
array
The network attachments for this bare metal server, including the primary network attachment.
network_interfaces
array
The network interfaces for this bare metal server, including the primary network interface.
If this bare metal server has network attachments, each network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface.
nvme_qualified_name
object
An NVMe Qualified Name (NQN). NQNs are unique identifiers used in NVMe over Fabrics (NVMe-oF) to identify NVMe subsystems and hosts.
primary_network_attachment
object
The primary network attachment for this bare metal server.
primary_network_interface
object
The primary network interface for this bare metal server.
If this bare metal server has network attachments, this primary network interface is a read-only representation of the primary network attachment and its attached virtual network interface.
profile
object
The profile for this bare metal server
reservation
object
The reservation used by this bare metal server. If absent, no reservation is in use.
reservation_affinity
BareMetalServerReservationAffinity
resource_group
object
The resource group for this bare metal server
resource_type
string
The resource type
status
string
The status of this bare metal server:
- `deleting`: server is undergoing deletion
- `failed`: server is failed and not usable (see `status_reasons`)
- `maintenance`: server is undergoing maintenance (not usable)
- `pending`: server is being provisioned and not yet usable
- `reinitializing`: server is reinitializing and not yet usable
- `restarting`: server is restarting and not yet usable
- `running`: server is powered on
- `starting`: server is starting and not yet usable
- `stopped`: server is powered off
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
storage_access
object
The storage access secret required to connect to remote storage.
This property will be present if an SSH Key of type `rsa` was provided during server initialization, reinitialization, or `storage_access` secret rotation.
trusted_platform_module
BareMetalServerTrustedPlatformModule
volume_attachments
array
The volume attachments for this bare metal server.
This array will be empty if no volumes are attached to the bare metal server.
vpc
object
The VPC this bare metal server resides in
zone
object
The zone this bare metal server resides in
400 - An invalid bare metal server prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The bare metal server prototype object conflicts with another bare metal server
in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve the console WebSocket for a bare metal server
GET /bare_metal_servers/{bare_metal_server_id}/console
This retrieves a WebSocket providing a console for the bare metal server. An `access_token` must first be created using the `console_access_token` API. The `serial` WebSocket provides a TTY based interface. The `vnc` WebSocket provides a VNC based graphical interface. For this request to succeed, the server must have a `status` of `stopped`, `starting`, or `running`.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.operateis.bare-metal-server.bare-metal-server.console
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.console.read
Request
Path Parameters
Query Parameters
access_token
A URL safe single-use token used to access the console WebSocket.
Response
101 - A WebSocket connection was established.
400 - The open console limit for bare metal servers was reached.
errors
array
The errors that occurred.
trace
string
The unique error identifier
401 - An invalid bare metal server console access token was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A bare metal server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - A console WebSocket cannot be retrieved in the server's current state.
errors
array
The errors that occurred.
trace
string
The unique error identifier
426 - The WebSocket protocol is required.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a console access token for a bare metal server
POST /bare_metal_servers/{bare_metal_server_id}/console_access_token
This request creates a new single-use console access token for a bare metal server. All console configuration is provided at token create time, and the token is subsequently used in the `access_token` query parameter for the WebSocket request. The access token is only valid for a short period of time, and a maximum of one token is valid for a given bare metal server at a time. For this request to succeed, the server must have a `status` of `stopped`, `starting`, or `running`.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.operateis.bare-metal-server.bare-metal-server.console
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.console.read
Request
Request Body
BareMetalServerConsoleAccessTokenPrototype
The bare metal server console access token prototype
console_type
Required *
string
The bare metal server console type for which this token may be used
Must be `serial` for bare metal servers with a `cpu.architecture` of `s390x`
force
boolean
Indicates whether to disconnect an existing serial console session as the serial console cannot be shared. This has no effect on VNC consoles.
Response
200 - The access token was created successfully.
access_token
string
A URL safe single-use token used to access the console WebSocket.
console_type
string
The bare metal server console type for which this token may be used
created_at
string
The date and time that the access token was created
expires_at
string
The date and time that the access token will expire
force
boolean
Indicates whether to disconnect an existing serial console session as the serial console cannot be shared. This has no effect on VNC consoles.
href
string
The URL to access this bare metal server console.
400 - An invalid bare metal server console access token prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The bare metal server console access token is not allowed to be created.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A bare metal server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - A console access token cannot be created in the server's current state.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List disks on a bare metal server
GET /bare_metal_servers/{bare_metal_server_id}/disks
This request lists disks on a bare metal server. A disk is a block device that is locally attached to the physical server. By default, the listed disks are sorted by their `created_at` property values, with the newest disk first.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.read
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.disk.read
Request
Response
200 - The disks were retrieved successfully.
disks
array
The disks for the bare metal server
404 - A bare metal server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a bare metal server disk
GET /bare_metal_servers/{bare_metal_server_id}/disks/{id}
This request retrieves a single disk specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.read
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.disk.read
Request
Response
200 - The disk was retrieved successfully.
allowed_use
object
The usage constraints to be matched against the requested bare metal server properties to determine compatibility.
Only present for disks which are referenced in a bare metal server's `boot_target` property. The value of this property will be inherited from the source image at creation.
created_at
string
The date and time that the disk was created
href
string
The URL for this bare metal server disk
id
string
The unique identifier for this bare metal server disk
interface_type
string
The disk attachment interface used:
- `fcp`: Fiber Channel Protocol
- `sata`: Serial Advanced Technology Attachment
- `nvme`: Non-Volatile Memory Express
The enumerated values for this property may expand in the future.
name
string
The name for this bare metal server disk. The name is unique across all disks on the bare metal server.
resource_type
string
The resource type
size
integer
The size of the disk in GB (gigabytes)
404 - A bare metal server disk with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a bare metal server disk
PATCH /bare_metal_servers/{bare_metal_server_id}/disks/{id}
This request updates the bare metal server disk with the information in a provided patch.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.operate
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.disk.update
Request
Request Body
The bare metal server disk patch
Response
200 - The bare metal server disk was updated successfully.
allowed_use
object
The usage constraints to be matched against the requested bare metal server properties to determine compatibility.
Only present for disks which are referenced in a bare metal server's `boot_target` property. The value of this property will be inherited from the source image at creation.
created_at
string
The date and time that the disk was created
href
string
The URL for this bare metal server disk
id
string
The unique identifier for this bare metal server disk
interface_type
string
The disk attachment interface used:
- `fcp`: Fiber Channel Protocol
- `sata`: Serial Advanced Technology Attachment
- `nvme`: Non-Volatile Memory Express
The enumerated values for this property may expand in the future.
name
string
The name for this bare metal server disk. The name is unique across all disks on the bare metal server.
resource_type
string
The resource type
size
integer
The size of the disk in GB (gigabytes)
400 - An invalid bare metal server disk patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The bare metal server disk is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A bare metal server disk with the specified identifier could not be found for the
specified bare metal server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The bare metal server disk patch conflicts with another disk for the
bare metal server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /bare_metal_servers/{bare_metal_server_id}/network_attachments
This request lists network attachments on a bare metal server. A bare metal server network attachment is an abstract representation of a network device and attaches a bare metal server to a single subnet. Each network interface on a bare metal server can attach to any subnet in the zone, including subnets that are already attached to the bare metal server.
The network attachments will be sorted by their `created_at` property values, with newest network attachments first. Network attachments with identical `created_at` property values will in turn be sorted by ascending `name` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.read
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.network-attachment.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The bare metal server network attachments were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
network_attachments
array
The network attachments for the bare metal server
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - A bare metal server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a network attachment on a bare metal server
POST /bare_metal_servers/{bare_metal_server_id}/network_attachments
This request creates a new bare metal server network attachment from a bare metal server network attachment prototype object. The prototype object is structured in the same way as a retrieved bare metal server network attachment, and contains the information necessary to create the new bare metal server network attachment.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.updateis.security-group.security-group.operateis.subnet.subnet.operateis.subnet.subnet.updateis.virtual-network-interface.virtual-network-interface.createis.virtual-network-interface.virtual-network-interface.manage-infrastructure-natis.virtual-network-interface.virtual-network-interface.manage-ip-spoofingis.virtual-network-interface.virtual-network-interface.manage-protocol-state-filtering-mode
Auditing
Calling this method generates the following auditing event.
is.virtual-network-interface.virtual-network-interface.createis.virtual-network-interface.virtual-network-interface.attachis.bare-metal-server.network-attachment.attachis.bare-metal-server.network-attachment.createis.subnet.reserved-ip.createis.subnet.reserved-ip.attachis.security-group.security-group.attachis.subnet.subnet.update
Request
Request Body
BareMetalServerNetworkAttachmentPrototype
The bare metal server network attachment prototype object
interface_type
Required *
string
The network attachment's interface type:
- `pci`: a physical PCI device which can only be created or deleted when the bare metal
server is stopped
- Has an `allowed_vlans` property which controls the VLANs that will be permitted to use the PCI attachment
- Cannot directly use an IEEE 802.1Q tag.
- Not supported on bare metal servers with a `cpu.architecture` of `s390x`
- `vlan`: a virtual device, used through a `pci` device that has the `vlan` in its
array of `allowed_vlans`.
- Must use an IEEE 802.1Q tag.
- Not supported on bare metal servers with a `cpu.architecture` of `s390x`
name
string
The name for this bare metal server network attachment. Names must be unique within the bare metal server the network attachment resides in. If unspecified, the name will be a hyphenated list of randomly-selected words.
virtual_network_interface
Required *
BareMetalServerNetworkAttachmentPrototypeVirtualNetworkInterface
A virtual network interface for the bare metal server network attachment. This can be specified using an existing virtual network interface, or a prototype object for a new virtual network interface.
If an existing virtual network interface is specified, it must not be the target of a flow log collector.
Response
201 - The bare metal server network attachment was created successfully.
created_at
string
The date and time that the bare metal server network attachment was created
href
string
The URL for this bare metal server network attachment
id
string
The unique identifier for this bare metal server network attachment
interface_type
string
The network attachment's interface type:
- `pci`: a physical PCI device which can only be created or deleted when the bare metal
server is stopped
- Has an `allowed_vlans` property which controls the VLANs that will be permitted to use the PCI attachment
- Cannot directly use an IEEE 802.1Q tag.
- `vlan`: a virtual device, used through a `pci` device that has the `vlan` in its
array of `allowed_vlans`.
- Must use an IEEE 802.1Q tag.
The enumerated values for this property may expand in the future.
lifecycle_state
object
The lifecycle state of the bare metal server network attachment
name
string
The name for this bare metal server network attachment. The name is unique across all network attachments for the bare metal server.
port_speed
integer
The port speed for this bare metal server network attachment in Mbps
primary_ip
object
The primary IP address of the virtual network interface for the bare metal server network attachment
resource_type
string
The resource type
subnet
object
The subnet of the virtual network interface for the bare metal server network attachment
type
string
The bare metal server network attachment type.
The enumerated values for this property may expand in the future.
virtual_network_interface
object
The virtual network interface for this bare metal server network attachment
400 - An invalid bare metal server network attachment prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A bare metal server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The bare metal server network attachment prototype object conflicts with
another network attachment for the bare metal server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
DELETE /bare_metal_servers/{bare_metal_server_id}/network_attachments/{id}
This request deletes a bare metal server network attachment. This operation cannot be reversed. Any floating IPs associated with the bare metal server network attachment are implicitly disassociated.
The bare metal server's primary network attachment cannot be deleted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.update
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.network-attachment.deleteis.virtual-network-interface.virtual-network-interface.detachis.virtual-network-interface.virtual-network-interface.deleteis.floating-ip.floating-ip.detachis.subnet.reserved-ip.detachis.subnet.reserved-ip.deleteis.subnet.subnet.updateis.security-group.security-group.detach
Request
Response
202 - The bare metal server network attachment deletion request was accepted.
403 - The bare metal server network attachment is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A bare metal server network attachment with the specified identifier could not be
found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a bare metal server network attachment
GET /bare_metal_servers/{bare_metal_server_id}/network_attachments/{id}
This request retrieves a single bare metal server network attachment specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.read
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.network-attachment.read
Request
Response
200 - The bare metal server network attachment was retrieved successfully.
created_at
string
The date and time that the bare metal server network attachment was created
href
string
The URL for this bare metal server network attachment
id
string
The unique identifier for this bare metal server network attachment
interface_type
string
The network attachment's interface type:
- `pci`: a physical PCI device which can only be created or deleted when the bare metal server is stopped
- Has an `allowed_vlans` property which controls the VLANs that will be permitted to use the PCI attachment
- Cannot directly use an IEEE 802.1Q tag.
- `vlan`: a virtual device, used through a `pci` device that has the `vlan` in its array of `allowed_vlans`.
- Must use an IEEE 802.1Q tag.
The enumerated values for this property may expand in the future.
lifecycle_state
object
The lifecycle state of the bare metal server network attachment
name
string
The name for this bare metal server network attachment. The name is unique across all network attachments for the bare metal server.
port_speed
integer
The port speed for this bare metal server network attachment in Mbps
primary_ip
object
The primary IP address of the virtual network interface for the bare metal server network attachment
resource_type
string
The resource type
subnet
object
The subnet of the virtual network interface for the bare metal server network attachment
type
string
The bare metal server network attachment type.
The enumerated values for this property may expand in the future.
virtual_network_interface
object
The virtual network interface for this bare metal server network attachment
404 - A bare metal server network attachment with the specified identifier could not be
found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a bare metal server network attachment
PATCH /bare_metal_servers/{bare_metal_server_id}/network_attachments/{id}
This request updates a bare metal server network attachment with the information provided in a bare metal server network attachment patch object. The bare metal server network attachment patch object is structured in the same way as a retrieved bare metal server network attachment and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.update
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.network-attachment.update
Request
Request Body
The bare metal server network attachment patch
Response
200 - The bare metal server network attachment was updated successfully.
created_at
string
The date and time that the bare metal server network attachment was created
href
string
The URL for this bare metal server network attachment
id
string
The unique identifier for this bare metal server network attachment
interface_type
string
The network attachment's interface type:
- `pci`: a physical PCI device which can only be created or deleted when the bare metal server is stopped
- Has an `allowed_vlans` property which controls the VLANs that will be permitted to use the PCI attachment
- Cannot directly use an IEEE 802.1Q tag.
- `vlan`: a virtual device, used through a `pci` device that has the `vlan` in its array of `allowed_vlans`.
- Must use an IEEE 802.1Q tag.
The enumerated values for this property may expand in the future.
lifecycle_state
object
The lifecycle state of the bare metal server network attachment
name
string
The name for this bare metal server network attachment. The name is unique across all network attachments for the bare metal server.
port_speed
integer
The port speed for this bare metal server network attachment in Mbps
primary_ip
object
The primary IP address of the virtual network interface for the bare metal server network attachment
resource_type
string
The resource type
subnet
object
The subnet of the virtual network interface for the bare metal server network attachment
type
string
The bare metal server network attachment type.
The enumerated values for this property may expand in the future.
virtual_network_interface
object
The virtual network interface for this bare metal server network attachment
400 - An invalid bare metal server network attachment patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A bare metal server network attachment with the specified identifier could not be
found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The bare metal server network attachment patch conflicts with another
network attachment for the bare metal server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List network interfaces on a bare metal server
GET /bare_metal_servers/{bare_metal_server_id}/network_interfaces
This request lists network interfaces on a bare metal server. A bare metal server network interface is an abstract representation of a network device and attaches a bare metal server to a single subnet. Each network interface on a bare metal server can attach to any subnet in the zone, including subnets that are already attached to the bare metal server.
If this bare metal server has network attachments, each returned network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.read
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.network-interface.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The bare metal server network interfaces were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
network_interfaces
array
The network interfaces for the bare metal server
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - A bare metal server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a network interface on a bare metal server
POST /bare_metal_servers/{bare_metal_server_id}/network_interfaces
This request creates a new bare metal server network interface from a bare metal server network interface prototype object. The prototype object is structured in the same way as a retrieved bare metal server network interface, and contains the information necessary to create the new bare metal server network interface. Any subnet in the bare metal server's VPC may be specified, even if it is already attached to another bare metal server network interface. Addresses on the bare metal server network interface must be within the specified subnet's CIDR blocks.
If this bare metal server has network attachments, each network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and new network interfaces are not allowed to be created.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.updateis.subnet.subnet.operateis.subnet.subnet.updateis.security-group.security-group.operateis.bare-metal-server.bare-metal-server.ip-spoofingis.bare-metal-server.bare-metal-server.infrastructure-nat
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.network-interface.createis.bare-metal-server.network-interface.attachis.subnet.reserved-ip.createis.subnet.reserved-ip.attachis.security-group.security-group.attachis.subnet.subnet.update
Request
Request Body
BareMetalServerNetworkInterfacePrototype
The bare metal server network interface prototype object
allow_ip_spoofing
boolean
Indicates whether source IP spoofing is allowed on this bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and source IP spoofing is managed on the attached virtual network interface.
enable_infrastructure_nat
boolean
If `true`:
- The VPC infrastructure performs any needed NAT operations.
- `floating_ips` must not have more than one floating IP.
If `false`:
- Packets are passed unchanged to/from the bare metal server network interface, allowing the workload to perform any needed NAT operations.
- `allow_ip_spoofing` must be `false`.
- `interface_type` must not be `hipersocket`.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and infrastructure NAT is managed on the attached virtual network interface.
interface_type
Required *
string
The interface type:
- `hipersocket`: a virtual device that provides high-speed TCP/IP connectivity within a `s390x` based system
- Not supported on bare metal servers with a `cpu.architecture` of `amd64`
- `pci`: a physical PCI device which can only be created or deleted when the bare metal server is stopped
- Has an `allowed_vlans` property which controls the VLANs that will be permitted to use the PCI interface
- Cannot directly use an IEEE 802.1Q tag.
- Not supported on bare metal servers with a `cpu.architecture` of `s390x`
- `vlan`: a virtual device, used through a `pci` device that has the `vlan` in its array of `allowed_vlans`.
- Must use an IEEE 802.1Q tag.
- Has its own security groups and does not inherit those of the PCI device through which traffic flows.
- Not supported on bare metal servers with a `cpu.architecture` of `s390x`
name
string
The name for this bare metal server network interface. The name must not be used by another network interface on the bare metal server. If unspecified, the name will be a hyphenated list of randomly-selected words.
primary_ip
object
The primary IP address to bind to the bare metal server network interface. This can be specified using an existing reserved IP, or a prototype object for a new reserved IP.
If an existing reserved IP or a prototype object with an address is specified, it must be available on the bare metal server network interface's subnet. Otherwise, an available address on the subnet will be automatically selected and reserved.
security_groups
array
The security groups to use for this bare metal server network interface. If unspecified, the VPC's default security group is used.
subnet
Required *
object
Identifies a subnet by a unique property.
Response
201 - The bare metal server network interface was created successfully.
allow_ip_spoofing
boolean
Indicates whether source IP spoofing is allowed on this bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and source IP spoofing is managed on the attached virtual network interface.
created_at
string
The date and time that the bare metal server network interface was created.
If this bare metal server has network attachments, this network interface was created as a read-only representation when its corresponding network attachment was created.
enable_infrastructure_nat
boolean
If `true`:
- The VPC infrastructure performs any needed NAT operations.
- `floating_ips` must not have more than one floating IP.
If `false`:
- Packets are passed unchanged to/from the bare metal server network interface, allowing the workload to perform any needed NAT operations.
- `allow_ip_spoofing` must be `false`.
- `interface_type` must not be `hipersocket`.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and infrastructure NAT is managed on the attached virtual network interface.
floating_ips
array
The floating IPs associated with this bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the floating IPs are associated with the attached virtual network interface.
href
string
The URL for this bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment.
id
string
The unique identifier for this bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the identifier is that of the corresponding network attachment.
interface_type
string
The interface type:
- `hipersocket`: a virtual device that provides high-speed TCP/IP connectivity within a `s390x` based system
- `pci`: a physical PCI device which can only be created or deleted when the bare metal server is stopped
- Has an `allowed_vlans` property which controls the VLANs that will be permitted to use the PCI interface
- Cannot directly use an IEEE 802.1Q tag.
- `vlan`: a virtual device, used through a `pci` device that has the `vlan` in its array of `allowed_vlans`.
- Must use an IEEE 802.1Q tag.
- Has its own security groups and does not inherit those of the PCI device through which traffic flows.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the interface type is that of the corresponding network attachment.
The enumerated values for this property may expand in the future.
mac_address
string
The MAC address of this bare metal server network interface. If the MAC address has not yet been selected, the value will be empty.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the MAC address is that of the attached virtual network interface.
name
string
The name for this bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the name matches its corresponding network attachment.
port_speed
integer
The bare metal server network interface port speed in Mbps.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the port speed is that of its corresponding network attachment.
primary_ip
object
The primary IP address of this bare metal server network interface.
resource_type
string
The resource type
security_groups
array
The security groups targeting this bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the security groups are associated with the attached virtual network interface.
status
string
The status of the bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the status is computed from them.
subnet
object
The associated subnet
type
string
The bare metal server network interface type.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the type is that of its corresponding network attachment.
400 - An invalid bare metal server network interface prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The bare metal server network interface is not allowed to be created.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A bare metal server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The bare metal server network interface prototype object conflicts with another
network interface for the bare metal server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a bare metal server network interface
DELETE /bare_metal_servers/{bare_metal_server_id}/network_interfaces/{id}
This request deletes a bare metal server network interface. This operation cannot be reversed. Any floating IPs associated with the bare metal server network interface are implicitly disassociated. The primary bare metal server network interface is not allowed to be deleted.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and is not allowed to be deleted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.update
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.network-interface.deleteis.bare-metal-server.network-interface.detachis.floating-ip.floating-ip.detachis.subnet.reserved-ip.detachis.security-group.security-group.detachis.subnet.reserved-ip.deleteis.subnet.subnet.update
Request
Response
204 - The bare metal server network interface was deleted successfully.
403 - The bare metal server network interface is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A bare metal server network interface with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a bare metal server network interface
GET /bare_metal_servers/{bare_metal_server_id}/network_interfaces/{id}
This request retrieves a single bare metal server network interface specified by the identifier in the URL.
If this bare metal server has network attachments, the retrieved network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.read
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.network-interface.read
Request
Response
200 - The bare metal server network interface was retrieved successfully.
allow_ip_spoofing
boolean
Indicates whether source IP spoofing is allowed on this bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and source IP spoofing is managed on the attached virtual network interface.
created_at
string
The date and time that the bare metal server network interface was created.
If this bare metal server has network attachments, this network interface was created as a read-only representation when its corresponding network attachment was created.
enable_infrastructure_nat
boolean
If `true`:
- The VPC infrastructure performs any needed NAT operations.
- `floating_ips` must not have more than one floating IP.
If `false`:
- Packets are passed unchanged to/from the bare metal server network interface, allowing the workload to perform any needed NAT operations.
- `allow_ip_spoofing` must be `false`.
- `interface_type` must not be `hipersocket`.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and infrastructure NAT is managed on the attached virtual network interface.
floating_ips
array
The floating IPs associated with this bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the floating IPs are associated with the attached virtual network interface.
href
string
The URL for this bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment.
id
string
The unique identifier for this bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the identifier is that of the corresponding network attachment.
interface_type
string
The interface type:
- `hipersocket`: a virtual device that provides high-speed TCP/IP connectivity within a `s390x` based system
- `pci`: a physical PCI device which can only be created or deleted when the bare metal server is stopped
- Has an `allowed_vlans` property which controls the VLANs that will be permitted to use the PCI interface
- Cannot directly use an IEEE 802.1Q tag.
- `vlan`: a virtual device, used through a `pci` device that has the `vlan` in its array of `allowed_vlans`.
- Must use an IEEE 802.1Q tag.
- Has its own security groups and does not inherit those of the PCI device through which traffic flows.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the interface type is that of the corresponding network attachment.
The enumerated values for this property may expand in the future.
mac_address
string
The MAC address of this bare metal server network interface. If the MAC address has not yet been selected, the value will be empty.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the MAC address is that of the attached virtual network interface.
name
string
The name for this bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the name matches its corresponding network attachment.
port_speed
integer
The bare metal server network interface port speed in Mbps.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the port speed is that of its corresponding network attachment.
primary_ip
object
The primary IP address of this bare metal server network interface.
resource_type
string
The resource type
security_groups
array
The security groups targeting this bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the security groups are associated with the attached virtual network interface.
status
string
The status of the bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the status is computed from them.
subnet
object
The associated subnet
type
string
The bare metal server network interface type.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the type is that of its corresponding network attachment.
404 - A bare metal server network interface with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a bare metal server network interface
PATCH /bare_metal_servers/{bare_metal_server_id}/network_interfaces/{id}
This request updates a bare metal server network interface with the information provided in a bare metal server network interface patch object. The bare metal server network interface patch object is structured in the same way as a retrieved bare metal server network interface and needs to contain only the information to be updated.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and is not allowed to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.updateis.bare-metal-server.bare-metal-server.ip-spoofingis.bare-metal-server.bare-metal-server.infrastructure-nat
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.network-interface.update
Request
Request Body
The bare metal server network interface patch
Response
200 - The bare metal server network interface was updated successfully.
allow_ip_spoofing
boolean
Indicates whether source IP spoofing is allowed on this bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and source IP spoofing is managed on the attached virtual network interface.
created_at
string
The date and time that the bare metal server network interface was created.
If this bare metal server has network attachments, this network interface was created as a read-only representation when its corresponding network attachment was created.
enable_infrastructure_nat
boolean
If `true`:
- The VPC infrastructure performs any needed NAT operations.
- `floating_ips` must not have more than one floating IP.
If `false`:
- Packets are passed unchanged to/from the bare metal server network interface, allowing the workload to perform any needed NAT operations.
- `allow_ip_spoofing` must be `false`.
- `interface_type` must not be `hipersocket`.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and infrastructure NAT is managed on the attached virtual network interface.
floating_ips
array
The floating IPs associated with this bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the floating IPs are associated with the attached virtual network interface.
href
string
The URL for this bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment.
id
string
The unique identifier for this bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the identifier is that of the corresponding network attachment.
interface_type
string
The interface type:
- `hipersocket`: a virtual device that provides high-speed TCP/IP connectivity within a `s390x` based system
- `pci`: a physical PCI device which can only be created or deleted when the bare metal server is stopped
- Has an `allowed_vlans` property which controls the VLANs that will be permitted to use the PCI interface
- Cannot directly use an IEEE 802.1Q tag.
- `vlan`: a virtual device, used through a `pci` device that has the `vlan` in its array of `allowed_vlans`.
- Must use an IEEE 802.1Q tag.
- Has its own security groups and does not inherit those of the PCI device through which traffic flows.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the interface type is that of the corresponding network attachment.
The enumerated values for this property may expand in the future.
mac_address
string
The MAC address of this bare metal server network interface. If the MAC address has not yet been selected, the value will be empty.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the MAC address is that of the attached virtual network interface.
name
string
The name for this bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the name matches its corresponding network attachment.
port_speed
integer
The bare metal server network interface port speed in Mbps.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the port speed is that of its corresponding network attachment.
primary_ip
object
The primary IP address of this bare metal server network interface.
resource_type
string
The resource type
security_groups
array
The security groups targeting this bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the security groups are associated with the attached virtual network interface.
status
string
The status of the bare metal server network interface.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the status is computed from them.
subnet
object
The associated subnet
type
string
The bare metal server network interface type.
If this bare metal server has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the type is that of its corresponding network attachment.
400 - An invalid bare metal server network interface patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The bare metal server network interface is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A bare metal server network interface with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The bare metal server network interface patch conflicts with another
network interface for the bare metal server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List floating IPs associated with a bare metal server network interface
GET /bare_metal_servers/{bare_metal_server_id}/network_interfaces/{network_interface_id}/floating_ips
This request lists floating IPs associated with a bare metal server network interface.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.readis.floating-ip.floating-ip.read
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.network-interface.floating-ip.read
Request
Response
200 - The associated floating IPs were retrieved successfully.
floating_ips
array
The floating IPs
404 - A bare metal server network interface with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Disassociate a floating IP from a bare metal server network interface
DELETE /bare_metal_servers/{bare_metal_server_id}/network_interfaces/{network_interface_id}/floating_ips/{id}
This request disassociates the specified floating IP from the specified bare metal server network interface
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.operateis.floating-ip.floating-ip.operate
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.network-interface.detachis.floating-ip.floating-ip.detach
Request
Response
204 - The floating IP was disassociated successfully.
400 - The specified floating IP could not be disassociated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The floating IP is not allowed to be disassociated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified floating IP address is not associated with the bare metal server network
interface with the specified identifier
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve associated floating IP
GET /bare_metal_servers/{bare_metal_server_id}/network_interfaces/{network_interface_id}/floating_ips/{id}
This request retrieves a specified floating IP if it is associated with the bare metal server network interface specified in the URL
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.readis.floating-ip.floating-ip.read
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.network-interface.floating-ip.read
Request
Response
200 - The associated floating IP was retrieved successfully.
address
string
The globally unique IP address
authorized_cidr
object
The public address range authorized CIDR this floating IP is allocated from.
created_at
string
The date and time that the floating IP was created
crn
string
The CRN for this floating IP
href
string
The URL for this floating IP
id
string
The unique identifier for this floating IP
name
string
The name for this floating IP. The name is unique across all floating IPs in the region.
profile
object
The profile for this floating IP.
resource_group
object
The resource group for this floating IP
resource_type
string
The resource type
status
string
The status of the floating IP.
The enumerated values for this property may expand in the future.
target
FloatingIPTarget
The target of this floating IP
zone
object
The zone this floating IP resides in
404 - The floating IP address is not associated with a bare metal server network interface
with the specified identifier
errors
array
The errors that occurred.
trace
string
The unique error identifier
PUT /bare_metal_servers/{bare_metal_server_id}/network_interfaces/{network_interface_id}/floating_ips/{id}
This request associates the specified floating IP with the specified bare metal server network interface. If `enable_infrastructure_nat` is `false`, this adds the IP to any existing associations. If `enable_infrastructure_nat` is `true`, this replaces any existing association.
The existing floating IP must:
- be in the same `zone` as the bare metal server
- not be allocated from an `authorized_cidr`
- not be required by another resource, such as a public gateway
A request body is not required, and if provided, is ignored.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.operateis.floating-ip.floating-ip.operate
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.network-interface.attachis.floating-ip.floating-ip.attach
Request
Response
201 - The floating IP was successfully associated with the bare metal server network
interface.
address
string
The globally unique IP address
authorized_cidr
object
The public address range authorized CIDR this floating IP is allocated from.
created_at
string
The date and time that the floating IP was created
crn
string
The CRN for this floating IP
href
string
The URL for this floating IP
id
string
The unique identifier for this floating IP
name
string
The name for this floating IP. The name is unique across all floating IPs in the region.
profile
object
The profile for this floating IP.
resource_group
object
The resource group for this floating IP
resource_type
string
The resource type
status
string
The status of the floating IP.
The enumerated values for this property may expand in the future.
target
FloatingIPTarget
The target of this floating IP
zone
object
The zone this floating IP resides in
400 - The specified floating IP could not be associated with the specified bare metal server
network interface.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The floating IP is not allowed to be associated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified bare metal server network interface or floating IP could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List the primary reserved IP for a bare metal server network interface
GET /bare_metal_servers/{bare_metal_server_id}/network_interfaces/{network_interface_id}/ips
This request lists the primary reserved IP for a bare metal server network interface.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.readis.subnet.subnet.read
Auditing
Calling this method generates the following auditing event.
is.subnet.reserved-ip.read
Request
Response
200 - The reserved IPs were retrieved successfully.
first
object
A link to the first page of resources
ips
array
A page of reserved IPs bound to the bare metal server network interface
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - A bare metal server network interface with the specified identifier could not be
found for the specified bare metal server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve the primary reserved IP
GET /bare_metal_servers/{bare_metal_server_id}/network_interfaces/{network_interface_id}/ips/{id}
This request retrieves the primary reserved IP for a bare metal server network interface.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.readis.subnet.subnet.read
Auditing
Calling this method generates the following auditing event.
is.subnet.reserved-ip.read
Request
Response
200 - The bound reserved IP was retrieved successfully.
address
object
The IP address.
If the address has not yet been selected, the value will be `0.0.0.0`.
This property may expand to support IPv6 addresses in the future.
auto_delete
boolean
Indicates whether this reserved IP member will be automatically deleted when either `target` is deleted, or the reserved IP is unbound.
created_at
string
The date and time that the reserved IP was created
href
string
The URL for this reserved IP
id
string
The unique identifier for this reserved IP
lifecycle_state
object
The lifecycle state of the reserved IP
name
string
The name for this reserved IP. The name is unique across all reserved IPs in a subnet.
owner
string
The owner of the reserved IP.
The enumerated values for this property may expand in the future.
resource_type
string
The resource type
target
ReservedIPTarget
The target this reserved IP is bound to.
If absent, this reserved IP is provider-owned or unbound.
The resources supported by this property may expand in the future.
404 - The reserved IP address with the specified identifier could not be found
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /bare_metal_servers/{bare_metal_server_id}/storage_access
This request retrieves the storage access secret for a bare metal server.
The storage access secret is required to connect to the volume.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.read
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.storage-access-secret.read
Request
Response
200 - The storage access secret was retrieved successfully.
created_at
string
The date and time that the `storage_access` secret was created.
encrypted_secret
string
The storage access secret, encrypted using `public_key` and returned as a base64-encoded string.
This property will only be present when the `status` of the `storage_access` secret is `active`.
public_key
object
The public SSH key used to encrypt the `storage_access` secret.
rotated_at
string
The date and time that the `storage_access` secret was last rotated.
status
string
The status of the storage access secret:
- `active`: The storage access secret is active and in use.
- `updating`: The storage access secret is being updated due to a rotation request.
The enumerated values for this property may expand in the future.
404 - A bare metal server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
POST /bare_metal_servers/{bare_metal_server_id}/storage_access/encrypted_secret/rotate
This request rotates the storage access secret for the bare metal server, generating a new encrypted secret that will be used for authenticating future volume connections.
The new secret will be encrypted using the specified public SSH key (if provided), or an existing key of type `rsa` associated with the bare metal server. The encrypted secret can be retrieved from the bare metal server's `storage_access` property.
This operation does not impact volumes that are already attached and connected to the bare metal server. Existing connections will continue to function with the previous secret. However, any new volume attachment connections established after the rotation must use the new secret to authenticate successfully.
- Storage access secret can be rotated at most once per hour.
- Storage access secret can only be rotated when the `status` of the storage access secret is `active`.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.updateis.bare-metal-server.bare-metal-server.manage-storage-access-secretis.key.key.operate
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.storage-access-secret.update
Request
Request Body
BareMetalServerRotateStorageAccessSecretPrototype
The storage access rotate secret prototype object
key
object
Identifies a key by a unique property.
Response
202 - The storage access secret was successfully rotated.
400 - An invalid key was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The storage access secret rotation is not allowed.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A bare metal server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The storage access secret rotation conflicts with the current state of the bare
metal server.
- A public SSH key of type `rsa` is required.
- Previous storage access secret rotation was within the last hour.
- The storage access secret can only be rotated when the `status` of the storage access secret is `active`.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List volumes attachments on a bare metal server
GET /bare_metal_servers/{bare_metal_server_id}/volume_attachments
This request lists volume attachments on a bare metal server. A volume attachment connects a volume to a bare metal server. Each bare metal server may have many volume attachments but each volume attachment connects exactly one bare metal server to exactly one volume.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.read
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.volume-attachment.read
Request
Response
200 - The volume attachments were retrieved successfully.
volume_attachments
array
The volume attachments for this bare metal server.
400 - An invalid request was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A bare metal server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a volume attachment on a bare metal server
POST /bare_metal_servers/{bare_metal_server_id}/volume_attachments
This request creates a new volume attachment from a volume attachment prototype object, connecting a volume to a bare metal server. For this request to succeed, the specified volume must not be busy. The prototype object is structured in the same way as a retrieved volume attachment, and contains the information necessary to create the new volume attachment.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.updateis.volume.volume.operateis.volume.volume.createis.snapshot.snapshot.operateis.volume.volume.allow-remote-account-snapshot-restoreis.volume.volume.manage-attachment-mode
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.volume-attachment.create
Request
Request Body
BareMetalServerVolumeAttachmentPrototype
The volume attachment prototype object
delete_volume_on_bare_metal_server_delete
boolean
Indicates whether deleting the bare metal server will also delete the attached volume.
This property must be `false` if the volume's `attachment_mode` is `multiple`.
name
string
The name for this volume attachment. The name must not be used by another volume attachment on the bare metal server. If unspecified, the name will be a hyphenated list of randomly-selected words.
volume
Required *
BareMetalServerVolumeAttachmentPrototypeVolume
An existing volume to attach to the bare metal server, or a prototype object for a new volume. The volume's profile must support the attachment protocol specified in `protocol`
Response
201 - The volume attachment was created successfully, attaching the specified volume to the
bare metal server.
bandwidth
integer
The maximum bandwidth (in megabits per second) for the volume when attached to this bare metal server.
created_at
string
The date and time that the volume attachment was created.
delete_volume_on_bare_metal_server_delete
boolean
Indicates whether deleting the bare metal server will also delete the attached volume.
This property must be `false` if the volume's `attachment_mode` is `multiple`.
device
BareMetalServerVolumeAttachmentDevice
The configuration for the volume as a device in the bare metal server operating system.
This property may be absent if the `status` of the volume attachment is not `available`.
href
string
The URL for this bare metal server volume attachment
id
string
The unique identifier for this bare metal volume attachment
name
string
The name for this volume attachment. The name is unique across all volume attachments on the instance or bare metal server.
status
string
The status of this volume attachment.
- `attaching`: volume attachment is being initialized and not yet usable
- `detaching`: volume attachment is being removed.
- `available`: volume attachment is usable, connection to the volume can be established from the server's operating system.
- `unusable`: volume attachment is unusable due to the underlying volume state
The enumerated values for this property may expand in the future.
status_reason
object
The reasons for the current `status` (if any).
type
string
The type of volume attachment.
The enumerated values for this property may expand in the future.
volume
object
The volume attached to the bare metal server.
This property will be absent if the volume has not yet been provisioned.
400 - An invalid volume attachment prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The volume attachment is not allowed to be created.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A bare metal server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The volume attachment prototype object conflicts with another volume attachment
on the bare metal server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a volume attachment
DELETE /bare_metal_servers/{bare_metal_server_id}/volume_attachments/{id}
This request deletes a volume attachment. This operation cannot be reversed, but a new volume attachment may subsequently be created for the volume. For this request to succeed, the volume must not be busy.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.operateis.volume.volume.operate
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.volume-attachment.delete
Request
Response
202 - The volume attachment deletion request was accepted.
400 - The specified volume attachment cannot be deleted because its volume is busy.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The volume attachment is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A volume attachment with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The volume attachment cannot be deleted due to a conflict with the current state of the
bare metal server or volume attachment.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a volume attachment
GET /bare_metal_servers/{bare_metal_server_id}/volume_attachments/{id}
This request retrieves a single volume attachment specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.read
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.volume-attachment.read
Request
Response
200 - The volume attachment was retrieved successfully.
bandwidth
integer
The maximum bandwidth (in megabits per second) for the volume when attached to this bare metal server.
created_at
string
The date and time that the volume attachment was created.
delete_volume_on_bare_metal_server_delete
boolean
Indicates whether deleting the bare metal server will also delete the attached volume.
This property must be `false` if the volume's `attachment_mode` is `multiple`.
device
BareMetalServerVolumeAttachmentDevice
The configuration for the volume as a device in the bare metal server operating system.
This property may be absent if the `status` of the volume attachment is not `available`.
href
string
The URL for this bare metal server volume attachment
id
string
The unique identifier for this bare metal volume attachment
name
string
The name for this volume attachment. The name is unique across all volume attachments on the instance or bare metal server.
status
string
The status of this volume attachment.
- `attaching`: volume attachment is being initialized and not yet usable
- `detaching`: volume attachment is being removed.
- `available`: volume attachment is usable, connection to the volume can be established from the server's operating system.
- `unusable`: volume attachment is unusable due to the underlying volume state
The enumerated values for this property may expand in the future.
status_reason
object
The reasons for the current `status` (if any).
type
string
The type of volume attachment.
The enumerated values for this property may expand in the future.
volume
object
The volume attached to the bare metal server.
This property will be absent if the volume has not yet been provisioned.
404 - A volume attachment with the specified identifier could not be found for the specified
bare metal server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a volume attachment
PATCH /bare_metal_servers/{bare_metal_server_id}/volume_attachments/{id}
This request updates a volume attachment with the information provided in a volume attachment patch object. The volume attachment patch object is structured in the same way as a retrieved volume attachment and needs to contain only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.updateis.volume.volume.manage-deletion-policy
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.volume-attachment.update
Request
Request Body
The volume attachment patch
Response
200 - The volume attachment was updated successfully.
bandwidth
integer
The maximum bandwidth (in megabits per second) for the volume when attached to this bare metal server.
created_at
string
The date and time that the volume attachment was created.
delete_volume_on_bare_metal_server_delete
boolean
Indicates whether deleting the bare metal server will also delete the attached volume.
This property must be `false` if the volume's `attachment_mode` is `multiple`.
device
BareMetalServerVolumeAttachmentDevice
The configuration for the volume as a device in the bare metal server operating system.
This property may be absent if the `status` of the volume attachment is not `available`.
href
string
The URL for this bare metal server volume attachment
id
string
The unique identifier for this bare metal volume attachment
name
string
The name for this volume attachment. The name is unique across all volume attachments on the instance or bare metal server.
status
string
The status of this volume attachment.
- `attaching`: volume attachment is being initialized and not yet usable
- `detaching`: volume attachment is being removed.
- `available`: volume attachment is usable, connection to the volume can be established from the server's operating system.
- `unusable`: volume attachment is unusable due to the underlying volume state
The enumerated values for this property may expand in the future.
status_reason
object
The reasons for the current `status` (if any).
type
string
The type of volume attachment.
The enumerated values for this property may expand in the future.
volume
object
The volume attached to the bare metal server.
This property will be absent if the volume has not yet been provisioned.
400 - An invalid volume attachment patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The volume attachment is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A volume attachment with the specified identifier could not be found for the specified
bare metal server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The volume attachment patch conflicts with another volume attachment
on the bare metal server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a bare metal server
DELETE /bare_metal_servers/{id}
This request deletes a bare metal server. This operation cannot be reversed. Any floating IPs associated with the bare metal server network interfaces are implicitly disassociated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.deleteis.volume.volume.delete
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.bare-metal-server.deleteis.bare-metal-server.network-interface.deleteis.bare-metal-server.network-interface.detachis.bare-metal-server.network-attachment.deleteis.bare-metal-server.network-attachment.detachis.virtual-network-interface.virtual-network-interface.detachis.virtual-network-interface.virtual-network-interface.deleteis.floating-ip.floating-ip.detachis.security-group.security-group.detachis.subnet.reserved-ip.detachis.subnet.reserved-ip.deleteis.subnet.subnet.update- ``
Request
Response
202 - The bare metal server deletion request was accepted.
403 - The bare metal server is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A bare metal server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a bare metal server
GET /bare_metal_servers/{id}
This request retrieves a single bare metal server specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.read
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.bare-metal-server.read
Request
Response
200 - The bare metal server was retrieved successfully.
bandwidth
integer
The total bandwidth (in megabits per second) shared across the bare metal server network attachments or bare metal server network interfaces
boot_target
BareMetalServerBootTarget
The resource from which this bare metal server is booted.
The resources supported by this property may expand in the future.
cpu
BareMetalServerCPU
The bare metal server CPU configuration
created_at
string
The date and time that the bare metal server was created
crn
string
The CRN for this bare metal server
disks
array
The disks for this bare metal server, including any disks that are associated with the `boot_target`.
enable_secure_boot
boolean
Indicates whether secure boot is enabled. If enabled, the image must support secure boot or the server will fail to boot.
firmware
BareMetalServerFirmware
Firmware information for the bare metal server
health_reasons
array
The reasons for the current server `health_state` (if any):
- `reservation_capacity_unavailable`: The reservation affinity pool has no available capacity.
- `reservation_deleted`: The reservation affinity pool has a deleted reservation.
- `reservation_expired`: The reservation affinity pool has an expired reservation.
- `reservation_failed`: The reservation affinity pool has a failed reservation.
See health status reasons for details. The enumerated values for this property may expand in the future.
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this bare metal server
id
string
The unique identifier for this bare metal server
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the bare metal server.
memory
integer
The amount of memory, truncated to whole gibibytes
metadata_service
BareMetalServerMetadataService
The metadata service configuration for the bare metal server
name
string
The name for this bare metal server. The name is unique across all bare metal servers in the region.
network_attachments
array
The network attachments for this bare metal server, including the primary network attachment.
network_interfaces
array
The network interfaces for this bare metal server, including the primary network interface.
If this bare metal server has network attachments, each network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface.
nvme_qualified_name
object
An NVMe Qualified Name (NQN). NQNs are unique identifiers used in NVMe over Fabrics (NVMe-oF) to identify NVMe subsystems and hosts.
primary_network_attachment
object
The primary network attachment for this bare metal server.
primary_network_interface
object
The primary network interface for this bare metal server.
If this bare metal server has network attachments, this primary network interface is a read-only representation of the primary network attachment and its attached virtual network interface.
profile
object
The profile for this bare metal server
reservation
object
The reservation used by this bare metal server. If absent, no reservation is in use.
reservation_affinity
BareMetalServerReservationAffinity
resource_group
object
The resource group for this bare metal server
resource_type
string
The resource type
status
string
The status of this bare metal server:
- `deleting`: server is undergoing deletion
- `failed`: server is failed and not usable (see `status_reasons`)
- `maintenance`: server is undergoing maintenance (not usable)
- `pending`: server is being provisioned and not yet usable
- `reinitializing`: server is reinitializing and not yet usable
- `restarting`: server is restarting and not yet usable
- `running`: server is powered on
- `starting`: server is starting and not yet usable
- `stopped`: server is powered off
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
storage_access
object
The storage access secret required to connect to remote storage.
This property will be present if an SSH Key of type `rsa` was provided during server initialization, reinitialization, or `storage_access` secret rotation.
trusted_platform_module
BareMetalServerTrustedPlatformModule
volume_attachments
array
The volume attachments for this bare metal server.
This array will be empty if no volumes are attached to the bare metal server.
vpc
object
The VPC this bare metal server resides in
zone
object
The zone this bare metal server resides in
404 - A bare metal server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
PATCH /bare_metal_servers/{id}
This request updates a bare metal server with the information in a provided patch. The bare metal server patch object is structured in the same way as a retrieved bare metal server and contains only the information to be updated.
For this request to succeed, the properties in the request must adhere to the `allowed_use` property of the disk referenced in the server's `boot_target`.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.updateis.reservation.reservation.operate
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.bare-metal-server.updateis.bare-metal-server.bare-metal-server.detachis.reservation.reservation.detachis.bare-metal-server.bare-metal-server.attachis.reservation.reservation.attach
Request
Request Body
The bare metal server patch
Response
200 - The bare metal server was updated successfully.
bandwidth
integer
The total bandwidth (in megabits per second) shared across the bare metal server network attachments or bare metal server network interfaces
boot_target
BareMetalServerBootTarget
The resource from which this bare metal server is booted.
The resources supported by this property may expand in the future.
cpu
BareMetalServerCPU
The bare metal server CPU configuration
created_at
string
The date and time that the bare metal server was created
crn
string
The CRN for this bare metal server
disks
array
The disks for this bare metal server, including any disks that are associated with the `boot_target`.
enable_secure_boot
boolean
Indicates whether secure boot is enabled. If enabled, the image must support secure boot or the server will fail to boot.
firmware
BareMetalServerFirmware
Firmware information for the bare metal server
health_reasons
array
The reasons for the current server `health_state` (if any):
- `reservation_capacity_unavailable`: The reservation affinity pool has no available capacity.
- `reservation_deleted`: The reservation affinity pool has a deleted reservation.
- `reservation_expired`: The reservation affinity pool has an expired reservation.
- `reservation_failed`: The reservation affinity pool has a failed reservation.
See health status reasons for details. The enumerated values for this property may expand in the future.
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this bare metal server
id
string
The unique identifier for this bare metal server
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the bare metal server.
memory
integer
The amount of memory, truncated to whole gibibytes
metadata_service
BareMetalServerMetadataService
The metadata service configuration for the bare metal server
name
string
The name for this bare metal server. The name is unique across all bare metal servers in the region.
network_attachments
array
The network attachments for this bare metal server, including the primary network attachment.
network_interfaces
array
The network interfaces for this bare metal server, including the primary network interface.
If this bare metal server has network attachments, each network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface.
nvme_qualified_name
object
An NVMe Qualified Name (NQN). NQNs are unique identifiers used in NVMe over Fabrics (NVMe-oF) to identify NVMe subsystems and hosts.
primary_network_attachment
object
The primary network attachment for this bare metal server.
primary_network_interface
object
The primary network interface for this bare metal server.
If this bare metal server has network attachments, this primary network interface is a read-only representation of the primary network attachment and its attached virtual network interface.
profile
object
The profile for this bare metal server
reservation
object
The reservation used by this bare metal server. If absent, no reservation is in use.
reservation_affinity
BareMetalServerReservationAffinity
resource_group
object
The resource group for this bare metal server
resource_type
string
The resource type
status
string
The status of this bare metal server:
- `deleting`: server is undergoing deletion
- `failed`: server is failed and not usable (see `status_reasons`)
- `maintenance`: server is undergoing maintenance (not usable)
- `pending`: server is being provisioned and not yet usable
- `reinitializing`: server is reinitializing and not yet usable
- `restarting`: server is restarting and not yet usable
- `running`: server is powered on
- `starting`: server is starting and not yet usable
- `stopped`: server is powered off
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
storage_access
object
The storage access secret required to connect to remote storage.
This property will be present if an SSH Key of type `rsa` was provided during server initialization, reinitialization, or `storage_access` secret rotation.
trusted_platform_module
BareMetalServerTrustedPlatformModule
volume_attachments
array
The volume attachments for this bare metal server.
This array will be empty if no volumes are attached to the bare metal server.
vpc
object
The VPC this bare metal server resides in
zone
object
The zone this bare metal server resides in
400 - An invalid bare metal server patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The bare metal server is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A bare metal server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The bare metal server patch conflicts with another bare metal server in the region,
or the provided bare metal server patch object specified one or more of:
- A property that can only be changed while the bare metal server `status` is `stopped`
- A bare metal server profile that does not support the bare metal server configuration
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update firmware for a bare metal server
POST /bare_metal_servers/{id}/firmware/update
This request updates a bare metal server to the latest available firmware. The server must be stopped.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server-firmware.updateis.bare-metal-server.bare-metal-server.operate- ``
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.bare-metal-server-firmware.updateis.bare-metal-server.bare-metal-server.start
Request
Request Body
BareMetalServerFirmwareUpdateOptions
Parameters to control firmware update
auto_start
boolean
Indicates whether to automatically start the bare metal server after the firmware update is successfully completed.
Response
204 - The firmware update action will run immediately.
404 - A bare metal server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The bare metal server must be stopped to issue a firmware update.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve initialization configuration for a bare metal server
GET /bare_metal_servers/{id}/initialization
This request retrieves configuration used to initialize the bare metal server, such as the image used, SSH keys, and any configured usernames and passwords. These can subsequently be changed on the server and therefore may not be current.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.operate
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.initialization.read
Request
Response
200 - The initialization configuration was retrieved successfully.
default_trusted_profile
object
The default trusted profile configuration specified at bare metal server initialization. If absent, no default trusted profile was specified.
image
object
The image the bare metal server was provisioned from
keys
array
The public SSH keys used at initialization.
user_accounts
array
The user accounts that are created at initialization. There can be multiple account types distinguished by the `resource_type` property.
404 - A bare metal server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
PUT /bare_metal_servers/{id}/initialization
This request reinitializes a bare metal server with the specified image and SSH keys. The server must be stopped. Upon successful reinitialization, the bare metal server will be started automatically.
For this request to succeed, the properties of the server which would result from the reinitialization must adhere to the specified image's `allowed_use` property.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
iam-identity.profile.getiam-identity.profile.updateiam-identity.profile.linkToResourceis.bare-metal-server.bare-metal-server.updateis.key.key.operateis.image.image.operate
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.initialization.update
Request
Request Body
BareMetalServerInitializationReplacePrototype
The image and keys with which to reinitialize the bare metal server
default_trusted_profile
object
The default trusted profile to be used when initializing the bare metal server.
If unspecified, no default trusted profile will be made available.
auto_link
boolean
If set to `true`, the system will create a link to the specified `target` trusted profile during server creation. Regardless of whether a link is created by the system or manually using the IAM Identity service, it will be automatically deleted when the server is deleted.
target
Required *
object
Identifies a trusted profile by a unique property.
keys
Required *
array
The public SSH keys to install on the bare metal server. Keys will be made available to the bare metal server as cloud-init vendor data. For cloud-init enabled images, these keys will also be added as SSH authorized keys for the default user.
For Windows images, at least one SSH key of type `rsa` must be specified. One of the provided keys is selected to encrypt the administrator password. SSH keys are optional for other images; however, if no keys are specified, the bare metal server will be inaccessible unless the selected image provides an alternative access mechanism.
To allow for remote block storage attachment, at least one key of type `rsa` must be specified. One of the provided keys is selected to encrypt the `storage_access` secret. If no keys are specified, the bare metal server will be unable to connect to remote block storage until either:
- the server is reinitialized with at least one key of type `rsa`
- the `storage_access` secret is rotated with a key of type `rsa`
user_data
string
The user data to make available when setting up the bare metal server.
Response
200 - The bare metal server was reinitialized.
default_trusted_profile
object
The default trusted profile configuration specified at bare metal server initialization. If absent, no default trusted profile was specified.
image
object
The image the bare metal server was provisioned from
keys
array
The public SSH keys used at initialization.
user_accounts
array
The user accounts that are created at initialization. There can be multiple account types distinguished by the `resource_type` property.
400 - An invalid request body was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A bare metal server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The bare metal server cannot be reinitialized in its current state, or one or more
of the following:
- The bare metal server is not stopped
errors
array
The errors that occurred.
trace
string
The unique error identifier
Restart a bare metal server
POST /bare_metal_servers/{id}/restart
This request immediately restarts a bare metal server. For this request to succeed, the server must have a `status` of `running`.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.operate
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.bare-metal-server.restart
Request
Response
204 - The restart action will run immediately.
400 - The restart action could not be run.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The action is not allowed to be created.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A bare metal server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The bare metal server cannot be restarted in its current state.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Start a bare metal server
POST /bare_metal_servers/{id}/start
This request starts a bare metal server. It will run immediately provided the server is stopped.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.operate
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.bare-metal-server.start
Request
Response
204 - The start action will run immediately.
400 - The start action could not be run.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The action is not allowed to be created.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A bare metal server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The bare metal server must be stopped to issue a start action.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Stop a bare metal server
POST /bare_metal_servers/{id}/stop
This request stops a bare metal server. It will run immediately provided the server is running. Note: A soft stop may not complete as it relies on the operating system to perform the operation.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.bare-metal-server.bare-metal-server.operate
Auditing
Calling this method generates the following auditing event.
is.bare-metal-server.bare-metal-server.stop
Request
Request Body
BareMetalServerStopOptions
Parameters to control the type of stop operation
type
Required *
string
The type of stop operation:
- `soft`: signal running operating system to quiesce and shutdown cleanly
- `hard`: immediately stop the server
Response
204 - The stop action will be run immediately.
400 - The stop action could not be run.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The action is not allowed to be created.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A bare metal server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The bare metal server must not be stopped to issue a stop action.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List cluster network profiles
GET /cluster_network/profiles
This request lists cluster network profiles available in the region. A cluster network profile specifies the performance characteristics and capabilities for a cluster network.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The cluster network profiles were retrieved successfully
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
profiles
array
A page of cluster network profiles
total_count
integer
The total number of resources across all pages
Retrieve a cluster network profile
GET /cluster_network/profiles/{name}
This request retrieves a single cluster network profile specified by the name in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
Request
Path Parameters
name
Required *
string
The cluster network profile name
Query Parameters
Response
200 - The cluster network profile was retrieved successfully
family
object
The product family this cluster network profile belongs to.
The enumerated values for this property may expand in the future.
href
string
The URL for this cluster network profile
name
string
The globally unique name for this cluster network profile
resource_type
string
The resource type
supported_instance_profiles
ClusterNetworkProfileSupportedInstanceProfiles
The instance profiles that support this cluster network profile.
zones
ClusterNetworkProfileZones
Zones in this region that support this cluster network profile.
404 - A cluster network profile with the specified name could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List cluster networks
GET /cluster_networks
This request lists cluster networks in the region. A cluster network is a grouping of resources in a separate networking space for high performance computing and networking.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.cluster-network.cluster-network.listis.cluster-network.cluster-network.read
Auditing
Calling this method generates the following auditing event.
is.cluster-network.cluster-network.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
name
string
Filters the collection to resources with a `name` property matching the exact specified name.
sort
string
Sorts the returned collection by the specified property name in ascending order. A `-` may be prepended to the name to sort in descending order. For example, the value `-created_at` sorts the collection by the `created_at` property in descending order, and the value `name` sorts it by the `name` property in ascending order.
vpc.id
Filters the collection to cluster networks with a `vpc.id` property matching the specified id.
vpc.crn
string
Filters the collection to cluster networks with a `vpc.crn` property matching the specified CRN.
vpc.name
string
Filters the collection to cluster networks with a `vpc.name` property matching the specified name.
Response
200 - The clusters were retrieved successfully.
cluster_networks
array
A page of cluster networks
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
Create a cluster network
POST /cluster_networks
This request creates a new cluster network from a cluster network prototype object. The prototype object is structured in the same way as a retrieved cluster network, and contains the information necessary to create the new cluster network.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.cluster-network.cluster-network.createis.vpc.vpc.operate
Auditing
Calling this method generates the following auditing event.
is.cluster-network.cluster-network.create
Request
Request Body
ClusterNetworkPrototype
The cluster network prototype object
name
string
The name for this cluster network. The name must not be used by another cluster network in the region. Names starting with `ibm-` are reserved for provider-owned resources, and are not allowed. If unspecified, the name will be a hyphenated list of randomly-selected words.
profile
Required *
object
Identifies an cluster network profile by a unique property.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
subnet_prefixes
array
vpc
Required *
object
Identifies a VPC by a unique property.
zone
Required *
object
Identifies a zone by a unique property.
Response
201 - The cluster network was created successfully.
created_at
string
The date and time that the cluster network was created.
crn
string
The CRN for this cluster network
href
string
The URL for this cluster network
id
string
The unique identifier for this cluster network
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the cluster network
name
string
The name for this cluster network. The name must not be used by another cluster network in the region.
profile
object
The profile for this cluster network
resource_group
object
The resource group for this cluster network
resource_type
string
The resource type
subnet_prefixes
array
The IP address ranges available for subnets for this cluster network.
vpc
object
The VPC this cluster network resides in
zone
object
The zone this cluster network resides in
400 - An invalid cluster network prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The cluster network prototype object conflicts with another cluster network
in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /cluster_networks/{cluster_network_id}/interfaces
This request lists cluster network interfaces in the region. A cluster network interface is a logical abstraction of a cluster network interface in a subnet, and may be attached to a target resource.
The cluster network interfaces will be sorted by their `created_at` property values, with newest cluster network interfaces first. Cluster network interfaces with identical `created_at` property values will in turn be sorted by ascending `name` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.cluster-network.interface.list
Auditing
Calling this method generates the following auditing event.
is.cluster-network.interface.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
name
string
Filters the collection to resources with a `name` property matching the exact specified name.
sort
string
Sorts the returned collection by the specified property name in ascending order. A `-` may be prepended to the name to sort in descending order. For example, the value `-created_at` sorts the collection by the `created_at` property in descending order, and the value `name` sorts it by the `name` property in ascending order.
Response
200 - The cluster network interfaces were retrieved successfully.
first
object
A link to the first page of resources
interfaces
array
A page of cluster network interfaces
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - A cluster network with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a cluster network interface
POST /cluster_networks/{cluster_network_id}/interfaces
This request creates a new cluster network interface from a cluster network interface prototype object. The prototype object is structured in the same way as a retrieved cluster network interface, and contains the information necessary to create the new cluster network interface.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.cluster-network.interface.createis.cluster-network.subnet.operateis.cluster-network.subnet.update
Auditing
Calling this method generates the following auditing event.
is.cluster-network.interface.attachis.cluster-network.interface.createis.cluster-network.subnet-reserved-ip.attachis.cluster-network.subnet-reserved-ip.createis.cluster-network.subnet.update
Request
Request Body
ClusterNetworkInterfacePrototype
The cluster network interface prototype object
name
string
The name for this cluster network interface. The name must not be used by another interface in the cluster network. Names beginning with `ibm-` are reserved for provider-owned resources, and are not allowed. If unspecified, the name will be a hyphenated list of randomly-selected words.
primary_ip
object
The primary IP address to bind to the cluster network interface. May be either a cluster network subnet reserved IP identity, or a cluster network subnet reserved IP prototype object which will be used to create a new cluster network subnet reserved IP.
If a cluster network subnet reserved IP identity is provided, the specified cluster network subnet reserved IP must be unbound.
If a cluster network subnet reserved IP prototype object with an address is provided, the address must be available on the cluster network interface's cluster network subnet. If no address is specified, an available address on the cluster network subnet will be automatically selected and reserved.
subnet
ClusterNetworkInterfaceSubnetPrototype
Identifies a cluster network subnet by a unique property.
Response
201 - The cluster network interface was created successfully.
allow_ip_spoofing
boolean
Indicates whether source IP spoofing is allowed on this cluster network interface. If `false`, source IP spoofing is prevented on this cluster network interface. If `true`, source IP spoofing is allowed on this cluster network interface.
auto_delete
boolean
Indicates whether this cluster network interface will be automatically deleted when `target` is deleted
created_at
string
The date and time that the cluster network interface was created
enable_infrastructure_nat
boolean
If `true`:
- The VPC infrastructure performs any needed NAT operations.
- `floating_ips` must not have more than one floating IP.
If `false`:
- Packets are passed unchanged to/from the virtual network interface, allowing the workload to perform any needed NAT operations.
href
string
The URL for this cluster network interface
id
string
The unique identifier for this cluster network interface
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the cluster network interface
mac_address
string
The MAC address of the cluster network interface. May be absent if `lifecycle_state` is `pending`.
name
string
The name for this cluster network interface. The name is unique across all interfaces in the cluster network.
primary_ip
object
The cluster network subnet reserved IP for this cluster network interface.
resource_type
string
The resource type
subnet
ClusterNetworkSubnetReference
target
ClusterNetworkInterfaceTarget
The target of this cluster network interface.
If absent, this cluster network interface is not attached to a target.
The resources supported by this property may expand in the future.
vpc
object
The VPC this cluster network interface resides in.
zone
object
The zone this cluster network interface resides in.
400 - An invalid cluster network interface prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The cluster network interface prototype object conflicts with another interface
in the cluster network or the specified cluster network subnet does not have any free addresses.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a cluster network interface
DELETE /cluster_networks/{cluster_network_id}/interfaces/{id}
This request deletes a cluster network interface. This operation cannot be reversed. For this request to succeed, the cluster network interface must not be required by another resource, such as a cluster network attachment for a virtual server instance.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.cluster-network.interface.delete
Auditing
Calling this method generates the following auditing event.
is.cluster-network.interface.deleteis.cluster-network.interface.detachis.cluster-network.subnet.updateis.cluster-network.subnet-reserved-ip.deleteis.cluster-network.subnet-reserved-ip.detach
Request
Path Parameters
Query Parameters
Response
202 - The cluster network interface deletion request was accepted.
allow_ip_spoofing
boolean
Indicates whether source IP spoofing is allowed on this cluster network interface. If `false`, source IP spoofing is prevented on this cluster network interface. If `true`, source IP spoofing is allowed on this cluster network interface.
auto_delete
boolean
Indicates whether this cluster network interface will be automatically deleted when `target` is deleted
created_at
string
The date and time that the cluster network interface was created
enable_infrastructure_nat
boolean
If `true`:
- The VPC infrastructure performs any needed NAT operations.
- `floating_ips` must not have more than one floating IP.
If `false`:
- Packets are passed unchanged to/from the virtual network interface, allowing the workload to perform any needed NAT operations.
href
string
The URL for this cluster network interface
id
string
The unique identifier for this cluster network interface
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the cluster network interface
mac_address
string
The MAC address of the cluster network interface. May be absent if `lifecycle_state` is `pending`.
name
string
The name for this cluster network interface. The name is unique across all interfaces in the cluster network.
primary_ip
object
The cluster network subnet reserved IP for this cluster network interface.
resource_type
string
The resource type
subnet
ClusterNetworkSubnetReference
target
ClusterNetworkInterfaceTarget
The target of this cluster network interface.
If absent, this cluster network interface is not attached to a target.
The resources supported by this property may expand in the future.
vpc
object
The VPC this cluster network interface resides in.
zone
object
The zone this cluster network interface resides in.
404 - A cluster network interface with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The cluster network interface is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the cluster
network interface.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a cluster network interface
GET /cluster_networks/{cluster_network_id}/interfaces/{id}
This request retrieves a single cluster network interface specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.cluster-network.interface.read
Auditing
Calling this method generates the following auditing event.
is.cluster-network.interface.read
Request
Response
200 - The cluster network interface was retrieved successfully.
allow_ip_spoofing
boolean
Indicates whether source IP spoofing is allowed on this cluster network interface. If `false`, source IP spoofing is prevented on this cluster network interface. If `true`, source IP spoofing is allowed on this cluster network interface.
auto_delete
boolean
Indicates whether this cluster network interface will be automatically deleted when `target` is deleted
created_at
string
The date and time that the cluster network interface was created
enable_infrastructure_nat
boolean
If `true`:
- The VPC infrastructure performs any needed NAT operations.
- `floating_ips` must not have more than one floating IP.
If `false`:
- Packets are passed unchanged to/from the virtual network interface, allowing the workload to perform any needed NAT operations.
href
string
The URL for this cluster network interface
id
string
The unique identifier for this cluster network interface
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the cluster network interface
mac_address
string
The MAC address of the cluster network interface. May be absent if `lifecycle_state` is `pending`.
name
string
The name for this cluster network interface. The name is unique across all interfaces in the cluster network.
primary_ip
object
The cluster network subnet reserved IP for this cluster network interface.
resource_type
string
The resource type
subnet
ClusterNetworkSubnetReference
target
ClusterNetworkInterfaceTarget
The target of this cluster network interface.
If absent, this cluster network interface is not attached to a target.
The resources supported by this property may expand in the future.
vpc
object
The VPC this cluster network interface resides in.
zone
object
The zone this cluster network interface resides in.
404 - A cluster network interface with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a cluster network interface
PATCH /cluster_networks/{cluster_network_id}/interfaces/{id}
This request updates a cluster network interface with the information provided in a cluster network interface patch object. The patch object is structured in the same way as a retrieved cluster network interface and needs to contain only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.cluster-network.interface.update
Auditing
Calling this method generates the following auditing event.
is.cluster-network.interface.update
Request
Request Body
The cluster network interface patch
Path Parameters
Query Parameters
Response
200 - The cluster network interface was updated successfully.
allow_ip_spoofing
boolean
Indicates whether source IP spoofing is allowed on this cluster network interface. If `false`, source IP spoofing is prevented on this cluster network interface. If `true`, source IP spoofing is allowed on this cluster network interface.
auto_delete
boolean
Indicates whether this cluster network interface will be automatically deleted when `target` is deleted
created_at
string
The date and time that the cluster network interface was created
enable_infrastructure_nat
boolean
If `true`:
- The VPC infrastructure performs any needed NAT operations.
- `floating_ips` must not have more than one floating IP.
If `false`:
- Packets are passed unchanged to/from the virtual network interface, allowing the workload to perform any needed NAT operations.
href
string
The URL for this cluster network interface
id
string
The unique identifier for this cluster network interface
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the cluster network interface
mac_address
string
The MAC address of the cluster network interface. May be absent if `lifecycle_state` is `pending`.
name
string
The name for this cluster network interface. The name is unique across all interfaces in the cluster network.
primary_ip
object
The cluster network subnet reserved IP for this cluster network interface.
resource_type
string
The resource type
subnet
ClusterNetworkSubnetReference
target
ClusterNetworkInterfaceTarget
The target of this cluster network interface.
If absent, this cluster network interface is not attached to a target.
The resources supported by this property may expand in the future.
vpc
object
The VPC this cluster network interface resides in.
zone
object
The zone this cluster network interface resides in.
400 - An invalid cluster network interface patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A cluster network interface with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The cluster network interface patch conflicts with another interface in
the cluster network.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the cluster
network interface.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List cluster network subnets
GET /cluster_networks/{cluster_network_id}/subnets
This request lists cluster network subnets in the cluster network. A cluster network subnet provides network routing between other cluster network subnets within a cluster network.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.cluster-network.subnet.list
Auditing
Calling this method generates the following auditing event.
is.cluster-network.subnet.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
name
string
Filters the collection to resources with a `name` property matching the exact specified name.
sort
string
Sorts the returned collection by the specified property name in ascending order. A `-` may be prepended to the name to sort in descending order. For example, the value `-created_at` sorts the collection by the `created_at` property in descending order, and the value `name` sorts it by the `name` property in ascending order.
Response
200 - The cluster network subnets were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
subnets
array
A page of subnets for the cluster network
total_count
integer
The total number of resources across all pages
404 - A cluster network with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a cluster network subnet
POST /cluster_networks/{cluster_network_id}/subnets
This request creates a new cluster network subnet from a cluster network subnet prototype object. The prototype object is structured in the same way as a retrieved cluster network subnet, and contains the information necessary to create the new cluster network subnet.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.cluster-network.subnet.create
Auditing
Calling this method generates the following auditing event.
is.cluster-network.cluster-network.updateis.cluster-network.subnet.create
Request
Request Body
ClusterNetworkSubnetPrototype
The cluster network subnet prototype object
ip_version
string
The IP version(s) to support for this cluster network subnet.
name
string
The name for this cluster network subnet. The name must not be used by another cluster network subnet in the cluster network. Names starting with `ibm-` are reserved for provider-owned resources, and are not allowed. If unspecified, the name will be a hyphenated list of randomly-selected words.
Response
201 - The cluster network subnet was created successfully.
available_ipv4_address_count
integer
The number of IPv4 addresses in this cluster network subnet that are not in use, and have not been reserved by the user or the provider.
created_at
string
The date and time that the cluster network subnet was created
href
string
The URL for this cluster network subnet
id
string
The unique identifier for this cluster network subnet
ip_version
object
The IP version for this cluster network subnet.
The enumerated values for this property may expand in the future.
ipv4_cidr_block
string
The IPv4 range of this cluster network subnet, expressed in CIDR format
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
ClusterNetworkSubnetLifecycleState
The lifecycle state of the cluster network subnet
name
string
The name for this cluster network subnet. The name is unique across all cluster network subnets in the cluster network.
resource_type
string
The resource type
total_ipv4_address_count
integer
The total number of IPv4 addresses in this cluster network subnet.
Note: This is calculated as 2<sup>(32 - prefix length)</sup>. For example, the prefix length `/24` gives:<br> 2<sup>(32 - 24)</sup> = 2<sup>8</sup> = 256 addresses.
400 - An invalid cluster network subnet prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The cluster network subnet prototype object conflicts with another cluster network
subnet in the cluster network.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List cluster network subnet reserved IPs
GET /cluster_networks/{cluster_network_id}/subnets/{cluster_network_subnet_id}/reserved_ips
This request lists cluster network subnet reserved IPs in the cluster network.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.cluster-network.subnet.read
Auditing
Calling this method generates the following auditing event.
is.cluster-network.subnet-reserved-ip.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
name
string
Filters the collection to resources with a `name` property matching the exact specified name.
sort
string
Sorts the returned collection by the specified property name in ascending order. A `-` may be prepended to the name to sort in descending order. For example, the value `-created_at` sorts the collection by the `created_at` property in descending order, and the value `name` sorts it by the `name` property in ascending order.
Response
200 - The cluster network subnet reserved IPs were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
reserved_ips
array
A page of reserved IPs for the cluster network subnet
total_count
integer
The total number of resources across all pages
404 - A cluster network subnet with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a cluster network subnet reserved IP
POST /cluster_networks/{cluster_network_id}/subnets/{cluster_network_subnet_id}/reserved_ips
This request creates a new cluster network subnet reserved IP from a cluster network subnet reserved IP prototype object. The prototype object is structured in the same way as a retrieved cluster network subnet reserved IP, and contains the information necessary to create the new cluster network subnet reserved IP.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.cluster-network.subnet.update
Auditing
Calling this method generates the following auditing event.
is.cluster-network.subnet.updateis.cluster-network.subnet-reserved-ip.create
Request
Request Body
ClusterNetworkSubnetReservedIPPrototype
The cluster network subnet reserved IP prototype object
address
string
The IP address to reserve, which must not already be reserved on the subnet.
If unspecified, an available address on the subnet will automatically be selected.
name
string
The name for this cluster network subnet reserved IP. The name must not be used by another reserved IP in the cluster network subnet. Names starting with `ibm-` are reserved for provider-owned resources, and are not allowed. If unspecified, the name will be a hyphenated list of randomly-selected words.
Response
201 - The cluster network subnet reserved IP was created successfully.
address
object
The IP address.
If the address is pending allocation, the value will be `0.0.0.0`.
This property may expand to support IPv6 addresses in the future.
auto_delete
boolean
Indicates whether this cluster network subnet reserved IP member will be automatically deleted when either `target` is deleted, or the cluster network subnet reserved IP is unbound.
created_at
string
The date and time that the cluster network subnet reserved IP was created
href
string
The URL for this cluster network subnet reserved IP
id
string
The unique identifier for this cluster network subnet reserved IP
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
ClusterNetworkSubnetReservedIPLifecycleState
The lifecycle state of the cluster network subnet reserved IP
name
string
The name for this cluster network subnet reserved IP. The name is unique across all reserved IPs in a cluster network subnet.
owner
string
The owner of the cluster network subnet reserved IP
The enumerated values for this property may expand in the future.
resource_type
string
The resource type
target
ClusterNetworkSubnetReservedIPTarget
The target this cluster network subnet reserved IP is bound to.
If absent, this cluster network subnet reserved IP is provider-owned or unbound.
400 - An invalid cluster network subnet reserved IP prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The cluster network subnet reserved IP prototype object conflicts with another
reserved IP in the cluster network subnet, or the cluster network reserved IP cannot be created due to one or more of the following conflicts:
- the cluster network subnet has no available IP addresses
- the cluster network subnet reserved IP prototype object specifies an address that is already in use
errors
array
The errors that occurred.
trace
string
The unique error identifier
DELETE /cluster_networks/{cluster_network_id}/subnets/{cluster_network_subnet_id}/reserved_ips/{id}
This request deletes a cluster network subnet reserved IP. This operation cannot be reversed.
For this request to succeed, the reserved IP must be unbound. A provider-owned reserved IP is not allowed to be deleted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.cluster-network.subnet.update
Auditing
Calling this method generates the following auditing event.
is.cluster-network.subnet.updateis.cluster-network.subnet-reserved-ip.delete
Request
Path Parameters
Query Parameters
Response
202 - The cluster network subnet reserved IP deletion request was accepted.
address
object
The IP address.
If the address is pending allocation, the value will be `0.0.0.0`.
This property may expand to support IPv6 addresses in the future.
auto_delete
boolean
Indicates whether this cluster network subnet reserved IP member will be automatically deleted when either `target` is deleted, or the cluster network subnet reserved IP is unbound.
created_at
string
The date and time that the cluster network subnet reserved IP was created
href
string
The URL for this cluster network subnet reserved IP
id
string
The unique identifier for this cluster network subnet reserved IP
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
ClusterNetworkSubnetReservedIPLifecycleState
The lifecycle state of the cluster network subnet reserved IP
name
string
The name for this cluster network subnet reserved IP. The name is unique across all reserved IPs in a cluster network subnet.
owner
string
The owner of the cluster network subnet reserved IP
The enumerated values for this property may expand in the future.
resource_type
string
The resource type
target
ClusterNetworkSubnetReservedIPTarget
The target this cluster network subnet reserved IP is bound to.
If absent, this cluster network subnet reserved IP is provider-owned or unbound.
403 - The cluster network subnet reserved IP is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A cluster network subnet reserved IP with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The cluster network subnet reserved IP is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the cluster
network subnet.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a cluster network subnet reserved IP
GET /cluster_networks/{cluster_network_id}/subnets/{cluster_network_subnet_id}/reserved_ips/{id}
This request retrieves a single cluster network subnet reserved IP specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.cluster-network.subnet.read
Auditing
Calling this method generates the following auditing event.
is.cluster-network.subnet-reserved-ip.read
Request
Response
200 - The cluster network subnet reserved IP was retrieved successfully.
address
object
The IP address.
If the address is pending allocation, the value will be `0.0.0.0`.
This property may expand to support IPv6 addresses in the future.
auto_delete
boolean
Indicates whether this cluster network subnet reserved IP member will be automatically deleted when either `target` is deleted, or the cluster network subnet reserved IP is unbound.
created_at
string
The date and time that the cluster network subnet reserved IP was created
href
string
The URL for this cluster network subnet reserved IP
id
string
The unique identifier for this cluster network subnet reserved IP
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
ClusterNetworkSubnetReservedIPLifecycleState
The lifecycle state of the cluster network subnet reserved IP
name
string
The name for this cluster network subnet reserved IP. The name is unique across all reserved IPs in a cluster network subnet.
owner
string
The owner of the cluster network subnet reserved IP
The enumerated values for this property may expand in the future.
resource_type
string
The resource type
target
ClusterNetworkSubnetReservedIPTarget
The target this cluster network subnet reserved IP is bound to.
If absent, this cluster network subnet reserved IP is provider-owned or unbound.
404 - A cluster network subnet reserved IP with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a cluster network subnet reserved IP
PATCH /cluster_networks/{cluster_network_id}/subnets/{cluster_network_subnet_id}/reserved_ips/{id}
This request updates a cluster network subnet reserved IP with the information provided in a cluster network subnet reserved IP patch object. The patch object is structured in the same way as a retrieved cluster network subnet reserved IP and needs to contain only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.cluster-network.subnet.update
Auditing
Calling this method generates the following auditing event.
is.cluster-network.subnet-reserved-ip.update
Request
Request Body
The cluster network subnet reserved IP patch
Path Parameters
Query Parameters
Response
200 - The cluster network subnet reserved IP was updated successfully.
address
object
The IP address.
If the address is pending allocation, the value will be `0.0.0.0`.
This property may expand to support IPv6 addresses in the future.
auto_delete
boolean
Indicates whether this cluster network subnet reserved IP member will be automatically deleted when either `target` is deleted, or the cluster network subnet reserved IP is unbound.
created_at
string
The date and time that the cluster network subnet reserved IP was created
href
string
The URL for this cluster network subnet reserved IP
id
string
The unique identifier for this cluster network subnet reserved IP
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
ClusterNetworkSubnetReservedIPLifecycleState
The lifecycle state of the cluster network subnet reserved IP
name
string
The name for this cluster network subnet reserved IP. The name is unique across all reserved IPs in a cluster network subnet.
owner
string
The owner of the cluster network subnet reserved IP
The enumerated values for this property may expand in the future.
resource_type
string
The resource type
target
ClusterNetworkSubnetReservedIPTarget
The target this cluster network subnet reserved IP is bound to.
If absent, this cluster network subnet reserved IP is provider-owned or unbound.
400 - An invalid cluster network subnet reserved IP patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A cluster network subnet reserved IP with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The cluster network subnet reserved IP patch conflicts with another reserved IP in
the cluster network subnet, or the patch specifies an `auto_delete` value that conflicts with the current binding state of the reserved IP.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the cluster
network subnet.
errors
array
The errors that occurred.
trace
string
The unique error identifier
DELETE /cluster_networks/{cluster_network_id}/subnets/{id}
This request deletes a cluster network subnet. This operation cannot be reversed.
For this request to succeed, this cluster subnet must not be attached to a cluster network interface.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.cluster-network.subnet.delete
Auditing
Calling this method generates the following auditing event.
is.cluster-network.cluster-network.updateis.cluster-network.subnet.delete
Request
Path Parameters
Query Parameters
Response
202 - The cluster network subnet deletion request was accepted.
available_ipv4_address_count
integer
The number of IPv4 addresses in this cluster network subnet that are not in use, and have not been reserved by the user or the provider.
created_at
string
The date and time that the cluster network subnet was created
href
string
The URL for this cluster network subnet
id
string
The unique identifier for this cluster network subnet
ip_version
object
The IP version for this cluster network subnet.
The enumerated values for this property may expand in the future.
ipv4_cidr_block
string
The IPv4 range of this cluster network subnet, expressed in CIDR format
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
ClusterNetworkSubnetLifecycleState
The lifecycle state of the cluster network subnet
name
string
The name for this cluster network subnet. The name is unique across all cluster network subnets in the cluster network.
resource_type
string
The resource type
total_ipv4_address_count
integer
The total number of IPv4 addresses in this cluster network subnet.
Note: This is calculated as 2<sup>(32 - prefix length)</sup>. For example, the prefix length `/24` gives:<br> 2<sup>(32 - 24)</sup> = 2<sup>8</sup> = 256 addresses.
404 - A cluster network subnet with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The cluster network subnet is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the cluster
network subnet.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a cluster network subnet
GET /cluster_networks/{cluster_network_id}/subnets/{id}
This request retrieves a single cluster network subnet specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.cluster-network.subnet.read
Auditing
Calling this method generates the following auditing event.
is.cluster-network.subnet.read
Request
Response
200 - The cluster network subnet was retrieved successfully.
available_ipv4_address_count
integer
The number of IPv4 addresses in this cluster network subnet that are not in use, and have not been reserved by the user or the provider.
created_at
string
The date and time that the cluster network subnet was created
href
string
The URL for this cluster network subnet
id
string
The unique identifier for this cluster network subnet
ip_version
object
The IP version for this cluster network subnet.
The enumerated values for this property may expand in the future.
ipv4_cidr_block
string
The IPv4 range of this cluster network subnet, expressed in CIDR format
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
ClusterNetworkSubnetLifecycleState
The lifecycle state of the cluster network subnet
name
string
The name for this cluster network subnet. The name is unique across all cluster network subnets in the cluster network.
resource_type
string
The resource type
total_ipv4_address_count
integer
The total number of IPv4 addresses in this cluster network subnet.
Note: This is calculated as 2<sup>(32 - prefix length)</sup>. For example, the prefix length `/24` gives:<br> 2<sup>(32 - 24)</sup> = 2<sup>8</sup> = 256 addresses.
404 - A cluster network subnet with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a cluster network subnet
PATCH /cluster_networks/{cluster_network_id}/subnets/{id}
This request updates a cluster network subnet with the information provided in a cluster network subnet patch object. The patch object is structured in the same way as a retrieved cluster network subnet and needs to contain only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.cluster-network.subnet.update
Auditing
Calling this method generates the following auditing event.
is.cluster-network.subnet.update
Request
Request Body
The cluster network subnet patch
Path Parameters
Query Parameters
Response
200 - The cluster network subnet was updated successfully.
available_ipv4_address_count
integer
The number of IPv4 addresses in this cluster network subnet that are not in use, and have not been reserved by the user or the provider.
created_at
string
The date and time that the cluster network subnet was created
href
string
The URL for this cluster network subnet
id
string
The unique identifier for this cluster network subnet
ip_version
object
The IP version for this cluster network subnet.
The enumerated values for this property may expand in the future.
ipv4_cidr_block
string
The IPv4 range of this cluster network subnet, expressed in CIDR format
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
ClusterNetworkSubnetLifecycleState
The lifecycle state of the cluster network subnet
name
string
The name for this cluster network subnet. The name is unique across all cluster network subnets in the cluster network.
resource_type
string
The resource type
total_ipv4_address_count
integer
The total number of IPv4 addresses in this cluster network subnet.
Note: This is calculated as 2<sup>(32 - prefix length)</sup>. For example, the prefix length `/24` gives:<br> 2<sup>(32 - 24)</sup> = 2<sup>8</sup> = 256 addresses.
400 - An invalid cluster network subnet patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A cluster network subnet with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The cluster network subnet patch conflicts with another cluster network subnet
in the cluster network.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the cluster
network subnet.
errors
array
The errors that occurred.
trace
string
The unique error identifier
DELETE /cluster_networks/{id}
This request deletes a cluster network. This operation cannot be reversed.
For this request to succeed, virtual server instances must not reside in this cluster network.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.cluster-network.cluster-network.delete
Auditing
Calling this method generates the following auditing event.
is.cluster-network.cluster-network.deleteis.cluster-network.interface.deleteis.cluster-network.subnet-reserved-ip.deleteis.cluster-network.subnet.delete
Request
Path Parameters
Query Parameters
Response
202 - The cluster network deletion request was accepted.
created_at
string
The date and time that the cluster network was created.
crn
string
The CRN for this cluster network
href
string
The URL for this cluster network
id
string
The unique identifier for this cluster network
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the cluster network
name
string
The name for this cluster network. The name must not be used by another cluster network in the region.
profile
object
The profile for this cluster network
resource_group
object
The resource group for this cluster network
resource_type
string
The resource type
subnet_prefixes
array
The IP address ranges available for subnets for this cluster network.
vpc
object
The VPC this cluster network resides in
zone
object
The zone this cluster network resides in
404 - A cluster network with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The cluster network is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the cluster
network.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a cluster network
GET /cluster_networks/{id}
This request retrieves a single cluster network specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.cluster-network.cluster-network.read
Auditing
Calling this method generates the following auditing event.
is.cluster-network.cluster-network.read
Request
Response
200 - The cluster network was retrieved successfully.
created_at
string
The date and time that the cluster network was created.
crn
string
The CRN for this cluster network
href
string
The URL for this cluster network
id
string
The unique identifier for this cluster network
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the cluster network
name
string
The name for this cluster network. The name must not be used by another cluster network in the region.
profile
object
The profile for this cluster network
resource_group
object
The resource group for this cluster network
resource_type
string
The resource type
subnet_prefixes
array
The IP address ranges available for subnets for this cluster network.
vpc
object
The VPC this cluster network resides in
zone
object
The zone this cluster network resides in
404 - A cluster network with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a cluster
PATCH /cluster_networks/{id}
This request updates a cluster network with the information provided in a cluster network patch object. The patch object is structured in the same way as a retrieved cluster network and needs to contain only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.cluster-network.cluster-network.update
Auditing
Calling this method generates the following auditing event.
is.cluster-network.cluster-network.update
Request
Request Body
The cluster network patch
Path Parameters
Query Parameters
Response
200 - The cluster network was updated successfully.
created_at
string
The date and time that the cluster network was created.
crn
string
The CRN for this cluster network
href
string
The URL for this cluster network
id
string
The unique identifier for this cluster network
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the cluster network
name
string
The name for this cluster network. The name must not be used by another cluster network in the region.
profile
object
The profile for this cluster network
resource_group
object
The resource group for this cluster network
resource_type
string
The resource type
subnet_prefixes
array
The IP address ranges available for subnets for this cluster network.
vpc
object
The VPC this cluster network resides in
zone
object
The zone this cluster network resides in
400 - An invalid cluster network patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A cluster network with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The cluster network patch conflicts with another cluster network
in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the cluster
network.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List dedicated host groups
GET /dedicated_host/groups
This request lists dedicated host groups in the region. Each dedicated host must belong to exactly one group, which controls placement of instances. Dedicated host groups do not span zones.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dedicated-host.dedicated-host-group.read
Auditing
Calling this method generates the following auditing event.
is.dedicated-host.dedicated-host-group.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
zone.name
string
Filters the collection to resources with a `zone.name` property matching the exact specified name.
name
string
Filters the collection to resources with a `name` property matching the exact specified name.
Response
200 - The dedicated host groups were retrieved successfully.
first
object
A link to the first page of resources
groups
array
A page of dedicated host groups
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
Create a dedicated host group
POST /dedicated_host/groups
This request creates a new dedicated host group.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dedicated-host.dedicated-host-group.create
Auditing
Calling this method generates the following auditing event.
is.dedicated-host.dedicated-host-group.create
Request
Request Body
DedicatedHostGroupPrototype
The dedicated host group prototype object
family
Required *
string
The dedicated host profile family for hosts in this group
name
string
The name for this dedicated host group. The name must not be used by another dedicated host group in the region. If unspecified, the name will be a hyphenated list of randomly-selected words.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
zone
Required *
object
Identifies a zone by a unique property.
Response
201 - The dedicated host group was created successfully.
created_at
string
The date and time that the dedicated host group was created
crn
string
The CRN for this dedicated host group
dedicated_hosts
array
The dedicated hosts that are in this dedicated host group
family
string
The dedicated host profile family for hosts in this group
href
string
The URL for this dedicated host group
id
string
The unique identifier for this dedicated host group
name
string
The name for this dedicated host group. The name is unique across all dedicated host groups in the region.
resource_group
object
The resource group for this dedicated host group
resource_type
string
The resource type
supported_instance_profiles
array
The instance profiles usable by instances placed on this dedicated host group.
zone
object
The zone this dedicated host group resides in
400 - An invalid dedicated host group prototype object was provided
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The dedicated host group prototype object conflicts with another dedicated host
group in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a dedicated host group
DELETE /dedicated_host/groups/{id}
This request deletes a dedicated host group.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dedicated-host.dedicated-host-group.delete
Auditing
Calling this method generates the following auditing event.
is.dedicated-host.dedicated-host-group.delete
Request
Response
204 - The dedicated host group was deleted successfully.
404 - A dedicated host group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a dedicated host group
GET /dedicated_host/groups/{id}
This request retrieves a single dedicated host group specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dedicated-host.dedicated-host-group.read
Auditing
Calling this method generates the following auditing event.
is.dedicated-host.dedicated-host-group.read
Request
Response
200 - The dedicated host group was retrieved successfully.
created_at
string
The date and time that the dedicated host group was created
crn
string
The CRN for this dedicated host group
dedicated_hosts
array
The dedicated hosts that are in this dedicated host group
family
string
The dedicated host profile family for hosts in this group
href
string
The URL for this dedicated host group
id
string
The unique identifier for this dedicated host group
name
string
The name for this dedicated host group. The name is unique across all dedicated host groups in the region.
resource_group
object
The resource group for this dedicated host group
resource_type
string
The resource type
supported_instance_profiles
array
The instance profiles usable by instances placed on this dedicated host group.
zone
object
The zone this dedicated host group resides in
404 - A dedicated host group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a dedicated host group
PATCH /dedicated_host/groups/{id}
This request updates a dedicated host group with the information in a provided dedicated host group patch. The dedicated host group patch object is structured in the same way as a retrieved dedicated host group and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dedicated-host.dedicated-host-group.update
Auditing
Calling this method generates the following auditing event.
is.dedicated-host.dedicated-host-group.update
Request
Request Body
The dedicated host group patch
Response
200 - The dedicated host group was updated successfully.
created_at
string
The date and time that the dedicated host group was created
crn
string
The CRN for this dedicated host group
dedicated_hosts
array
The dedicated hosts that are in this dedicated host group
family
string
The dedicated host profile family for hosts in this group
href
string
The URL for this dedicated host group
id
string
The unique identifier for this dedicated host group
name
string
The name for this dedicated host group. The name is unique across all dedicated host groups in the region.
resource_group
object
The resource group for this dedicated host group
resource_type
string
The resource type
supported_instance_profiles
array
The instance profiles usable by instances placed on this dedicated host group.
zone
object
The zone this dedicated host group resides in
400 - An invalid dedicated host group patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A dedicated host group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The dedicated host group patch conflicts with another dedicated host group
in the region, or the dedicated host group must be empty to change family
errors
array
The errors that occurred.
trace
string
The unique error identifier
List dedicated host profiles
GET /dedicated_host/profiles
This request lists provisionable dedicated host profiles in the region. A dedicated host profile specifies the hardware characteristics for a dedicated host.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The dedicated host profiles were retrieved successfully
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
profiles
array
A page of dedicated host profiles
total_count
integer
The total number of resources across all pages
Retrieve a dedicated host profile
GET /dedicated_host/profiles/{name}
This request retrieves a single dedicated host profile specified by the name in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
Request
Path Parameters
name
Required *
string
The dedicated host profile name
Query Parameters
Response
200 - The dedicated host profile was retrieved successfully
disks
DedicatedHostProfileDisks
The disks for a dedicated host with this profile
family
string
The product family this dedicated host profile belongs to
The enumerated values for this property may expand in the future.
href
string
The URL for this dedicated host
memory
DedicatedHostProfileMemory
name
string
The globally unique name for this dedicated host profile
socket_count
DedicatedHostProfileSocket
status
string
The status of the dedicated host profile:
- `previous`: This dedicated host profile is an older revision, but remains provisionable and usable.
- `current`: This dedicated host profile is the latest revision.
Revisions are indicated by the generation of a dedicated host profile. Refer to the profile naming conventions for information on how generations are defined within a dedicated host profile.
The enumerated values for this property may expand in the future.
supported_instance_profiles
array
The instance profiles usable by instances placed on dedicated hosts with this profile.
vcpu_architecture
DedicatedHostProfileVCPUArchitecture
vcpu_count
DedicatedHostProfileVCPU
vcpu_manufacturer
DedicatedHostProfileVCPUManufacturer
404 - A dedicated host profile with the specified name could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List dedicated hosts
GET /dedicated_hosts
This request lists dedicated hosts in the region.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dedicated-host.dedicated-host.read
Auditing
Calling this method generates the following auditing event.
is.dedicated-host.dedicated-host.read
Request
Path Parameters
Query Parameters
dedicated_host_group.id
Filters the collection to dedicated hosts with a `group.id` property matching the specified identifier.
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
zone.name
string
Filters the collection to resources with a `zone.name` property matching the exact specified name.
name
string
Filters the collection to resources with a `name` property matching the exact specified name.
Response
200 - The dedicated hosts were retrieved successfully.
dedicated_hosts
array
A page of dedicated hosts
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
Create a dedicated host
POST /dedicated_hosts
This request creates a new dedicated host.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dedicated-host.dedicated-host.createis.dedicated-host.dedicated-host-group.createis.dedicated-host.dedicated-host-group.update
Auditing
Calling this method generates the following auditing event.
is.dedicated-host.dedicated-host.createis.dedicated-host.dedicated-host-group.createis.dedicated-host.dedicated-host-group.update
Request
Request Body
DedicatedHostPrototype
The dedicated host prototype object
instance_placement_enabled
boolean
If set to true, instances can be placed on this dedicated host
name
string
The name for this dedicated host. The name must not be used by another dedicated host in the region. If unspecified, the name will be a hyphenated list of randomly-selected words.
profile
Required *
object
Identifies a dedicated host profile by a unique property
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
Response
201 - The dedicated host was created successfully.
available_memory
integer
The amount of memory in gibibytes that is currently available for instances
available_vcpu
object
The VCPU configuration
created_at
string
The date and time that the dedicated host was created
crn
string
The CRN for this dedicated host
disks
array
The disks for the dedicated host
group
object
The dedicated host group this dedicated host is in
href
string
The URL for this dedicated host
id
string
The unique identifier for this dedicated host
instance_placement_enabled
boolean
If set to true, instances can be placed on this dedicated host
instances
array
The instances that are allocated to this dedicated host.
lifecycle_state
object
The lifecycle state of the dedicated host.
memory
integer
The total amount of memory in gibibytes for this host
name
string
The name for this dedicated host. The name is unique across all dedicated hosts in the region.
numa
DedicatedHostNUMA
The dedicated host NUMA configuration
profile
object
The profile for this dedicated host.
provisionable
boolean
Indicates whether this dedicated host is available for instance creation
resource_group
object
The resource group for this dedicated host
resource_type
string
The resource type
socket_count
integer
The total number of sockets for this host
state
string
The administrative state of the dedicated host.
The enumerated values for this property may expand in the future.
supported_instance_profiles
array
The instance profiles usable by instances placed on this dedicated host.
vcpu
object
The VCPU configuration
zone
object
The zone this dedicated host resides in
400 - An invalid dedicated host prototype object was provided
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The dedicated host prototype object conflicts with another dedicated host in the region,
or the dedicated host group family must match the specified host profile family
errors
array
The errors that occurred.
trace
string
The unique error identifier
List disks on a dedicated host
GET /dedicated_hosts/{dedicated_host_id}/disks
This request lists disks on a dedicated host. A disk is a physical device that is locally attached to the compute node. By default, the listed disks are sorted by their `created_at` property values, with the newest disk first.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dedicated-host.dedicated-host.read
Auditing
Calling this method generates the following auditing event.
is.dedicated-host.dedicated-host.read
Request
Response
200 - The dedicated host disks were retrieved successfully.
disks
array
The disks for the dedicated host
404 - A dedicated host with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a dedicated host disk
GET /dedicated_hosts/{dedicated_host_id}/disks/{id}
This request retrieves a single dedicated host disk specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dedicated-host.dedicated-host.read
Auditing
Calling this method generates the following auditing event.
is.dedicated-host.dedicated-host.read
Request
Response
200 - The dedicated host disk was retrieved successfully.
available
integer
The remaining space left for instance placement in GB (gigabytes)
created_at
string
The date and time that the disk was created
href
string
The URL for this disk
id
string
The unique identifier for this disk
instance_disks
array
The instance disks that are on this dedicated host disk
interface_type
string
The disk interface used for attaching the disk
lifecycle_state
object
The lifecycle state of this dedicated host disk
name
string
The name for this dedicated host disk. The name is unique across all disks on the dedicated host.
provisionable
boolean
Indicates whether this dedicated host disk is available for instance disk creation
resource_type
string
The resource type
size
integer
The size of the disk in GB (gigabytes)
supported_instance_interface_types
DedicatedHostDiskSupportedInstanceInterfaceTypes
The instance disk interfaces supported for this dedicated host disk.
The enumerated values for this property may expand in the future.
404 - A dedicated host disk with the specified identifier could not be found for the specified
dedicated host.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a dedicated host disk
PATCH /dedicated_hosts/{dedicated_host_id}/disks/{id}
This request updates the dedicated host disk with the information in a provided patch.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dedicated-host.dedicated-host.update
Auditing
Calling this method generates the following auditing event.
is.dedicated-host.dedicated-host.update
Request
Request Body
The dedicated host disk patch
Response
200 - The dedicated host disk was updated successfully.
available
integer
The remaining space left for instance placement in GB (gigabytes)
created_at
string
The date and time that the disk was created
href
string
The URL for this disk
id
string
The unique identifier for this disk
instance_disks
array
The instance disks that are on this dedicated host disk
interface_type
string
The disk interface used for attaching the disk
lifecycle_state
object
The lifecycle state of this dedicated host disk
name
string
The name for this dedicated host disk. The name is unique across all disks on the dedicated host.
provisionable
boolean
Indicates whether this dedicated host disk is available for instance disk creation
resource_type
string
The resource type
size
integer
The size of the disk in GB (gigabytes)
supported_instance_interface_types
DedicatedHostDiskSupportedInstanceInterfaceTypes
The instance disk interfaces supported for this dedicated host disk.
The enumerated values for this property may expand in the future.
400 - An invalid dedicated host disk patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A dedicated host disk with the specified identifier could not be found for the specified
dedicated host.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The dedicated host disk patch conflicts with another disk for the dedicated host.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a dedicated host
DELETE /dedicated_hosts/{id}
This request deletes a dedicated host. This operation cannot be reversed. For this request to succeed, `instances` must be empty and `instance_placement_enabled` must be `false`.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dedicated-host.dedicated-host.delete
Auditing
Calling this method generates the following auditing event.
is.dedicated-host.dedicated-host.delete
Request
Response
204 - The dedicated host was deleted successfully.
404 - A dedicated host with the specified dedicated host group and dedicated host identifiers
could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The dedicated host is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a dedicated host
GET /dedicated_hosts/{id}
This request retrieves a single dedicated host specified by the identifiers in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dedicated-host.dedicated-host.read
Auditing
Calling this method generates the following auditing event.
is.dedicated-host.dedicated-host.read
Request
Response
200 - The dedicated host was retrieved successfully.
available_memory
integer
The amount of memory in gibibytes that is currently available for instances
available_vcpu
object
The VCPU configuration
created_at
string
The date and time that the dedicated host was created
crn
string
The CRN for this dedicated host
disks
array
The disks for the dedicated host
group
object
The dedicated host group this dedicated host is in
href
string
The URL for this dedicated host
id
string
The unique identifier for this dedicated host
instance_placement_enabled
boolean
If set to true, instances can be placed on this dedicated host
instances
array
The instances that are allocated to this dedicated host.
lifecycle_state
object
The lifecycle state of the dedicated host.
memory
integer
The total amount of memory in gibibytes for this host
name
string
The name for this dedicated host. The name is unique across all dedicated hosts in the region.
numa
DedicatedHostNUMA
The dedicated host NUMA configuration
profile
object
The profile for this dedicated host.
provisionable
boolean
Indicates whether this dedicated host is available for instance creation
resource_group
object
The resource group for this dedicated host
resource_type
string
The resource type
socket_count
integer
The total number of sockets for this host
state
string
The administrative state of the dedicated host.
The enumerated values for this property may expand in the future.
supported_instance_profiles
array
The instance profiles usable by instances placed on this dedicated host.
vcpu
object
The VCPU configuration
zone
object
The zone this dedicated host resides in
404 - A dedicated host with the specified dedicated host and group identifiers could not be
found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a dedicated host
PATCH /dedicated_hosts/{id}
This request updates a dedicated host with the information in a provided dedicated host patch. The dedicated host patch object is structured in the same way as a retrieved dedicated host and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dedicated-host.dedicated-host.update
Auditing
Calling this method generates the following auditing event.
is.dedicated-host.dedicated-host.update
Request
Request Body
The dedicated host patch
Response
200 - The dedicated host was updated successfully.
available_memory
integer
The amount of memory in gibibytes that is currently available for instances
available_vcpu
object
The VCPU configuration
created_at
string
The date and time that the dedicated host was created
crn
string
The CRN for this dedicated host
disks
array
The disks for the dedicated host
group
object
The dedicated host group this dedicated host is in
href
string
The URL for this dedicated host
id
string
The unique identifier for this dedicated host
instance_placement_enabled
boolean
If set to true, instances can be placed on this dedicated host
instances
array
The instances that are allocated to this dedicated host.
lifecycle_state
object
The lifecycle state of the dedicated host.
memory
integer
The total amount of memory in gibibytes for this host
name
string
The name for this dedicated host. The name is unique across all dedicated hosts in the region.
numa
DedicatedHostNUMA
The dedicated host NUMA configuration
profile
object
The profile for this dedicated host.
provisionable
boolean
Indicates whether this dedicated host is available for instance creation
resource_group
object
The resource group for this dedicated host
resource_type
string
The resource type
socket_count
integer
The total number of sockets for this host
state
string
The administrative state of the dedicated host.
The enumerated values for this property may expand in the future.
supported_instance_profiles
array
The instance profiles usable by instances placed on this dedicated host.
vcpu
object
The VCPU configuration
zone
object
The zone this dedicated host resides in
400 - An invalid dedicated host patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A dedicated host with the specified dedicated host group and dedicated host identifiers
could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The dedicated host patch conflicts with another dedicated host in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /dynamic_route_servers
This request lists dynamic route servers in the region. A dynamic route server is a collection of members that learn routes from BGP peers, and allows policies to be configured for groups of peers.
The dynamic route servers will be sorted by their `created_at` property values, with newest dynamic route server first. Dynamic route servers with identical `created_at` property values will in turn be sorted by ascending `name` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.dynamic-route-server.listis.dynamic-route-server.dynamic-route-server.read
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.dynamic-route-server.list
Request
Path Parameters
Query Parameters
name
string
Filters the collection to resources with a `name` property matching the exact specified name.
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
sort
string
Sorts the returned collection by the specified property name in ascending order. A `-` may be prepended to the name to sort in descending order. For example, the value `-created_at` sorts the collection by the `created_at` property in descending order, and the value `name` sorts it by the `name` property in ascending order.
Response
200 - The dynamic route servers were retrieved successfully.
dynamic_route_servers
array
A page of dynamic route servers
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
POST /dynamic_route_servers
This request creates a new dynamic route server from a dynamic route server prototype object.
The prototype object is structured in the same way as a retrieved dynamic route server, and contains the information necessary to create the new dynamic route server.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.dynamic-route-server.createis.vpc.vpc.operateis.subnet.subnet.operateis.virtual-network-interface.virtual-network-interface.operateis.virtual-network-interface.virtual-network-interface.createis.security-group.security-group.operate
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.dynamic-route-server.createis.dynamic-route-server.member.createis.dynamic-route-server.member.attachis.virtual-network-interface.virtual-network-interface.createis.virtual-network-interface.virtual-network-interface.attach
Request
Request Body
DynamicRouteServerPrototype
The dynamic route server prototype
local_asn
Required *
object
The local autonomous system number (ASN) used for this dynamic route server and its connections.
members
Required *
array
The members for a dynamic route server.
name
string
The name for this dynamic route server. The name must not be used by another dynamic route server in the VPC. If unspecified, the name will be a hyphenated list of randomly-selected words.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
Response
201 - The dynamic route server was created successfully.
created_at
string
The date and time that the dynamic route server was created.
crn
string
The CRN for this dynamic route server
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this dynamic route server
id
object
The unique identifier for this dynamic route server
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the dynamic route server.
local_asn
integer
The local autonomous system number (ASN) used for this dynamic route server and its connections.
members
array
name
string
The name for this dynamic route server. The name is unique across all dynamic route servers in the region.
resource_group
object
The resource group for this dynamic route server
resource_type
string
The resource type
vpc
object
The VPC this dynamic route server resides in.
400 - An invalid dynamic route server prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The dynamic route server prototype object conflicts with another dynamic route server
in the region, or a member prototype specifies an existing virtual network interface with one or more of:
- `allow_ip_spoofing` set to `true`
- `enable_infrastructure_nat` set to `false`
- `protocol_state_filtering_mode` set to `disabled`
- `ips` other than the `primary_ip` address
- `target` set to another resource
- a floating IP bound to it.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /dynamic_route_servers/{dynamic_route_server_id}/members
This request lists the members for a dynamic route server. A member learns routes from all peers in the dynamic route server's peer groups. It learns routes by using its virtual network interface to establish a BGP session to each peer. The dynamic route server member uses the bound virtual network interface primary ip to establish BGP sessions with the configured peer group peers
The dynamic route server members will be sorted by their `created_at` property, with the newest member first. Members with identical `created_at` values will in turn be sorted by ascending `name` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.member.readis.dynamic-route-server.member.list
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.dynamic-route-server.readis.dynamic-route-server.dynamic-route-server.list
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The response lists dynamic route members in a dynamic route server.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
members
array
A page of members for the dynamic route server
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - A dynamic route server or dynamic route server member with the specified identifier
could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a member in a dynamic route server
POST /dynamic_route_servers/{dynamic_route_server_id}/members
This request creates a new member and adds the member to the dynamic route server. The virtual network interface must currently be unbound.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.member.createis.virtual-network-interface.virtual-network-interface.operateis.subnet.subnet.operateis.virtual-network-interface.virtual-network-interface.createis.security-group.security-group.operate
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.dynamic-route-server-virtual_network_interface.attachis.virtual-network-interface.virtual-network-interface.attachis.dynamic-route-server.dynamic-route-server-member.create
Request
Request Body
DynamicRouteServerMemberPrototype
The dynamic route server member prototype
name
Required *
string
The name for this dynamic route server member. The name must not be used by another member in the dynamic route server. If unspecified, the name will be a hyphenated list of randomly-selected words.
virtual_network_interfaces
Required *
array
The virtual network interfaces to use for this dynamic route server member.
Response
201 - The dynamic route server member creation request was accepted.
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this dynamic route server member:
- `ok`: No abnormal behavior detected
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A member with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` member may also have this state.
href
string
The URL for this dynamic route server member
id
string
The unique identifier for this dynamic route server member
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the dynamic route server member.
name
string
The name for this dynamic route server member. The name is unique across all members in the dynamic route server.
resource_type
string
The resource type
virtual_network_interfaces
array
The virtual network interfaces for this dynamic route server member.
400 - The dynamic route server member prototype object specifies one or more of:
- An invalid dynamic route server member prototype object was provided.
- The dynamic route server peer group has reached its maximum number of members.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A dynamic route server or dynamic route server member with the specified identifier
could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The dynamic route server member prototype object specifies one or more of:
- The specified virtual network interface is bound to another target.
- The specified virtual network interface is not in the same zone as the dynamic route server.
- The specified virtual network interface is not in the same account as the dynamic route server.
- The specified virtual network interface does not have an associated `security_group`.
- The specified virtual network interface must not have other `floating_ips` or secondary `reserved_ips` associated with it.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a dynamic route server member
DELETE /dynamic_route_servers/{dynamic_route_server_id}/members/{id}
This operation deletes the member from a dynamic route server.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.member.deleteis.virtual-network-interface.virtual-network-interface.operate
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.dynamic-route-server-virtual_network_interface.detachis.virtual-network-interface.virtual-network-interface.detach
Request
Response
202 - The dynamic route server member deletion request was accepted.
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this dynamic route server member:
- `ok`: No abnormal behavior detected
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A member with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` member may also have this state.
href
string
The URL for this dynamic route server member
id
string
The unique identifier for this dynamic route server member
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the dynamic route server member.
name
string
The name for this dynamic route server member. The name is unique across all members in the dynamic route server.
resource_type
string
The resource type
virtual_network_interfaces
array
The virtual network interfaces for this dynamic route server member.
400 - The last dynamic route server member could not be deleted from the dynamic route
server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified dynamic route server or dynamic route server member could not
be found, or the dynamic route server member is not part of the dynamic route server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a dynamic route server member
GET /dynamic_route_servers/{dynamic_route_server_id}/members/{id}
This request retrieves the specified member that is part of a dynamic route server specified in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.member.read
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.dynamic-route-server.read
Request
Response
200 - The dynamic route server member was retrieved successfully.
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this dynamic route server member:
- `ok`: No abnormal behavior detected
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A member with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` member may also have this state.
href
string
The URL for this dynamic route server member
id
string
The unique identifier for this dynamic route server member
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the dynamic route server member.
name
string
The name for this dynamic route server member. The name is unique across all members in the dynamic route server.
resource_type
string
The resource type
virtual_network_interfaces
array
The virtual network interfaces for this dynamic route server member.
404 - The bound virtual network interface with the specified identifier could not be found
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /dynamic_route_servers/{dynamic_route_server_id}/peer_groups
This request lists the peer groups for a dynamic route server. A peer group is a collection of peers grouped together for applying policies.
The peer groups will be sorted by their `created_at` property values, with the newest peer group first. Peer groups with identical `created_at` property values will in turn be sorted by ascending `name` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.peer-group.listis.dynamic-route-server.peer-group.read
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.peer-group.list
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
sort
string
Sorts the returned collection by the specified property name in ascending order. A `-` may be prepended to the name to sort in descending order. For example, the value `-created_at` sorts the collection by the `created_at` property in descending order, and the value `name` sorts it by the `name` property in ascending order.
Response
200 - The dynamic route server peer groups were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
peer_groups
array
A page of peer groups for the dynamic route server
total_count
integer
The total number of resources across all pages
404 - The specified dynamic route server could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a peer group for a dynamic route server
POST /dynamic_route_servers/{dynamic_route_server_id}/peer_groups
This request creates a new dynamic route server peer group from a dynamic route server peer group prototype object. The prototype object is structured in the same way as a retrieved dynamic route server peer group, and contains the information necessary to create the new dynamic route server peer group.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.peer-group.create
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.peer-group.createis.dynamic-route-server.peer-group-peer.create
Request
Request Body
DynamicRouteServerPeerGroupPrototype
The dynamic route server peer group prototype object
health_monitor
Required *
DynamicRouteServerPeerGroupHealthMonitorPrototype
The health monitoring configuration to use for this dynamic route server peer group.
name
string
The name for this dynamic route server peer group. The name must not be used by another peer group for this dynamic route server. If unspecified, the name will be a hyphenated list of randomly-selected words.
peers
Required *
array
A collection of peers of the same type having a similar network topology grouped together to apply identical policies and maintain consistent behavior.
prefix_watcher
DynamicRouteServerPeerGroupPrefixWatcherPrototype
The prefix watcher configuration to use for monitoring BGP routes in this peer group.
A route is monitored only if:
- It matches at least one entry in `monitored_prefixes`, and
- It does not match any entry in `excluded_prefixes`.
For a route to match a monitored or excluded `prefix`, the route must:
- Be contained within the `prefix`
- Satisfy the `ge` and `le` prefix length constraints:
- If `le` is non-zero: `ge <= route_prefix_length <= le`
- If `le` is zero and `ge` is non-zero: `ge <= route_prefix_length`
- If both `ge` and `le` are zero: No prefix length constraints are applied.
excluded_prefixes
array
The specific prefixes within the `monitored_prefixes` that will not be monitored.
If unspecified, no prefixes will be excluded from `monitored_prefixes`.
monitored_prefixes
array
The IP address prefixes for this prefix watcher to monitor.
If unspecified, no prefixes will be monitored.
roles
Required *
array
The roles to assign to peers in this dynamic route server peer group:
- `next_hop`: The peer will be able to serve as a next hop for routing traffic.
- `router`: The peer will be able to participate in route exchange and route filtering.
state
string
The administrative state to use for this dynamic route server peer group:
- `disabled`: The peer group will be disabled. The dynamic route server members will not establish a BGP session with peers in this peer group.
- `enabled`: The peer group will be enabled. The dynamic route server members will try to establish a BGP session with `enabled` peers in this peer group.
Response
201 - The dynamic route server peer group was created successfully.
created_at
string
The date and time that this dynamic route server peer group was created.
creator
array
The type of resource that created this dynamic route server peer group: - `dynamic_route_server`: dynamic router server created peer group. - `transit_gateway`: transit gateway created peer group.
The enumerated values for this property may expand in the future.
health_monitor
DynamicRouteServerPeerGroupHealthMonitor
The health monitoring configuration used for this dynamic route server peer group.
href
string
The URL for this dynamic route server peer group.
id
string
The ID for this dynamic route server peer group peer
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the dynamic route server peer group.
name
string
The name for this dynamic route server peer group.
peers
array
prefix_watcher
DynamicRouteServerPeerGroupPrefixWatcher
The prefix watcher configuration used for this dynamic route server peer group.
resource_type
string
The resource type
roles
array
The roles assigned to peers in this dynamic route server peer group:
- `next_hop`: The peer can serve as a next hop for routing traffic.
- `router`: The peer can participate in route exchange and route filtering.
The enumerated values for this property may expand in the future.
state
string
The administrative state used for the dynamic route server peer group:
- `disabled`: The peer group is disabled, and the dynamic route server members will not establish a BGP session with peers in this peer group.
- `enabled`: The peer group is enabled, and the dynamic route server members will try to establish a BGP session with peers in this peer group.
status
string
The aggregate session status of the peers in this dynamic route server peer group:
- `degraded`: One or more dynamic route server peer group peers
were unable to establish a session.
- `down`: All dynamic route server peer group peers were unable
to establish a session.
- `initializing`: The dynamic route server peer group is in the process of establishing
sessions with its peers.
- `unknown`: The aggregate session status of the dynamic route server peer group
peers could not be determined.
- `up`: All dynamic route server peer group peers have established
sessions and are operating normally.
status_reasons
array
The reasons for the current dynamic route server peer group connection status (if any).
400 - An invalid dynamic route server peer group prototype object was
provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified dynamic route server could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The dynamic route server peer group prototype object conflicts with another peer
group for the dynamic route server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /dynamic_route_servers/{dynamic_route_server_id}/peer_groups/{dynamic_route_server_peer_group_id}/peers
This request lists the BGP peers in a dynamic route server peer group. For every peer, A BGP session is established between the peer and each member in the dynamic route server.
The peers in a peer group will be sorted by their `created_at` property value, with the newest peer first. Peers with identical `created_at` values will in turn be sorted by ascending `name` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.peer-group-peer.listis.dynamic-route-server.peer-group-peer.read
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.peer-group-peer.list
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The dynamic route server peer group peers were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
peers
array
total_count
integer
The total number of resources across all pages
404 - The specified dynamic route server peer group could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a peer in a dynamic route server peer group
POST /dynamic_route_servers/{dynamic_route_server_id}/peer_groups/{dynamic_route_server_peer_group_id}/peers
This request creates a new peer in a dynamic route server peer group from a dynamic route server peer group peer prototype object. The prototype object is structured in the same way as a retrieved dynamic route server peer group peer, and contains the information necessary to create the new peer. For this request to succeed, there must not already be another peer with the same `endpoint` in any peer group for this dynamic route server.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.peer-group-peer.createis.subnet.subnet.read
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.peer-group-peer.create
Request
Request Body
DynamicRouteServerPeerGroupPeerPrototype
The dynamic route server peer group peer prototype
Response
201 - The dynamic route server peer group peer was created successfully.
created_at
string
The date and time that this dynamic route server peer group peer was created.
creator
string
The type of resource that created this peer: - `dynamic_route_server`: The peer was created by a dynamic router server. - `transit_gateway`: The peer was created by a transit gateway.
The enumerated values for this property may expand in the future.
href
string
The URL for this dynamic route server peer group peer.
id
string
The ID for this dynamic route server peer group peer
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the dynamic route server peer group peer.
name
string
The name for this dynamic route server peer group peer. The name must not be used by another peer in the peer group.
resource_type
string
The resource type
status
string
The status of this dynamic route server peer group peer connection:
- `down`: not operational.
- `up`: operating normally.
status_reasons
array
The status reasons for the dynamic route server peer group peer.
400 - An invalid dynamic route server peer group peer prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The specified peer group does not have a `creator` value of `dynamic_route_server`.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified dynamic route server peer group could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The dynamic route server peer group peer prototype object conflicts with another peer
in a peer group for the dynamic route server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a dynamic route server peer group peer
DELETE /dynamic_route_servers/{dynamic_route_server_id}/peer_groups/{dynamic_route_server_peer_group_id}/peers/{id}
This request deletes a dynamic route server peer group peer. This operation cannot be reversed. All routes that were learned from the peer group peer will be removed. The last peer in a peer group cannot be deleted. To remove the last peer, the peer group has to be deleted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.peer-group-peer.delete
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.peer-group-peer.delete
Request
Path Parameters
Query Parameters
Response
202 - The dynamic route server peer group peer deletion request was accepted.
created_at
string
The date and time that this dynamic route server peer group peer was created.
creator
string
The type of resource that created this peer: - `dynamic_route_server`: The peer was created by a dynamic router server. - `transit_gateway`: The peer was created by a transit gateway.
The enumerated values for this property may expand in the future.
href
string
The URL for this dynamic route server peer group peer.
id
string
The ID for this dynamic route server peer group peer
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the dynamic route server peer group peer.
name
string
The name for this dynamic route server peer group peer. The name must not be used by another peer in the peer group.
resource_type
string
The resource type
status
string
The status of this dynamic route server peer group peer connection:
- `down`: not operational.
- `up`: operating normally.
status_reasons
array
The status reasons for the dynamic route server peer group peer.
400 - The dynamic route server peer group peer deletion object specifies one or
more of:
- The dynamic route server peer group `creator` is not `dynamic_route_server`.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The specified peer group does not have a `creator` value of `dynamic_route_server`.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A dynamic route server peer with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The dynamic route server peer group peer deletion object specifies one or
more of:
- The dynamic route server peer group peer is the last peer in the peer group.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the dynamic
route server peer group peer.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a dynamic route server peer group peer
GET /dynamic_route_servers/{dynamic_route_server_id}/peer_groups/{dynamic_route_server_peer_group_id}/peers/{id}
This request retrieves a single dynamic route server peer group peer specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.peer-group-peer.read
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.peer-group-peer.read
Request
Response
200 - The dynamic route server peer group peer was retrieved successfully.
created_at
string
The date and time that this dynamic route server peer group peer was created.
creator
string
The type of resource that created this peer: - `dynamic_route_server`: The peer was created by a dynamic router server. - `transit_gateway`: The peer was created by a transit gateway.
The enumerated values for this property may expand in the future.
href
string
The URL for this dynamic route server peer group peer.
id
string
The ID for this dynamic route server peer group peer
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the dynamic route server peer group peer.
name
string
The name for this dynamic route server peer group peer. The name must not be used by another peer in the peer group.
resource_type
string
The resource type
status
string
The status of this dynamic route server peer group peer connection:
- `down`: not operational.
- `up`: operating normally.
status_reasons
array
The status reasons for the dynamic route server peer group peer.
404 - A dynamic route server peer group peer with the specified identifier
could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
PATCH /dynamic_route_servers/{dynamic_route_server_id}/peer_groups/{dynamic_route_server_peer_group_id}/peers/{id}
This request updates a peer in a dynamic route server peer group with the information in a provided dynamic route server peer group peer patch. The patch object is structured in the same way as a retrieved dynamic route server peer group peer and contains only the information to be updated.
Only peers with a `creator` value of `dynamic_route_server` are allowed to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.peer-group-peer.update
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.peer-group-peer.update
Request
Request Body
The dynamic route server peer group peer patch
Path Parameters
Query Parameters
Response
200 - The dynamic route server peer group peer was updated successfully.
created_at
string
The date and time that this dynamic route server peer group peer was created.
creator
string
The type of resource that created this peer: - `dynamic_route_server`: The peer was created by a dynamic router server. - `transit_gateway`: The peer was created by a transit gateway.
The enumerated values for this property may expand in the future.
href
string
The URL for this dynamic route server peer group peer.
id
string
The ID for this dynamic route server peer group peer
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the dynamic route server peer group peer.
name
string
The name for this dynamic route server peer group peer. The name must not be used by another peer in the peer group.
resource_type
string
The resource type
status
string
The status of this dynamic route server peer group peer connection:
- `down`: not operational.
- `up`: operating normally.
status_reasons
array
The status reasons for the dynamic route server peer group peer.
400 - An invalid dynamic route server peer group peer patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The specified peer group does not have a `creator` value of `dynamic_route_server`.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A dynamic route server peer group peer with the specified identifier could
not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The dynamic route server peer group peer patch object conflicts with another
dynamic route server peer group peer in the dynamic route server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /dynamic_route_servers/{dynamic_route_server_id}/peer_groups/{dynamic_route_server_peer_group_id}/policies
This request lists policies for a dynamic route server peer group.
A policy defines actions the dynamic route server will take for peers in the peer group.
Each policy has a `type` which determines whether the policy is used for advertising custom routes, learned routes or VPC address prefixes, or for updating VPC routing tables.
The policies will be sorted by ascending `created_at` property values. Policies with identical `created_at` property values will in turn be sorted by ascending `name` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.peer-group-policy.listis.dynamic-route-server.peer-group-policy.read
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.peer-group-policy.list
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
sort
string
Sorts the returned collection by the specified property name in ascending order. A `-` may be prepended to the name to sort in descending order. For example, the value `-created_at` sorts the collection by the `created_at` property in descending order, and the value `name` sorts it by the `name` property in ascending order.
Response
200 - The dynamic route server peer group policies were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
policies
array
A page of policies for the dynamic route server
total_count
integer
The total number of resources across all pages
404 - The specified dynamic route server could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a policy for a dynamic route server peer group
POST /dynamic_route_servers/{dynamic_route_server_id}/peer_groups/{dynamic_route_server_peer_group_id}/policies
This request creates a new dynamic route server peer group policy.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.peer-group-policy.createis.vpc.routing-table.update
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.peer-group-policy.createis.vpc.routing-table-route.create
Request
Request Body
DynamicRouteServerPeerGroupPolicyPrototype
The dynamic route server peer group policy prototype object
name
string
The name for this peer group policy. The name must not be used by another peer group policy. Names starting with ibm- are reserved for ibm managed policies, and are not allowed. If unspecified, the name will be a hyphenated list of randomly-selected words.
state
string
The administrative state to use for this dynamic route server peer group policy:
- `disabled`: The peer group policy will be disabled. The policy will not be applied until it is subsequently enabled.
- `enabled`: The peer group policy will be enabled and applied.
type
Required *
string
The type to use for this peer group policy:
- `custom_routes`: A policy to use for custom routes. The custom routes will be advertised to other peer groups based on the policies configured.
- `learned_routes`: A policy to use for learned routes. Learned routes will be advertised to other peer groups based on the policies configured.
- `vpc_address_prefixes`: A policy to use for VPC address prefixes. The VPC address prefixes will be advertised to other peer groups based on the policies configured.
- `vpc_routing_tables`: A policy to use for updating VPC routing tables.
Response
201 - The dynamic route server peer group policy was created successfully.
created_at
string
The date and time that the peer group policy was created or last updated.
href
string
The URL for this dynamic route server peer group policy.
id
string
The unique identifier for this dynamic route server peer group policy
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the dynamic route server peer group policy.
name
string
The name for this dynamic route server peer group policy. The name must not be used by another peer group policy. Names starting with ibm- are reserved for ibm managed policies, and are not allowed. If unspecified, the name will be a hyphenated list of randomly-selected words.
resource_type
string
The resource type
state
string
The state used for this dynamic route server peer group policy:
- `disabled`: The peer group policy is disabled, and dynamic route server will not apply the configured policy rules.
- `enabled`: The peer group policy is enabled, and dynamic route server will apply the configured policy rules.
The enumerated values for this property may expand in the future.
type
string
The type of dynamic route server peer group policy:
- `custom_routes`: A policy used for custom routes. The custom routes are advertised to other peer groups based on the policies configured.
- `learned_routes`: A policy used for learned routes. Learned routes are advertised to other peer groups based on the policies configured.
- `vpc_address_prefixes`: A policy used for advertising VPC address prefixes. The VPC address prefixes are advertised to other peer groups based on the policies configured.
- `vpc_routing_tables`: A policy used for updating VPC routing tables.
The enumerated values for this property may expand in the future.
400 - An invalid dynamic route server peer group policy prototype object was
provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified dynamic route server peer group could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The dynamic route server peer group policy prototype object conflicts with another
policy for the peer group.
errors
array
The errors that occurred.
trace
string
The unique error identifier
DELETE /dynamic_route_servers/{dynamic_route_server_id}/peer_groups/{dynamic_route_server_peer_group_id}/policies/{id}
This request deletes a dynamic route server peer group policy. This operation cannot be reversed.
A delete operation automatically stops advertising any custom routes, learned routes or VPC address prefixes, and removes any routes that were added to VPC routing tables by the policy.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.peer-group-policy.delete
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.peer-group-policy.delete
Request
Path Parameters
Query Parameters
Response
202 - The dynamic route server peer group policy deletion request was accepted.
created_at
string
The date and time that the peer group policy was created or last updated.
href
string
The URL for this dynamic route server peer group policy.
id
string
The unique identifier for this dynamic route server peer group policy
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the dynamic route server peer group policy.
name
string
The name for this dynamic route server peer group policy. The name must not be used by another peer group policy. Names starting with ibm- are reserved for ibm managed policies, and are not allowed. If unspecified, the name will be a hyphenated list of randomly-selected words.
resource_type
string
The resource type
state
string
The state used for this dynamic route server peer group policy:
- `disabled`: The peer group policy is disabled, and dynamic route server will not apply the configured policy rules.
- `enabled`: The peer group policy is enabled, and dynamic route server will apply the configured policy rules.
The enumerated values for this property may expand in the future.
type
string
The type of dynamic route server peer group policy:
- `custom_routes`: A policy used for custom routes. The custom routes are advertised to other peer groups based on the policies configured.
- `learned_routes`: A policy used for learned routes. Learned routes are advertised to other peer groups based on the policies configured.
- `vpc_address_prefixes`: A policy used for advertising VPC address prefixes. The VPC address prefixes are advertised to other peer groups based on the policies configured.
- `vpc_routing_tables`: A policy used for updating VPC routing tables.
The enumerated values for this property may expand in the future.
404 - The specified dynamic route server peer group policy could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the
dynamic route server peer group policy.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a dynamic route server peer group policy
GET /dynamic_route_servers/{dynamic_route_server_id}/peer_groups/{dynamic_route_server_peer_group_id}/policies/{id}
This request retrieves a single dynamic route server peer group policy specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.peer-group-policy.read
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.peer-group-policy.read
Request
Response
200 - The dynamic route server peer group policy was retrieved successfully.
created_at
string
The date and time that the peer group policy was created or last updated.
href
string
The URL for this dynamic route server peer group policy.
id
string
The unique identifier for this dynamic route server peer group policy
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the dynamic route server peer group policy.
name
string
The name for this dynamic route server peer group policy. The name must not be used by another peer group policy. Names starting with ibm- are reserved for ibm managed policies, and are not allowed. If unspecified, the name will be a hyphenated list of randomly-selected words.
resource_type
string
The resource type
state
string
The state used for this dynamic route server peer group policy:
- `disabled`: The peer group policy is disabled, and dynamic route server will not apply the configured policy rules.
- `enabled`: The peer group policy is enabled, and dynamic route server will apply the configured policy rules.
The enumerated values for this property may expand in the future.
type
string
The type of dynamic route server peer group policy:
- `custom_routes`: A policy used for custom routes. The custom routes are advertised to other peer groups based on the policies configured.
- `learned_routes`: A policy used for learned routes. Learned routes are advertised to other peer groups based on the policies configured.
- `vpc_address_prefixes`: A policy used for advertising VPC address prefixes. The VPC address prefixes are advertised to other peer groups based on the policies configured.
- `vpc_routing_tables`: A policy used for updating VPC routing tables.
The enumerated values for this property may expand in the future.
404 - A dynamic route server peer group policy with the specified identifier
could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a dynamic route server peer group policy
PATCH /dynamic_route_servers/{dynamic_route_server_id}/peer_groups/{dynamic_route_server_peer_group_id}/policies/{id}
This request updates a peer group policy with the information provided in a peer group policy patch object. The policy patch object is structured in the same way as a retrieved peer group policy and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.peer-group-policy.update
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.peer-group-policy.update
Request
Request Body
The dynamic route server peer group policy patch
Path Parameters
Query Parameters
Response
200 - The dynamic route server peer group policy was updated successfully.
created_at
string
The date and time that the peer group policy was created or last updated.
href
string
The URL for this dynamic route server peer group policy.
id
string
The unique identifier for this dynamic route server peer group policy
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the dynamic route server peer group policy.
name
string
The name for this dynamic route server peer group policy. The name must not be used by another peer group policy. Names starting with ibm- are reserved for ibm managed policies, and are not allowed. If unspecified, the name will be a hyphenated list of randomly-selected words.
resource_type
string
The resource type
state
string
The state used for this dynamic route server peer group policy:
- `disabled`: The peer group policy is disabled, and dynamic route server will not apply the configured policy rules.
- `enabled`: The peer group policy is enabled, and dynamic route server will apply the configured policy rules.
The enumerated values for this property may expand in the future.
type
string
The type of dynamic route server peer group policy:
- `custom_routes`: A policy used for custom routes. The custom routes are advertised to other peer groups based on the policies configured.
- `learned_routes`: A policy used for learned routes. Learned routes are advertised to other peer groups based on the policies configured.
- `vpc_address_prefixes`: A policy used for advertising VPC address prefixes. The VPC address prefixes are advertised to other peer groups based on the policies configured.
- `vpc_routing_tables`: A policy used for updating VPC routing tables.
The enumerated values for this property may expand in the future.
400 - An invalid dynamic route server peer group policy patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A dynamic route server peer group policy with the specified identifier could not be
found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The dynamic route server peer group policy patch conflicts with another policy for
the dynamic route server peer group.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value
of the dynamic route server peer group policy.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a dynamic route server peer group
DELETE /dynamic_route_servers/{dynamic_route_server_id}/peer_groups/{id}
This request deletes a dynamic route server peer group. This operation cannot be reversed. All routes that were learned from the peer group will be removed. All peers in the peer group and all policies for the peer group will be deleted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.peer-group.delete
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.peer-group.deleteis.dynamic-route-server.peer-group-policy.deleteis.dynamic-route-server.peer-group-peer.delete
Request
Path Parameters
Query Parameters
Response
202 - The dynamic route server peer group deletion request was accepted.
created_at
string
The date and time that this dynamic route server peer group was created.
creator
array
The type of resource that created this dynamic route server peer group: - `dynamic_route_server`: dynamic router server created peer group. - `transit_gateway`: transit gateway created peer group.
The enumerated values for this property may expand in the future.
health_monitor
DynamicRouteServerPeerGroupHealthMonitor
The health monitoring configuration used for this dynamic route server peer group.
href
string
The URL for this dynamic route server peer group.
id
string
The ID for this dynamic route server peer group peer
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the dynamic route server peer group.
name
string
The name for this dynamic route server peer group.
peers
array
prefix_watcher
DynamicRouteServerPeerGroupPrefixWatcher
The prefix watcher configuration used for this dynamic route server peer group.
resource_type
string
The resource type
roles
array
The roles assigned to peers in this dynamic route server peer group:
- `next_hop`: The peer can serve as a next hop for routing traffic.
- `router`: The peer can participate in route exchange and route filtering.
The enumerated values for this property may expand in the future.
state
string
The administrative state used for the dynamic route server peer group:
- `disabled`: The peer group is disabled, and the dynamic route server members will not establish a BGP session with peers in this peer group.
- `enabled`: The peer group is enabled, and the dynamic route server members will try to establish a BGP session with peers in this peer group.
status
string
The aggregate session status of the peers in this dynamic route server peer group:
- `degraded`: One or more dynamic route server peer group peers
were unable to establish a session.
- `down`: All dynamic route server peer group peers were unable
to establish a session.
- `initializing`: The dynamic route server peer group is in the process of establishing
sessions with its peers.
- `unknown`: The aggregate session status of the dynamic route server peer group
peers could not be determined.
- `up`: All dynamic route server peer group peers have established
sessions and are operating normally.
status_reasons
array
The reasons for the current dynamic route server peer group connection status (if any).
403 - The specified peer group does not have a `creator` value of `dynamic_route_server`.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A dynamic route server peer group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the dynamic
route server peer group.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a dynamic route server peer group
GET /dynamic_route_servers/{dynamic_route_server_id}/peer_groups/{id}
This request retrieves a single dynamic route server peer group specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.peer-group.read
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.peer-group.read
Request
Response
200 - The dynamic route server peer group was retrieved successfully.
created_at
string
The date and time that this dynamic route server peer group was created.
creator
array
The type of resource that created this dynamic route server peer group: - `dynamic_route_server`: dynamic router server created peer group. - `transit_gateway`: transit gateway created peer group.
The enumerated values for this property may expand in the future.
health_monitor
DynamicRouteServerPeerGroupHealthMonitor
The health monitoring configuration used for this dynamic route server peer group.
href
string
The URL for this dynamic route server peer group.
id
string
The ID for this dynamic route server peer group peer
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the dynamic route server peer group.
name
string
The name for this dynamic route server peer group.
peers
array
prefix_watcher
DynamicRouteServerPeerGroupPrefixWatcher
The prefix watcher configuration used for this dynamic route server peer group.
resource_type
string
The resource type
roles
array
The roles assigned to peers in this dynamic route server peer group:
- `next_hop`: The peer can serve as a next hop for routing traffic.
- `router`: The peer can participate in route exchange and route filtering.
The enumerated values for this property may expand in the future.
state
string
The administrative state used for the dynamic route server peer group:
- `disabled`: The peer group is disabled, and the dynamic route server members will not establish a BGP session with peers in this peer group.
- `enabled`: The peer group is enabled, and the dynamic route server members will try to establish a BGP session with peers in this peer group.
status
string
The aggregate session status of the peers in this dynamic route server peer group:
- `degraded`: One or more dynamic route server peer group peers
were unable to establish a session.
- `down`: All dynamic route server peer group peers were unable
to establish a session.
- `initializing`: The dynamic route server peer group is in the process of establishing
sessions with its peers.
- `unknown`: The aggregate session status of the dynamic route server peer group
peers could not be determined.
- `up`: All dynamic route server peer group peers have established
sessions and are operating normally.
status_reasons
array
The reasons for the current dynamic route server peer group connection status (if any).
404 - A dynamic route server peer group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
PATCH /dynamic_route_servers/{dynamic_route_server_id}/peer_groups/{id}
This request updates a peer group with the information provided in a peer group patch object. The patch object is structure in the same way as a retrieved peer group and contains only the information to be updated.
Only peer groups with a `creator` value of `dynamic_route_server` are allowed to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.peer-group.update
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.peer-group.update
Request
Request Body
The dynamic route server peer group patch
Path Parameters
Query Parameters
Response
200 - The dynamic route server peer group was updated successfully.
created_at
string
The date and time that this dynamic route server peer group was created.
creator
array
The type of resource that created this dynamic route server peer group: - `dynamic_route_server`: dynamic router server created peer group. - `transit_gateway`: transit gateway created peer group.
The enumerated values for this property may expand in the future.
health_monitor
DynamicRouteServerPeerGroupHealthMonitor
The health monitoring configuration used for this dynamic route server peer group.
href
string
The URL for this dynamic route server peer group.
id
string
The ID for this dynamic route server peer group peer
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the dynamic route server peer group.
name
string
The name for this dynamic route server peer group.
peers
array
prefix_watcher
DynamicRouteServerPeerGroupPrefixWatcher
The prefix watcher configuration used for this dynamic route server peer group.
resource_type
string
The resource type
roles
array
The roles assigned to peers in this dynamic route server peer group:
- `next_hop`: The peer can serve as a next hop for routing traffic.
- `router`: The peer can participate in route exchange and route filtering.
The enumerated values for this property may expand in the future.
state
string
The administrative state used for the dynamic route server peer group:
- `disabled`: The peer group is disabled, and the dynamic route server members will not establish a BGP session with peers in this peer group.
- `enabled`: The peer group is enabled, and the dynamic route server members will try to establish a BGP session with peers in this peer group.
status
string
The aggregate session status of the peers in this dynamic route server peer group:
- `degraded`: One or more dynamic route server peer group peers
were unable to establish a session.
- `down`: All dynamic route server peer group peers were unable
to establish a session.
- `initializing`: The dynamic route server peer group is in the process of establishing
sessions with its peers.
- `unknown`: The aggregate session status of the dynamic route server peer group
peers could not be determined.
- `up`: All dynamic route server peer group peers have established
sessions and are operating normally.
status_reasons
array
The reasons for the current dynamic route server peer group connection status (if any).
400 - An invalid dynamic route server peer group patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The specified peer group does not have a `creator` value of `dynamic_route_server`.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A dynamic route server peer group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The dynamic route server peer group patch object conflicts with another
dynamic route server peer group for the dynamic route server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the dynamic
route server peer.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /dynamic_route_servers/{dynamic_route_server_id}/static_routes
This request lists the static routes for a dynamic route server. A static route is user-created and not dynamically learned by the dynamic route server. The dynamic route server adds each static route to the VPC routing tables specified in the static route's `routing_tables`.
The static routes will be sorted by their `created_at` property values, with the newest static routes first. Static routes with identical `created_at` values will in turn be sorted by ascending `destination` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.static-route.listis.dynamic-route-server.static-route.read
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.static-route.listis.vpc.routing-table-route.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
sort
string
Sorts the returned collection by the specified property name in ascending order. A `-` may be prepended to the name to sort in descending order. For example, the value `-created_at` sorts the collection by the `created_at` property in descending order, and the value `name` sorts it by the `name` property in ascending order.
Response
200 - The dynamic route server static routes were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
static_routes
array
A page of static routes for the dynamic route server
total_count
integer
The total number of resources across all pages
404 - The specified dynamic route server could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a static route for a dynamic route server
POST /dynamic_route_servers/{dynamic_route_server_id}/static_routes
This request creates a new dynamic route server static route from a dynamic route server static route prototype object. The prototype object is structured in the same way as a retrieved dynamic route server static route, and contains the information necessary to create the new dynamic route server static route.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.static-route.create
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.static-route.createis.vpc.routing-table-route.create
Request
Request Body
DynamicRouteServerStaticRoutePrototype
The dynamic route server static route prototype object
destination
Required *
object
The destination CIDR of the route. The host identifier in the CIDR must be zero.
name
string
The name for this static route. The name must not be used by another static route for this dynamic route server. If unspecified, the name will be a hyphenated list of randomly-selected words.
next_hops
Required *
array
The next hop resources.
route_delete_delay
integer
The number of seconds to wait before deleting a route from `routing_tables` when the `status` of the route's associated peer is `down`.
routing_tables
Required *
array
The routing tables to update.
A route will be added to each routing table for each peer in the `next_hops` resource. Each route will use its associated peer's `endpoint.address` for the route's `next_hop`, and:
- For ingress routing tables, the route's `priority` will use the peer's `priority`.
- For egress routing tables, the route's `priority` will be determined by Zone priority rules.
Response
201 - The dynamic route server static route was created successfully.
added_routes
array
The routes added to the VPC routing tables for this dynamic route server static route.
destination
object
The destination CIDR of the route. The host identifier in the CIDR must be zero.
At most two routes per `zone` in a VPC routing table can have the same `destination` and `priority`, and only if both routes have an `action` of `deliver` and the `next_hop` is an IP address.
href
string
The URL for this dynamic route server static routes
id
string
The unique identifier for this dynamic route server static routes.
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the static route.
name
string
The name for this static route. The name must not be used by another static route for this dynamic route server. Names starting with ibm- are reserved for ibm managed policies, and are not allowed. If unspecified, the name will be a hyphenated list of randomly-selected words.
next_hops
array
The next hop resources.
resource_type
string
The resource type
route_delete_delay
integer
The number of seconds to wait before deleting a route from `routing_tables` when the `status` of the route's associated peer is `down`.
routing_tables
array
The routing tables to update.
A route is added to each routing table for each peer in the `next_hop` resource. Each route uses its associated peer's `endpoint.address` for the route's `next_hop`, and:
- For ingress routing tables, the route's `priority` uses the peer's `priority`.
- For egress routing tables, the route's `priority` is determined by Zone priority rules.
400 - An invalid dynamic route server static route prototype object was
provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified dynamic route server could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The dynamic route server static route prototype object conflicts with another static
route for the dynamic route server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a dynamic route server static route
DELETE /dynamic_route_servers/{dynamic_route_server_id}/static_routes/{id}
This request deletes a dynamic route server static route. This operation cannot be reversed. The route will be removed from the VPC routing tables specified in the static route's `routing tables`.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.static-route.delete
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.static-route.delete
Request
Path Parameters
Query Parameters
Response
202 - The dynamic route server static route was deleted successfully.
added_routes
array
The routes added to the VPC routing tables for this dynamic route server static route.
destination
object
The destination CIDR of the route. The host identifier in the CIDR must be zero.
At most two routes per `zone` in a VPC routing table can have the same `destination` and `priority`, and only if both routes have an `action` of `deliver` and the `next_hop` is an IP address.
href
string
The URL for this dynamic route server static routes
id
string
The unique identifier for this dynamic route server static routes.
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the static route.
name
string
The name for this static route. The name must not be used by another static route for this dynamic route server. Names starting with ibm- are reserved for ibm managed policies, and are not allowed. If unspecified, the name will be a hyphenated list of randomly-selected words.
next_hops
array
The next hop resources.
resource_type
string
The resource type
route_delete_delay
integer
The number of seconds to wait before deleting a route from `routing_tables` when the `status` of the route's associated peer is `down`.
routing_tables
array
The routing tables to update.
A route is added to each routing table for each peer in the `next_hop` resource. Each route uses its associated peer's `endpoint.address` for the route's `next_hop`, and:
- For ingress routing tables, the route's `priority` uses the peer's `priority`.
- For egress routing tables, the route's `priority` is determined by Zone priority rules.
404 - A dynamic route server static route with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the dynamic
route server static route.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a dynamic route server static route
GET /dynamic_route_servers/{dynamic_route_server_id}/static_routes/{id}
This request retrieves a single dynamic route server static route specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.static-route.read
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.static-route.readis.vpc.routing-table-route.read
Request
Response
200 - The dynamic route server static route was retrieved successfully.
added_routes
array
The routes added to the VPC routing tables for this dynamic route server static route.
destination
object
The destination CIDR of the route. The host identifier in the CIDR must be zero.
At most two routes per `zone` in a VPC routing table can have the same `destination` and `priority`, and only if both routes have an `action` of `deliver` and the `next_hop` is an IP address.
href
string
The URL for this dynamic route server static routes
id
string
The unique identifier for this dynamic route server static routes.
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the static route.
name
string
The name for this static route. The name must not be used by another static route for this dynamic route server. Names starting with ibm- are reserved for ibm managed policies, and are not allowed. If unspecified, the name will be a hyphenated list of randomly-selected words.
next_hops
array
The next hop resources.
resource_type
string
The resource type
route_delete_delay
integer
The number of seconds to wait before deleting a route from `routing_tables` when the `status` of the route's associated peer is `down`.
routing_tables
array
The routing tables to update.
A route is added to each routing table for each peer in the `next_hop` resource. Each route uses its associated peer's `endpoint.address` for the route's `next_hop`, and:
- For ingress routing tables, the route's `priority` uses the peer's `priority`.
- For egress routing tables, the route's `priority` is determined by Zone priority rules.
404 - A dynamic route server static route with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update dynamic route server static route
PATCH /dynamic_route_servers/{dynamic_route_server_id}/static_routes/{id}
This request updates a static route with the information provided in a static route patch object. The static route patch object is structured in the same way as a retrieved static route and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.static-route.update
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.static-route.updateis.vpc.routing-table-route.update
Request
Request Body
The dynamic route server static route patch.
Path Parameters
Query Parameters
Response
200 - The dynamic route server static route was updated successfully.
added_routes
array
The routes added to the VPC routing tables for this dynamic route server static route.
destination
object
The destination CIDR of the route. The host identifier in the CIDR must be zero.
At most two routes per `zone` in a VPC routing table can have the same `destination` and `priority`, and only if both routes have an `action` of `deliver` and the `next_hop` is an IP address.
href
string
The URL for this dynamic route server static routes
id
string
The unique identifier for this dynamic route server static routes.
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the static route.
name
string
The name for this static route. The name must not be used by another static route for this dynamic route server. Names starting with ibm- are reserved for ibm managed policies, and are not allowed. If unspecified, the name will be a hyphenated list of randomly-selected words.
next_hops
array
The next hop resources.
resource_type
string
The resource type
route_delete_delay
integer
The number of seconds to wait before deleting a route from `routing_tables` when the `status` of the route's associated peer is `down`.
routing_tables
array
The routing tables to update.
A route is added to each routing table for each peer in the `next_hop` resource. Each route uses its associated peer's `endpoint.address` for the route's `next_hop`, and:
- For ingress routing tables, the route's `priority` uses the peer's `priority`.
- For egress routing tables, the route's `priority` is determined by Zone priority rules.
400 - An invalid dynamic route server static route patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified dynamic route server static route could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The dynamic route server static route patch conflicts with another static route for
the dynamic route server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
DELETE /dynamic_route_servers/{id}
This request deletes a dynamic route server. This operation cannot be reversed. For this request to succeed, the dynamic route server must not have any peer groups, static routes.
Virtual network interfaces that were bound to the dynamic route server will be released if their `auto_delete` property is set to true.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.dynamic-route-server.deleteis.vpc.vpc.operateis.virtual-network-interface.virtual-network-interface.operateis.subnet.subnet.operateis.security-group.security-group.operate
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.dynamic-route-server.deleteis.dynamic-route-server.member.deleteis.dynamic-route-server.member.detachis.subnet.reserved-ip.detachis.subnet.reserved-ip.deleteis.subnet.subnet.updateis.security-group.security-group.detachis.virtual-network-interface.virtual-network-interface.detachis.virtual-network-interface.virtual-network-interface.delete
Request
Path Parameters
Query Parameters
Response
202 - The dynamic route server deletion request was accepted.
created_at
string
The date and time that the dynamic route server was created.
crn
string
The CRN for this dynamic route server
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this dynamic route server
id
object
The unique identifier for this dynamic route server
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the dynamic route server.
local_asn
integer
The local autonomous system number (ASN) used for this dynamic route server and its connections.
members
array
name
string
The name for this dynamic route server. The name is unique across all dynamic route servers in the region.
resource_group
object
The resource group for this dynamic route server
resource_type
string
The resource type
vpc
object
The VPC this dynamic route server resides in.
404 - A dynamic route server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The dynamic route server deletion object specifies one or more of:
- The dynamic route server is in use and cannot be deleted.
- The dynamic route server cannot be deleted while it is being created.
- The dynamic route server has one or more associated peer groups which need to be deleted first.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a dynamic route server
GET /dynamic_route_servers/{id}
This request retrieves a single dynamic route server specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.dynamic-route-server.read
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.dynamic-route-server.read
Request
Response
200 - The dynamic route server was retrieved successfully.
created_at
string
The date and time that the dynamic route server was created.
crn
string
The CRN for this dynamic route server
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this dynamic route server
id
object
The unique identifier for this dynamic route server
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the dynamic route server.
local_asn
integer
The local autonomous system number (ASN) used for this dynamic route server and its connections.
members
array
name
string
The name for this dynamic route server. The name is unique across all dynamic route servers in the region.
resource_group
object
The resource group for this dynamic route server
resource_type
string
The resource type
vpc
object
The VPC this dynamic route server resides in.
404 - A dynamic route server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a dynamic route server
PATCH /dynamic_route_servers/{id}
This request updates a dynamic route server with the information provided in a dynamic route server patch object. The dynamic route server patch object is structured in the same way as a retrieved dynamic route server and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.dynamic-route-server.dynamic-route-server.update
Auditing
Calling this method generates the following auditing event.
is.dynamic-route-server.dynamic-route-server.update
Request
Request Body
The dynamic route server patch
Path Parameters
Query Parameters
Response
200 - The dynamic route server was updated successfully.
created_at
string
The date and time that the dynamic route server was created.
crn
string
The CRN for this dynamic route server
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this dynamic route server
id
object
The unique identifier for this dynamic route server
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the dynamic route server.
local_asn
integer
The local autonomous system number (ASN) used for this dynamic route server and its connections.
members
array
name
string
The name for this dynamic route server. The name is unique across all dynamic route servers in the region.
resource_group
object
The resource group for this dynamic route server
resource_type
string
The resource type
vpc
object
The VPC this dynamic route server resides in.
400 - An invalid dynamic route server patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A VPC with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The dynamic route server patch object specifies one or more of:
- The dynamic route server cannot be updated while it is being deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /endpoint_gateways
This request lists endpoint gateways in the region. An endpoint gateway maps one or more reserved IPs in a VPC to a target outside the VPC.
The endpoint gateways will be sorted by their `created_at` property values, with newest endpoint gateway first. Endpoint gateways with identical `created_at` property values will in turn be sorted by ascending `name` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.endpoint-gateway.endpoint-gateway.listis.endpoint-gateway.endpoint-gateway.read
Auditing
Calling this method generates the following auditing event.
is.endpoint-gateway.endpoint-gateway.list
Request
Path Parameters
Query Parameters
name
string
Filters the collection to resources with a `name` property matching the exact specified name.
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
lifecycle_state
array
Filters the collection to resources with a `lifecycle_state` property matching one of the specified comma-separated values.
vpc.id
Filters the collection to resources with a `vpc.id` property matching the specified identifier.
vpc.crn
string
Filters the collection to resources with a `vpc.crn` property matching the specified CRN.
vpc.name
string
Filters the collection to resources with a `vpc.name` property matching the exact specified name.
dns_resolution_binding_mode
array
Filters the collection to endpoint gateways with a `dns_resolution_binding_mode` property matching one of the specified comma-separated values.
Response
200 - The endpoint gateways were retrieved successfully.
endpoint_gateways
array
A page of endpoint gateways
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
Create an endpoint gateway
POST /endpoint_gateways
This request creates a new endpoint gateway from an endpoint gateway prototype object. The prototype object is structured in the same way as a retrieved endpoint gateway, and contains the information necessary to create a new endpoint gateway. An endpoint gateway maps one or more reserved IPs in a VPC to a target service outside the VPC.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.endpoint-gateway.endpoint-gateway.createis.vpc.vpc.operateis.subnet.subnet.updateis.subnet.subnet.operateis.security-group.security-group.operate
Auditing
Calling this method generates the following auditing event.
is.endpoint-gateway.endpoint-gateway.createis.endpoint-gateway.endpoint-gateway.attachis.subnet.reserved-ip.createis.subnet.reserved-ip.attachis.security-group.security-group.attachis.private-path-service-gateway.endpoint-gateway-binding.create
Request
Request Body
EndpointGatewayPrototype
The endpoint gateway prototype
dns_resolution_binding_mode
string
The DNS resolution binding mode to use for this endpoint gateway:
-
`disabled`: The endpoint gateway will not participate in DNS sharing for VPE gateways with other VPCs in a connected topology.
-
`primary`: The endpoint gateway will participate in [DNS sharing for VPE gateways] (/docs/vpc?topic=vpc-vpe-dns-sharing) if the VPC this endpoint gateway resides in has a DNS resolution binding to another VPC. If the VPC this endpoint gateway resides in has a DNS resolution binding to another VPC, then no other VPC in the topology can have an endpoint gateway with the same `target` as this endpoint gateway.
-
`per_resource_binding`: The endpoint gateway will participate in DNS sharing for VPE gateways if the VPC this endpoint gateway resides in has a DNS resolution binding to another VPC. Resource binding must be enabled for the `target` service.
The VPC this endpoint gateway resides in must have `dns.enable_hub` set to `false`.
If the VPC this endpoint gateway resides in has DNS resolution binding to another VPC, the other VPC must:
- have `dns.enable_hub` set to `true`
- contain an endpoint gateway for the same `target` service with `dns_resolution_binding_mode` set to `primary`
ips
array
The reserved IPs to bind to this endpoint gateway. At most one reserved IP per zone is allowed.
name
string
The name for this endpoint gateway. The name must not be used by another endpoint gateway in the VPC. If unspecified, the name will be a hyphenated list of randomly-selected words.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
security_groups
array
The security groups to use for this endpoint gateway. If unspecified, the VPC's default security group is used.
target
Required *
EndpointGatewayTargetPrototype
The target to use for this endpoint gateway. The target:
- Must not already be the target of another endpoint gateway in the VPC
- Must not have a service endpoint that overlaps with any `service_endpoints` of another endpoint gateway in the VPC.
If `dns_resolution_binding_mode` is set to `primary`, then there must not be another endpoint gateway in the DNS sharing connected topology that:
- Has the same `target` as this endpoint gateway
- Has `service_endpoints` that overlap with the `service_endpoints` for this endpoint gateway.
If `dns_resolution_binding_mode` is set to `per_resource_binding`, then:
- The VPC in the topology with `dns.enable_hub` set to `true` must have an endpoint gateway with the same `target` as this endpoint gateway.
- The VPC in the topology with `dns.enable_hub` set to `true` must have an endpoint gateway with `dns_resolution_binding_mode` set to `primary`.
- No other VPC in the topology can have an endpoint gateway with a resource binding using the same `service_endpoint` as a resource binding for this endpoint gateway.
resource_type
string
The target resource type for this endpoint gateway.
vpc
Required *
object
Identifies a VPC by a unique property.
Response
201 - The endpoint gateway was created successfully.
created_at
string
The date and time that the endpoint gateway was created.
crn
string
The CRN for this endpoint gateway
dns_resolution_binding_mode
string
The DNS resolution binding mode used for this endpoint gateway:
- `disabled`: The endpoint gateway is not participating in DNS sharing for VPE gateways.
- `primary`: The endpoint gateway is participating in [DNS sharing for VPE gateways] (/docs/vpc?topic=vpc-vpe-dns-sharing) if the VPC this endpoint gateway resides in has a DNS resolution binding to another VPC.
- `per_resource_binding`: The endpoint gateway is participating in DNS sharing for VPE gateways if the VPC this endpoint gateway resides in has a DNS resolution binding to another VPC, and resource binding is enabled for the `target` service.
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this endpoint gateway
id
object
The unique identifier for this endpoint gateway
ips
array
The reserved IPs bound to this endpoint gateway.
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the endpoint gateway.
name
string
The name for this endpoint gateway. The name is unique across all endpoint gateways in the VPC.
resource_group
object
The resource group for this endpoint gateway
resource_type
string
The resource type
security_groups
array
The security groups targeting this endpoint gateway.
service_endpoint
string
The fully qualified domain name for the target service. The domain name may have a wildcard prefix.
service_endpoints
array
The fully qualified domain names for the target service. A domain name may have a wildcard prefix.
target
EndpointGatewayTarget
The target for this endpoint gateway.
vpc
object
The VPC this endpoint gateway resides in
400 - An invalid endpoint gateway prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The endpoint gateway prototype object specifies one or more of:
- A reserved IP that is already in use
- A reserved IP prototype object with a subnet with no available IP addresses
- A target with a service endpoint that overlaps with the `service_endpoints` of:
- Another endpoint gateway in the VPC this endpoint gateway resides in
- An endpoint gateway in the DNS sharing connected topology.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List reserved IPs bound to an endpoint gateway
GET /endpoint_gateways/{endpoint_gateway_id}/ips
This request lists reserved IPs bound to an endpoint gateway.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.subnet.subnet.read
Auditing
Calling this method generates the following auditing event.
is.subnet.reserved-ip.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
sort
string
Sorts the returned collection by the specified property name in ascending order. A `-` may be prepended to the name to sort in descending order. For example, the value `-created_at` sorts the collection by the `created_at` property in descending order, and the value `name` sorts it by the `name` property in ascending order.
Response
200 - The bound reserved IPs were retrieved successfully.
first
object
A link to the first page of resources
ips
array
A page of reserved IPs bound to the endpoint gateway
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - An endpoint gateway with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Unbind a reserved IP from an endpoint gateway
DELETE /endpoint_gateways/{endpoint_gateway_id}/ips/{id}
This request unbinds the specified reserved IP from the specified endpoint gateway. If the reserved IP has `auto_delete` set to `true`, the reserved IP will be deleted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.endpoint-gateway.endpoint-gateway.operateis.subnet.subnet.operate
Auditing
Calling this method generates the following auditing event.
is.endpoint-gateway.endpoint-gateway.detachis.subnet.reserved-ip.detachis.subnet.reserved-ip.delete
Request
Response
204 - The reserved IP was successfully unbound from the endpoint gateway.
400 - The reserved IP could not be unbound from the endpoint gateway.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified endpoint gateway or reserved IP could not be found, or the
reserved IP is not bound to the endpoint gateway
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a reserved IP bound to an endpoint gateway
GET /endpoint_gateways/{endpoint_gateway_id}/ips/{id}
This request retrieves the specified reserved IP address if it is bound to the endpoint gateway specified in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.subnet.subnet.read
Auditing
Calling this method generates the following auditing event.
is.subnet.reserved-ip.read
Request
Response
200 - The bound reserved IP was retrieved successfully.
address
object
The IP address.
If the address has not yet been selected, the value will be `0.0.0.0`.
This property may expand to support IPv6 addresses in the future.
auto_delete
boolean
Indicates whether this reserved IP member will be automatically deleted when either `target` is deleted, or the reserved IP is unbound.
created_at
string
The date and time that the reserved IP was created
href
string
The URL for this reserved IP
id
string
The unique identifier for this reserved IP
lifecycle_state
object
The lifecycle state of the reserved IP
name
string
The name for this reserved IP. The name is unique across all reserved IPs in a subnet.
owner
string
The owner of the reserved IP.
The enumerated values for this property may expand in the future.
resource_type
string
The resource type
target
ReservedIPTarget
The target this reserved IP is bound to.
If absent, this reserved IP is provider-owned or unbound.
The resources supported by this property may expand in the future.
404 - The bound reserved IP with the specified identifier could not be found
errors
array
The errors that occurred.
trace
string
The unique error identifier
PUT /endpoint_gateways/{endpoint_gateway_id}/ips/{id}
This request binds the specified reserved IP to the specified endpoint gateway. The reserved IP:
- must currently be unbound, or not required by its target
- must not be in the same zone as any other reserved IP bound to the endpoint gateway
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.endpoint-gateway.endpoint-gateway.operateis.subnet.subnet.operate
Auditing
Calling this method generates the following auditing event.
is.endpoint-gateway.endpoint-gateway.attachis.subnet.reserved-ip.attach
Request
Response
201 - The reserved IP was successfully bound to the endpoint gateway.
address
object
The IP address.
If the address has not yet been selected, the value will be `0.0.0.0`.
This property may expand to support IPv6 addresses in the future.
auto_delete
boolean
Indicates whether this reserved IP member will be automatically deleted when either `target` is deleted, or the reserved IP is unbound.
created_at
string
The date and time that the reserved IP was created
href
string
The URL for this reserved IP
id
string
The unique identifier for this reserved IP
lifecycle_state
object
The lifecycle state of the reserved IP
name
string
The name for this reserved IP. The name is unique across all reserved IPs in a subnet.
owner
string
The owner of the reserved IP.
The enumerated values for this property may expand in the future.
resource_type
string
The resource type
target
ReservedIPTarget
The target this reserved IP is bound to.
If absent, this reserved IP is provider-owned or unbound.
The resources supported by this property may expand in the future.
400 - The specified reserved IP could not be bound to the endpoint gateway.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An endpoint gateway with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /endpoint_gateways/{endpoint_gateway_id}/resource_bindings
This request lists resource bindings for an endpoint gateway. A resource binding is an association between the endpoint gateway and a resource in the endpoint gateway's `target` service. The resource binding provides a fully qualified domain name for the `service_endpoint` to access the resource from the endpoint gateway's VPC.
The resource bindings will be sorted by their `created_at` property values, with newest resource bindings first. Resource bindings with identical `created_at` property values will in turn be sorted by ascending `name` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.endpoint-gateway.resource-binding.list
Auditing
Calling this method generates the following auditing event.
is.endpoint-gateway.resource-binding.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The endpoint gateway resource bindings were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
resource_bindings
array
A page of resource bindings for the endpoint gateway
total_count
integer
The total number of resources across all pages
404 - An endpoint gateway with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a resource binding for an endpoint gateway
POST /endpoint_gateways/{endpoint_gateway_id}/resource_bindings
This request creates a new resource binding for an endpoint gateway from an endpoint gateway resource binding prototype object. The prototype object is structured in the same way as a retrieved endpoint gateway resource binding, and contains the information necessary to create the new resource binding.
For this request to succeed, resource binding must be enabled for this endpoint gateway's `target` service and this endpoint gateway resource binding must not conflict with another resource binding in the DNS sharing connected topology.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.endpoint-gateway.resource-binding.create
Auditing
Calling this method generates the following auditing event.
is.endpoint-gateway.resource-binding.create
Request
Request Body
EndpointGatewayResourceBindingPrototype
The endpoint gateway resource binding prototype object
name
string
The name for this resource binding. The name must not be used by another resource binding for the endpoint gateway. If unspecified, the name will be a hyphenated list of randomly-selected words.
target
Required *
EndpointGatewayResourceBindingTargetPrototype
The target to use for this resource binding.
Response
201 - The endpoint gateway resource binding was created successfully.
created_at
string
The date and time that the resource binding was created.
href
string
The URL for this endpoint gateway resource binding
id
string
The unique identifier for this endpoint gateway resource binding.
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the resource binding.
name
string
The name for this resource binding. The name is unique across all resource bindings for the endpoint gateway.
resource_type
string
The resource type
service_endpoint
string
The fully qualified domain name of the service endpoint for the resource targeted by this resource binding.
target
EndpointGatewayResourceBindingTarget
The target for this endpoint gateway resource binding.
type
string
The type of resource binding:
- `weak`: The binding is not dependent on the existence of the target resource.
The enumerated values for this property may expand in the future.
400 - An invalid endpoint gateway resource binding prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The endpoint gateway resource binding prototype object conflicts with another
resource binding for the endpoint gateway, or it conflicts with another endpoint gateway resource binding in a VPC in the DNS sharing connected topology.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a resource binding from an endpoint gateway
DELETE /endpoint_gateways/{endpoint_gateway_id}/resource_bindings/{id}
This request deletes the specified resource binding from the specified endpoint gateway. This operation cannot be reversed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.endpoint-gateway.resource-binding.delete
Auditing
Calling this method generates the following auditing event.
is.endpoint-gateway.resource-binding.delete
Request
Response
204 - The resource binding was successfully deleted from the endpoint gateway.
404 - An endpoint gateway resource binding with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve an endpoint gateway resource binding
GET /endpoint_gateways/{endpoint_gateway_id}/resource_bindings/{id}
This request retrieves a single endpoint gateway resource binding specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.endpoint-gateway.resource-binding.read
Auditing
Calling this method generates the following auditing event.
is.endpoint-gateway.resource-binding.read
Request
Response
200 - The endpoint gateway resource binding was retrieved successfully.
created_at
string
The date and time that the resource binding was created.
href
string
The URL for this endpoint gateway resource binding
id
string
The unique identifier for this endpoint gateway resource binding.
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the resource binding.
name
string
The name for this resource binding. The name is unique across all resource bindings for the endpoint gateway.
resource_type
string
The resource type
service_endpoint
string
The fully qualified domain name of the service endpoint for the resource targeted by this resource binding.
target
EndpointGatewayResourceBindingTarget
The target for this endpoint gateway resource binding.
type
string
The type of resource binding:
- `weak`: The binding is not dependent on the existence of the target resource.
The enumerated values for this property may expand in the future.
404 - An endpoint gateway resource binding with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update an endpoint gateway resource binding
PATCH /endpoint_gateways/{endpoint_gateway_id}/resource_bindings/{id}
This request updates an endpoint gateway resource binding with the information in a provided endpoint gateway resource binding patch. The endpoint gateway resource binding patch object is structured in the same way as a retrieved endpoint gateway resource binding and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.endpoint-gateway.resource-binding.update
Auditing
Calling this method generates the following auditing event.
is.endpoint-gateway.resource-binding.update
Request
Request Body
The endpoint gateway resource binding patch
Response
200 - The endpoint gateway resource binding was updated successfully.
created_at
string
The date and time that the resource binding was created.
href
string
The URL for this endpoint gateway resource binding
id
string
The unique identifier for this endpoint gateway resource binding.
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the resource binding.
name
string
The name for this resource binding. The name is unique across all resource bindings for the endpoint gateway.
resource_type
string
The resource type
service_endpoint
string
The fully qualified domain name of the service endpoint for the resource targeted by this resource binding.
target
EndpointGatewayResourceBindingTarget
The target for this endpoint gateway resource binding.
type
string
The type of resource binding:
- `weak`: The binding is not dependent on the existence of the target resource.
The enumerated values for this property may expand in the future.
400 - An invalid endpoint gateway resource binding patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An endpoint gateway resource binding with the specified identifier could not be
found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The endpoint gateway resource binding patch conflicts with another resource binding in
the endpoint gateway.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete an endpoint gateway
DELETE /endpoint_gateways/{id}
This request deletes an endpoint gateway. This operation cannot be reversed.
Reserved IPs that were bound to the endpoint gateway will be released if their `auto_delete` property is set to true.
If the VPC this endpoint gateway resides in has `dns.enable_hub` set to `true`, then no other VPC in the DNS sharing topology must contain an endpoint gateway with the same `target` service as this endpoint gateway.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.endpoint-gateway.endpoint-gateway.delete
Auditing
Calling this method generates the following auditing event.
is.endpoint-gateway.endpoint-gateway.deleteis.subnet.reserved-ip.detachis.endpoint-gateway.endpoint-gateway.detachis.subnet.reserved-ip.deleteis.security-group.security-group.detachis.private-path-service-gateway.endpoint-gateway-binding.delete
Request
Response
204 - The endpoint gateway was deleted successfully.
404 - An endpoint gateway with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The endpoint gateway cannot be deleted because it is required by another endpoint
gateway in a VPC in the DNS sharing connected topology.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve an endpoint gateway
GET /endpoint_gateways/{id}
This request retrieves a single endpoint gateway specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.endpoint-gateway.endpoint-gateway.read
Auditing
Calling this method generates the following auditing event.
is.endpoint-gateway.endpoint-gateway.read
Request
Response
200 - The endpoint gateway was retrieved successfully.
created_at
string
The date and time that the endpoint gateway was created.
crn
string
The CRN for this endpoint gateway
dns_resolution_binding_mode
string
The DNS resolution binding mode used for this endpoint gateway:
- `disabled`: The endpoint gateway is not participating in DNS sharing for VPE gateways.
- `primary`: The endpoint gateway is participating in [DNS sharing for VPE gateways] (/docs/vpc?topic=vpc-vpe-dns-sharing) if the VPC this endpoint gateway resides in has a DNS resolution binding to another VPC.
- `per_resource_binding`: The endpoint gateway is participating in DNS sharing for VPE gateways if the VPC this endpoint gateway resides in has a DNS resolution binding to another VPC, and resource binding is enabled for the `target` service.
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this endpoint gateway
id
object
The unique identifier for this endpoint gateway
ips
array
The reserved IPs bound to this endpoint gateway.
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the endpoint gateway.
name
string
The name for this endpoint gateway. The name is unique across all endpoint gateways in the VPC.
resource_group
object
The resource group for this endpoint gateway
resource_type
string
The resource type
security_groups
array
The security groups targeting this endpoint gateway.
service_endpoint
string
The fully qualified domain name for the target service. The domain name may have a wildcard prefix.
service_endpoints
array
The fully qualified domain names for the target service. A domain name may have a wildcard prefix.
target
EndpointGatewayTarget
The target for this endpoint gateway.
vpc
object
The VPC this endpoint gateway resides in
404 - An endpoint gateway with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update an endpoint gateway
PATCH /endpoint_gateways/{id}
This request updates an endpoint gateway with the information in a provided endpoint gateway patch. The endpoint gateway patch object is structured in the same way as a retrieved endpoint gateway and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.endpoint-gateway.endpoint-gateway.update
Auditing
Calling this method generates the following auditing event.
is.endpoint-gateway.endpoint-gateway.update
Request
Request Body
The endpoint gateway patch
Response
200 - The endpoint gateway was updated successfully.
created_at
string
The date and time that the endpoint gateway was created.
crn
string
The CRN for this endpoint gateway
dns_resolution_binding_mode
string
The DNS resolution binding mode used for this endpoint gateway:
- `disabled`: The endpoint gateway is not participating in DNS sharing for VPE gateways.
- `primary`: The endpoint gateway is participating in [DNS sharing for VPE gateways] (/docs/vpc?topic=vpc-vpe-dns-sharing) if the VPC this endpoint gateway resides in has a DNS resolution binding to another VPC.
- `per_resource_binding`: The endpoint gateway is participating in DNS sharing for VPE gateways if the VPC this endpoint gateway resides in has a DNS resolution binding to another VPC, and resource binding is enabled for the `target` service.
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this endpoint gateway
id
object
The unique identifier for this endpoint gateway
ips
array
The reserved IPs bound to this endpoint gateway.
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the endpoint gateway.
name
string
The name for this endpoint gateway. The name is unique across all endpoint gateways in the VPC.
resource_group
object
The resource group for this endpoint gateway
resource_type
string
The resource type
security_groups
array
The security groups targeting this endpoint gateway.
service_endpoint
string
The fully qualified domain name for the target service. The domain name may have a wildcard prefix.
service_endpoints
array
The fully qualified domain names for the target service. A domain name may have a wildcard prefix.
target
EndpointGatewayTarget
The target for this endpoint gateway.
vpc
object
The VPC this endpoint gateway resides in
400 - An invalid endpoint gateway patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A VPC with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The endpoint gateway patch object specified a `dns_resolution_binding_mode` value
that conflicts with the `dns.enable_hub` value of the VPC this endpoint gateway resides in, or would result in a configuration that conflicts with an endpoint gateway in a VPC in the DNS sharing connected topology.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List floating IP profiles
GET /floating_ip/profiles
This request lists floating IP profiles available in the region. A floating IP profile specifies the characteristics and capabilities for a floating IP.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The floating IP profiles were retrieved successfully
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
profiles
array
A page of floating IP profiles
total_count
integer
The total number of resources across all pages
Retrieve a floating IP profile
GET /floating_ip/profiles/{name}
This request retrieves a single floating IP profile specified by the name in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
Request
Path Parameters
name
Required *
string
The floating IP profile name
Query Parameters
Response
200 - The floating IP profile was retrieved successfully
family
string
The product family this floating IP profile belongs to.
- `provider`: The floating IP with this profile is owned by the provider.
- `user`: The floating IP with this profile is owned by the user.
The enumerated values for this property may expand in the future.
href
string
The URL for this floating IP profile
ip_version
string
The IP version for floating IPs with this profile:
- `ipv4`: An IPv4 floating IP.
The enumerated values for this property may expand in the future.
name
string
The globally unique name for this floating IP profile
resource_type
string
The resource type
404 - A floating IP profile with the specified name could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List floating IPs
GET /floating_ips
This request lists floating IPs in the region. Floating IPs allow inbound and outbound traffic from the Internet to an instance.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.floating-ip.floating-ip.listis.floating-ip.floating-ip.read
Auditing
Calling this method generates the following auditing event.
is.floating-ip.floating-ip.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
sort
string
Sorts the returned collection by the specified property name in ascending order. A `-` may be prepended to the name to sort in descending order. For example, the value `-created_at` sorts the collection by the `created_at` property in descending order, and the value `name` sorts it by the `name` property in ascending order.
profile.name
string
Filter the collection based on profile name
target.id
Filters the collection to resources with a `target.id` property matching the specified identifier.
target.crn
string
Filters the collection to resources with a `target.crn` property matching the specified CRN.
target.name
string
Filters the collection to resources with a `target.name` property matching the exact specified name.
target.resource_type
Filters the collection to resources with a `target.resource_type` property matching the specified value.
Response
200 - The floating IPs were retrieved successfully.
first
object
A link to the first page of resources
floating_ips
array
A page of floating IPs
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
Reserve a floating IP
POST /floating_ips
This request reserves a new floating IP.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.floating-ip.floating-ip.createis.bare-metal-server.bare-metal-server.operateis.instance.instance.operateis.virtual-network-interface.virtual-network-interface.operateis.public-address-range-authorized-cidr.authorized-cidr.operate
Auditing
Calling this method generates the following auditing event.
is.floating-ip.floating-ip.createis.floating-ip.floating-ip.attachis.instance.network-interface.attachis.bare-metal-server.network-interface.attachis.virtual-network-interface.virtual-network-interface.attachis.public-address-range-authorized-cidr.authorized-cidr.update
Request
Request Body
FloatingIPPrototype
The floating IP prototype object
address
object
The address for this floating IP. Required if neither `target` nor `zone` is specified.
The address must be an unallocated address in a public address range authorized CIDR.
If the authorized CIDR's `availability_mode` is `regional`, then `target` or `zone` is required.
If the authorized CIDR's `availability_mode` is `zonal`, then the floating IP and its `target` (if any) must reside in the same zone as the authorized CIDR.
If unspecified, a random address will be selected from IBM's public IP address pool for the zone.
name
string
The name for this floating IP. The name must not be used by another floating IP in the region. If unspecified, the name will be a hyphenated list of randomly-selected words.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
target
FloatingIPTargetPrototype
The target resource to bind this floating IP to. Required if neither `address` nor `zone` is specified.
The target resource must not already have a floating IP bound to it if the target resource is:
- an instance network interface
- a bare metal server network interface with `enable_infrastructure_nat` set to `true`
- a virtual network interface with `enable_infrastructure_nat` set to `true`
If `address` is specified and the floating IP will be allocated from a public address range authorized CIDR, the target cannot be:
- an instance network interface
- a bare metal server network interface
If `address` is specified and the floating IP will be allocated from a public address range authorized CIDR with an `availability_mode` value of `zonal`, the target must reside in the same `zone` as the authorized CIDR.
zone
object
The zone this floating IP will reside in.
Required if:
- neither `address` nor `target` is specified
- `address` is specified and the floating IP will be allocated from a public address range authorized CIDR with an `availability_mode` value of `regional`.
If `address` is specified and the floating IP will be allocated from a public address range authorized CIDR with an `availability_mode` value of `zonal`:
- the floating IP will reside in the same `zone` as the authorized CIDR
- if `target` is specified, the target resource must reside in the same `zone` as the authorized CIDR.
Response
201 - The floating IP was reserved successfully.
address
string
The globally unique IP address
authorized_cidr
object
The public address range authorized CIDR this floating IP is allocated from.
created_at
string
The date and time that the floating IP was created
crn
string
The CRN for this floating IP
href
string
The URL for this floating IP
id
string
The unique identifier for this floating IP
name
string
The name for this floating IP. The name is unique across all floating IPs in the region.
profile
object
The profile for this floating IP.
resource_group
object
The resource group for this floating IP
resource_type
string
The resource type
status
string
The status of the floating IP.
The enumerated values for this property may expand in the future.
target
FloatingIPTarget
The target of this floating IP
zone
object
The zone this floating IP resides in
400 - An invalid floating IP prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The floating IP prototype object conflicts with another floating IP in the
region, or the specified target already has a floating IP bound to it.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a floating IP
DELETE /floating_ips/{id}
This request disassociates (if associated) and releases a floating IP. This operation cannot be reversed. For this request to succeed, the floating IP must not be required by another resource, such as a public gateway.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.floating-ip.floating-ip.deleteis.public-address-range-authorized-cidr.authorized-cidr.operate
Auditing
Calling this method generates the following auditing event.
is.floating-ip.floating-ip.deleteis.floating-ip.floating-ip.detachis.bare-metal-server.network-interface.detachis.instance.network-interface.detachis.virtual-network-interface.virtual-network-interface.detachis.public-address-range-authorized-cidr.authorized-cidr.update
Request
Response
204 - The floating IP was deleted successfully.
404 - The specified floating IP could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The floating IP is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a floating IP
GET /floating_ips/{id}
This request retrieves a single floating IP specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.floating-ip.floating-ip.read
Auditing
Calling this method generates the following auditing event.
is.floating-ip.floating-ip.read
Request
Response
200 - The floating IP was retrieved successfully.
address
string
The globally unique IP address
authorized_cidr
object
The public address range authorized CIDR this floating IP is allocated from.
created_at
string
The date and time that the floating IP was created
crn
string
The CRN for this floating IP
href
string
The URL for this floating IP
id
string
The unique identifier for this floating IP
name
string
The name for this floating IP. The name is unique across all floating IPs in the region.
profile
object
The profile for this floating IP.
resource_group
object
The resource group for this floating IP
resource_type
string
The resource type
status
string
The status of the floating IP.
The enumerated values for this property may expand in the future.
target
FloatingIPTarget
The target of this floating IP
zone
object
The zone this floating IP resides in
404 - The specified floating IP could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a floating IP
PATCH /floating_ips/{id}
This request updates a floating IP's name and/or target.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.floating-ip.floating-ip.updateis.floating-ip.floating-ip.operateis.bare-metal-server.bare-metal-server.operateis.instance.instance.operateis.virtual-network-interface.virtual-network-interface.operate
Auditing
Calling this method generates the following auditing event.
is.floating-ip.floating-ip.updateis.floating-ip.floating-ip.attachis.floating-ip.floating-ip.detachis.bare-metal-server.network-interface.attachis.bare-metal-server.network-interface.detachis.instance.network-interface.attachis.instance.network-interface.detachis.virtual-network-interface.virtual-network-interface.attachis.virtual-network-interface.virtual-network-interface.detach
Request
Request Body
The floating IP patch
Response
200 - The floating IP was updated successfully.
address
string
The globally unique IP address
authorized_cidr
object
The public address range authorized CIDR this floating IP is allocated from.
created_at
string
The date and time that the floating IP was created
crn
string
The CRN for this floating IP
href
string
The URL for this floating IP
id
string
The unique identifier for this floating IP
name
string
The name for this floating IP. The name is unique across all floating IPs in the region.
profile
object
The profile for this floating IP.
resource_group
object
The resource group for this floating IP
resource_type
string
The resource type
status
string
The status of the floating IP.
The enumerated values for this property may expand in the future.
target
FloatingIPTarget
The target of this floating IP
zone
object
The zone this floating IP resides in
400 - An invalid floating IP patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A floating IP with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The floating IP is required by another resource, or the specified target already
has a floating IP bound to it.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List flow log collectors
GET /flow_log_collectors
This request lists flow log collectors in the region. A flow log collector summarizes TCP and UDP data sent over the instance network interfaces and instance network attachments contained within its target. The collected flow logs are written to a cloud object storage bucket, where they can be viewed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.flow-log-collector.flow-log-collector.read
Auditing
Calling this method generates the following auditing event.
is.flow-log-collector.flow-log-collector.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
name
string
Filters the collection to resources with a `name` property matching the exact specified name.
vpc.id
Filters the collection to resources with a `vpc.id` property matching the specified identifier.
vpc.crn
string
Filters the collection to resources with a `vpc.crn` property matching the specified CRN.
vpc.name
string
Filters the collection to resources with a `vpc.name` property matching the exact specified name.
target.id
Filters the collection to resources with a `target.id` property matching the specified identifier.
target.resource_type
Filters the collection to resources with a `target.resource_type` property matching the specified value.
Response
200 - The flow log collectors were retrieved successfully.
first
object
A link to the first page of resources
flow_log_collectors
array
A page of flow log collectors
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
Create a flow log collector
POST /flow_log_collectors
This request creates and starts a new flow log collector from a flow log collector prototype object. The prototype object is structured in the same way as a retrieved flow log collector, and contains the information necessary to create and start the new flow log collector.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.flow-log-collector.flow-log-collector.createis.vpc.vpc.operateis.subnet.subnet.operateis.instance.instance.operate
Auditing
Calling this method generates the following auditing event.
is.flow-log-collector.flow-log-collector.createis.flow-log-collector.flow-log-collector.attachis.instance.instance.attachis.instance.network-attachment.attachis.instance.network-interface.attachis.subnet.subnet.attachis.virtual-network-interface.virtual-network-interface.attachis.vpc.vpc.attach
Request
Request Body
FlowLogCollectorPrototype
The flow log collector prototype object
active
boolean
Indicates whether this collector will be active upon creation.
name
string
The name for this flow log collector. The name must not be used by another flow log collector in the VPC. If unspecified, the name will be a hyphenated list of randomly-selected words.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
storage_bucket
Required *
object
Identifies a Cloud Object Storage bucket by a unique property.
target
Required *
FlowLogCollectorTargetPrototype
The target this collector will collect flow logs for.
If the target is an instance, subnet, or VPC, flow logs will not be collected for any instance network attachments, virtual network interfaces or instance network interfaces within the target that are themselves the target of a more specific flow log collector.
For this request to succeed, the target must:
- not be a virtual network interface that is attached to a bare metal server network attachment or to a file share mount target
- not already be the target of another flow log collector.
Response
201 - The flow log collector was created successfully.
active
boolean
Indicates whether this collector is active.
auto_delete
boolean
Indicates whether this flow log collector will be automatically deleted when `target` is deleted. At present, this is always `true`, but may be modifiable in the future.
created_at
string
The date and time that the flow log collector was created
crn
string
The CRN for this flow log collector
href
string
The URL for this flow log collector
id
string
The unique identifier for this flow log collector
lifecycle_state
object
The lifecycle state of the flow log collector
name
string
The name for this flow log collector. The name is unique across all flow log collectors in the VPC.
resource_group
object
The resource group for this flow log collector
storage_bucket
object
The Cloud Object Storage bucket where the collected flows are logged. For more information, see Viewing flow log objects.
target
FlowLogCollectorTarget
The target this collector is collecting flow logs for.
- If the target is an instance network attachment, flow logs will be collected for that instance network attachment.
- If the target is an instance network interface, flow logs will be collected for that instance network interface.
- If the target is a virtual network interface, flow logs will be collected for the virtual network interface's `target` resource if the resource is an instance network attachment, unless the target resource is itself the target of a flow log collector.
- If the target is a virtual server instance, flow logs will be collected for all network attachments or network interfaces on that instance.
- If the target is a subnet, flow logs will be collected for all instance network interfaces and virtual network interfaces attached to that subnet.
- If the target is a VPC, flow logs will be collected for all instance network interfaces and virtual network interfaces attached to all subnets within that VPC.
If the target is an instance, subnet, or VPC, flow logs will not be collected for any instance network attachments or instance network interfaces within the target that are themselves the target of a more specific flow log collector.
vpc
object
The VPC this flow log collector resides in
400 - An invalid flow log collector prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The flow log collector prototype object conflicts with another flow log collector
in the VPC, or the specified target is in use by another flow log collector.
errors
array
The errors that occurred.
trace
string
The unique error identifier
DELETE /flow_log_collectors/{id}
This request stops and deletes a flow log collector. This operation cannot be reversed.
Collected flow logs remain available within the flow log collector's Cloud Object Storage bucket.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.flow-log-collector.flow-log-collector.delete
Auditing
Calling this method generates the following auditing event.
is.flow-log-collector.flow-log-collector.deleteis.flow-log-collector.flow-log-collector.detachis.instance.instance.detachis.instance.network-interface.detachis.instance.network-attachment.detachis.subnet.subnet.detachis.virtual-network-interface.virtual-network-interface.detachis.vpc.vpc.detach
Request
Response
204 - The flow log collector was deleted successfully.
404 - The specified flow log collector could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a flow log collector
GET /flow_log_collectors/{id}
This request retrieves a single flow log collector specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.flow-log-collector.flow-log-collector.read
Auditing
Calling this method generates the following auditing event.
is.flow-log-collector.flow-log-collector.read
Request
Response
200 - The flow log collector was retrieved successfully.
active
boolean
Indicates whether this collector is active.
auto_delete
boolean
Indicates whether this flow log collector will be automatically deleted when `target` is deleted. At present, this is always `true`, but may be modifiable in the future.
created_at
string
The date and time that the flow log collector was created
crn
string
The CRN for this flow log collector
href
string
The URL for this flow log collector
id
string
The unique identifier for this flow log collector
lifecycle_state
object
The lifecycle state of the flow log collector
name
string
The name for this flow log collector. The name is unique across all flow log collectors in the VPC.
resource_group
object
The resource group for this flow log collector
storage_bucket
object
The Cloud Object Storage bucket where the collected flows are logged. For more information, see Viewing flow log objects.
target
FlowLogCollectorTarget
The target this collector is collecting flow logs for.
- If the target is an instance network attachment, flow logs will be collected for that instance network attachment.
- If the target is an instance network interface, flow logs will be collected for that instance network interface.
- If the target is a virtual network interface, flow logs will be collected for the virtual network interface's `target` resource if the resource is an instance network attachment, unless the target resource is itself the target of a flow log collector.
- If the target is a virtual server instance, flow logs will be collected for all network attachments or network interfaces on that instance.
- If the target is a subnet, flow logs will be collected for all instance network interfaces and virtual network interfaces attached to that subnet.
- If the target is a VPC, flow logs will be collected for all instance network interfaces and virtual network interfaces attached to all subnets within that VPC.
If the target is an instance, subnet, or VPC, flow logs will not be collected for any instance network attachments or instance network interfaces within the target that are themselves the target of a more specific flow log collector.
vpc
object
The VPC this flow log collector resides in
404 - The specified flow log collector could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a flow log collector
PATCH /flow_log_collectors/{id}
This request updates a flow log collector with the information in a provided flow log collector patch. The flow log collector patch object is structured in the same way as a retrieved flow log collector and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.flow-log-collector.flow-log-collector.update
Auditing
Calling this method generates the following auditing event.
is.flow-log-collector.flow-log-collector.update
Request
Request Body
The flow log collector patch
Response
200 - The flow log collector was updated successfully.
active
boolean
Indicates whether this collector is active.
auto_delete
boolean
Indicates whether this flow log collector will be automatically deleted when `target` is deleted. At present, this is always `true`, but may be modifiable in the future.
created_at
string
The date and time that the flow log collector was created
crn
string
The CRN for this flow log collector
href
string
The URL for this flow log collector
id
string
The unique identifier for this flow log collector
lifecycle_state
object
The lifecycle state of the flow log collector
name
string
The name for this flow log collector. The name is unique across all flow log collectors in the VPC.
resource_group
object
The resource group for this flow log collector
storage_bucket
object
The Cloud Object Storage bucket where the collected flows are logged. For more information, see Viewing flow log objects.
target
FlowLogCollectorTarget
The target this collector is collecting flow logs for.
- If the target is an instance network attachment, flow logs will be collected for that instance network attachment.
- If the target is an instance network interface, flow logs will be collected for that instance network interface.
- If the target is a virtual network interface, flow logs will be collected for the virtual network interface's `target` resource if the resource is an instance network attachment, unless the target resource is itself the target of a flow log collector.
- If the target is a virtual server instance, flow logs will be collected for all network attachments or network interfaces on that instance.
- If the target is a subnet, flow logs will be collected for all instance network interfaces and virtual network interfaces attached to that subnet.
- If the target is a VPC, flow logs will be collected for all instance network interfaces and virtual network interfaces attached to all subnets within that VPC.
If the target is an instance, subnet, or VPC, flow logs will not be collected for any instance network attachments or instance network interfaces within the target that are themselves the target of a more specific flow log collector.
vpc
object
The VPC this flow log collector resides in
400 - An invalid flow log collector patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A flow log collector with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The flow log collector patch conflicts with another flow log collector in the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List IKE policies
GET /ike_policies
This request lists IKE policies in the region.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.list
Auditing
Calling this method generates the following auditing event.
is.vpn.ike-policy.list
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The IKE policies were retrieved successfully.
first
object
A link to the first page of resources
ike_policies
array
A page of IKE policies
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
Create an IKE policy
POST /ike_policies
This request creates a new IKE policy.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.create
Auditing
Calling this method generates the following auditing event.
is.vpn.ike-policy.create
Request
Request Body
IKEPolicyPrototype
The IKE policy prototype object.
authentication_algorithm
string
The authentication algorithm.
`authentication_algorithm` has been deprecated. Use `authentication_algorithms` instead.
If specified, `authentication_algorithms` must not be specified.
authentication_algorithms
array
The authentication algorithms to use for IKE Negotiation.
If specified, `authentication_algorithm` must not be specified.
If the IKE policy's `ike_version` is `1`, this array must contain exactly one algorithm.
The order of the algorithms in this array indicates their priority for negotiation, with each algorithm having priority over the one after it.
dh_group
integer
The Diffie-Hellman group.
`dh_group` has been deprecated. Use `dh_groups` instead.
If specified, `dh_groups` must not be specified.
dh_groups
array
The Diffie-Hellman groups to use for IKE negotiation.
If specified, `dh_group` must not be specified.
If the IKE policy's `ike_version` is `1`, this array must contain exactly one algorithm.
The order of the Diffie-Hellman groups in this array indicates their priority for negotiation, with each Diffie-Hellman group having priority over the one after it.
encryption_algorithm
string
The encryption algorithm.
`encryption_algorithm` has been deprecated. Use `encryption_algorithms` instead.
If specified, `encryption_algorithms` must not be specified.
encryption_algorithms
array
The encryption algorithms to use for IKE Negotiation.
If specified, `encryption_algorithm` must not be specified.
If the IKE policy's `ike_version` is `1`, this array must contain exactly one algorithm.
The order of the algorithms in this array indicates their priority for negotiation, with each algorithm having priority over the one after it.
ike_version
Required *
integer
The IKE protocol version
key_lifetime
integer
The key lifetime in seconds
name
string
The name for this IKE policy. The name must not be used by another IKE policy in the region. If unspecified, the name will be a hyphenated list of randomly-selected words.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
Response
201 - The IKE policy was created successfully.
authentication_algorithm
string
The authentication algorithm.
The `md5` and `sha1` algorithms have been deprecated.
The enumerated values for this property may expand in the future.
If `multiple`, the policy supports more than one authentication algorithm. Use the `authentication_algorithms` property to retrieve all supported algorithms.
authentication_algorithms
array
The authentication algorithms to use for IKE Negotiation.
The order of the algorithms in this array indicates their priority for negotiation, with each algorithm having priority over the one after it.
connections
array
The VPN gateway connections that use this IKE policy.
created_at
string
The date and time that this IKE policy was created
dh_group
integer
The Diffie-Hellman group
Groups `2` and `5` have been deprecated.
If `65535`, the policy supports more than one Diffie-Hellman group. Use the `dh_groups` property to retrieve all supported Diffie-Hellman groups.
dh_groups
array
The Diffie-Hellman groups to use for IKE negotiation.
The order of the Diffie-Hellman groups in this array indicates their priority for negotiation, with each Diffie-Hellman group having priority over the one after it.
encryption_algorithm
string
The encryption algorithm.
If `multiple`, the policy supports more than one encryption algorithm. Use the `encryption_algorithms` property to retrieve all supported algorithms.
The `triple_des` algorithm has been deprecated.
The enumerated values for this property may expand in the future.
encryption_algorithms
array
The encryption algorithms to use for IKE Negotiation.
The order of the algorithms in this array indicates their priority for negotiation, with each algorithm having priority over the one after it.
href
string
The URL for this IKE policy
id
string
The unique identifier for this IKE policy
ike_version
integer
The IKE protocol version
key_lifetime
integer
The key lifetime in seconds
name
string
The name for this IKE policy. The name is unique across all IKE policies in the region.
negotiation_mode
string
The IKE negotiation mode.
The enumerated values for this property may expand in the future.
resource_group
object
The resource group for this IKE policy
resource_type
string
The resource type
400 - An invalid IKE policy prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The IKE policy prototype object conflicts with another IKE policy in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete an IKE policy
DELETE /ike_policies/{id}
This request deletes an IKE policy. This operation cannot be reversed. For this request to succeed, there must not be any VPN gateway connections using this policy.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.delete
Auditing
Calling this method generates the following auditing event.
is.vpn.ike-policy.delete
Request
Response
204 - The IKE policy was deleted successfully.
404 - An IKE policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The IKE policy is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve an IKE policy
GET /ike_policies/{id}
This request retrieves a single IKE policy specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.read
Auditing
Calling this method generates the following auditing event.
is.vpn.ike-policy.read
Request
Response
200 - The IKE policy was retrieved successfully.
authentication_algorithm
string
The authentication algorithm.
The `md5` and `sha1` algorithms have been deprecated.
The enumerated values for this property may expand in the future.
If `multiple`, the policy supports more than one authentication algorithm. Use the `authentication_algorithms` property to retrieve all supported algorithms.
authentication_algorithms
array
The authentication algorithms to use for IKE Negotiation.
The order of the algorithms in this array indicates their priority for negotiation, with each algorithm having priority over the one after it.
connections
array
The VPN gateway connections that use this IKE policy.
created_at
string
The date and time that this IKE policy was created
dh_group
integer
The Diffie-Hellman group
Groups `2` and `5` have been deprecated.
If `65535`, the policy supports more than one Diffie-Hellman group. Use the `dh_groups` property to retrieve all supported Diffie-Hellman groups.
dh_groups
array
The Diffie-Hellman groups to use for IKE negotiation.
The order of the Diffie-Hellman groups in this array indicates their priority for negotiation, with each Diffie-Hellman group having priority over the one after it.
encryption_algorithm
string
The encryption algorithm.
If `multiple`, the policy supports more than one encryption algorithm. Use the `encryption_algorithms` property to retrieve all supported algorithms.
The `triple_des` algorithm has been deprecated.
The enumerated values for this property may expand in the future.
encryption_algorithms
array
The encryption algorithms to use for IKE Negotiation.
The order of the algorithms in this array indicates their priority for negotiation, with each algorithm having priority over the one after it.
href
string
The URL for this IKE policy
id
string
The unique identifier for this IKE policy
ike_version
integer
The IKE protocol version
key_lifetime
integer
The key lifetime in seconds
name
string
The name for this IKE policy. The name is unique across all IKE policies in the region.
negotiation_mode
string
The IKE negotiation mode.
The enumerated values for this property may expand in the future.
resource_group
object
The resource group for this IKE policy
resource_type
string
The resource type
404 - An IKE policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update an IKE policy
PATCH /ike_policies/{id}
This request updates the properties of an existing IKE policy.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.update
Auditing
Calling this method generates the following auditing event.
is.vpn.ike-policy.update
Request
Request Body
The IKE policy patch.
Response
200 - The IKE policy was updated successfully.
authentication_algorithm
string
The authentication algorithm.
The `md5` and `sha1` algorithms have been deprecated.
The enumerated values for this property may expand in the future.
If `multiple`, the policy supports more than one authentication algorithm. Use the `authentication_algorithms` property to retrieve all supported algorithms.
authentication_algorithms
array
The authentication algorithms to use for IKE Negotiation.
The order of the algorithms in this array indicates their priority for negotiation, with each algorithm having priority over the one after it.
connections
array
The VPN gateway connections that use this IKE policy.
created_at
string
The date and time that this IKE policy was created
dh_group
integer
The Diffie-Hellman group
Groups `2` and `5` have been deprecated.
If `65535`, the policy supports more than one Diffie-Hellman group. Use the `dh_groups` property to retrieve all supported Diffie-Hellman groups.
dh_groups
array
The Diffie-Hellman groups to use for IKE negotiation.
The order of the Diffie-Hellman groups in this array indicates their priority for negotiation, with each Diffie-Hellman group having priority over the one after it.
encryption_algorithm
string
The encryption algorithm.
If `multiple`, the policy supports more than one encryption algorithm. Use the `encryption_algorithms` property to retrieve all supported algorithms.
The `triple_des` algorithm has been deprecated.
The enumerated values for this property may expand in the future.
encryption_algorithms
array
The encryption algorithms to use for IKE Negotiation.
The order of the algorithms in this array indicates their priority for negotiation, with each algorithm having priority over the one after it.
href
string
The URL for this IKE policy
id
string
The unique identifier for this IKE policy
ike_version
integer
The IKE protocol version
key_lifetime
integer
The key lifetime in seconds
name
string
The name for this IKE policy. The name is unique across all IKE policies in the region.
negotiation_mode
string
The IKE negotiation mode.
The enumerated values for this property may expand in the future.
resource_group
object
The resource group for this IKE policy
resource_type
string
The resource type
400 - An invalid IKE policy patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An IKE policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The IKE policy patch conflicts with another IKE policy in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List VPN gateway connections that use a specified IKE policy
GET /ike_policies/{id}/connections
This request lists VPN gateway connections that use an IKE policy
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.readis.vpn.vpn.list
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-connection.list
Request
Path Parameters
id
Required *
The IKE policy identifier
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The VPN gateway connections were retrieved successfully.
connections
array
A page of VPN gateway connections that use the IKE policy specified by the identifier in the URL
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - An IKE policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List images
GET /images
This request lists images available in the region. An image provides source data for a volume. Images are either system-provided, or created from another source, such as importing from Cloud Object Storage.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.image.image.listis.image.image.read
Auditing
Calling this method generates the following auditing event.
is.image.image.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
name
string
Filters the collection to resources with a `name` property matching the exact specified name.
status
array
Filters the collection to images with a `status` property matching one of the specified comma-separated values.
visibility
Filters the collection to images with a `visibility` property matching the specified value.
user_data_format
array
Filters the collection to images with a `user_data_format` property matching one of the specified comma-separated values.
remote.account.id
Filters the collection to images with a `remote.account.id` property matching the specified account identifier.
This parameter also supports the values null and not:null which filter the collection to resources which have no remote account identifier or any remote account identifier, respectively.
Response
200 - The images were retrieved successfully
first
object
A link to the first page of resources
images
array
A page of images
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
Create an image
POST /images
This request creates a new image from an image prototype object. The prototype object is structured in the same way as a retrieved image, and contains the information necessary to create the new image. If an image is being imported, a URL to the image file on object storage must be specified. If an image is being created from an existing volume, that volume must be specified.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.image.image.createis.image.image.deprecateis.image.image.obsoleteis.volume.volume.operateis.instance.instance.operateis.image.image.manage-allowed-use
Auditing
Calling this method generates the following auditing event.
is.image.image.create
Request
Request Body
ImagePrototype
The image prototype object
allowed_use
object
The usage constraints to match against the requested instance or bare metal server properties to determine compatibility.
api_version
string
The API version with which to evaluate the expressions.
If specified, the value must be between `2019-01-01` and today's date (in UTC). If unspecified, the `version` query parameter value will be used.
bare_metal_server
string
The expression that must be satisfied by the properties of a bare metal server provisioned using this image.
If unspecified, the expression will be set to `true`.
The expression follows Common Expression Language, but does not support built-in functions and macros. In addition, the following variable is supported, corresponding to the `BareMetalServer` property:
- `enable_secure_boot` (boolean): Whether secure boot is enabled
instance
string
The expression that must be satisfied by the properties of a virtual server instance provisioned using this image.
If unspecified, the expression will be set to `true`.
The expression follows Common Expression Language, but does not support built-in functions and macros. In addition, the following variables are supported, corresponding to `Instance` properties:
- `enable_secure_boot` (boolean): Whether secure boot is enabled
- `gpu.count` (integer): The number of GPUs
- `gpu.manufacturer` (string): The GPU manufacturer
- `gpu.memory` (integer): The overall amount of GPU memory in GiB (gibibytes)
- `gpu.model` (string): The GPU model
- `metadata_service.enabled` (boolean): Whether the metadata service is enabled
- `metadata_service.protocol` (string): The communication protocol used for the metadata service endpoint.
- `vcpu.count` (integer): The number of virtual CPUs
deprecation_at
string
The deprecation date and time to set for this image.
The date and time must not be in the past, and must be earlier than `obsolescence_at` (if `obsolescence_at` is set).
If unspecified, no deprecation date and time will be set.
If the deprecation date and time is reached while the image has a status of `pending`, the image's status will transition to `deprecated` upon its successful creation (or `obsolete` if the obsolescence date and time was also reached).
name
string
The name for this image. The name must not be used by another image in the region. Names starting with `ibm-` are reserved for system-provided images, and are not allowed. If unspecified, the name will be a hyphenated list of randomly-selected words.
obsolescence_at
string
The obsolescence date and time to set for this image.
The date and time must not be in the past, and must be later than `deprecation_at` (if `deprecation_at` is set).
If unspecified, no obsolescence date and time will be set.
If the obsolescence date and time is reached while the image has a status of `pending`, the image's status will transition to `obsolete` upon its successful creation.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
Response
201 - The image was created successfully
allowed_use
object
The usage constraints to match against the requested instance or bare metal server properties to determine compatibility.
catalog_offering
ImageCatalogOffering
created_at
string
The date and time that the image was created
crn
string
The CRN for this image
deprecation_at
string
The deprecation date and time (UTC) for this image.
If absent, no deprecation date and time has been set.
encryption
string
The type of encryption used on the image
encryption_key
object
The key that will be used to encrypt volumes created from this image (unless an alternate `encryption_key` is specified at volume creation).
This property will be present for images with an `encryption` type of `user_managed`.
file
object
The metadata for the imported image file.
href
string
The URL for this image
id
string
The unique identifier for this image
minimum_provisioned_size
integer
The minimum size (in gigabytes) of a volume onto which this image may be provisioned.
This property may be absent if the image has a `status` of `pending` or `failed`.
name
string
The name for this image. The name is unique across all images in the region.
obsolescence_at
string
The obsolescence date and time (UTC) for this image.
If absent, no obsolescence date and time has been set.
operating_system
object
The operating system included in this image
remote
ImageRemote
If present, this property indicates that the resource associated with this reference is remote and therefore may not be directly retrievable.
resource_group
object
The resource group for this image
resource_type
string
The resource type
source_volume
object
The volume used to create this image (this may be deleted). If absent, this image was not created from a volume.
status
string
The status of this image:
- `available`: image can be used to create resources
- `deleting`: image is being deleted, and can no longer be used to create resources
- `deprecated`: image is slated to be deleted, but can still be used to create resources
- `failed`: image was not created successfully, and cannot be used to create resources
- `obsolete`: image is slated to be deleted, and can no longer be used to create resources
- `partially_available`: image can be used to create resources in the zones listed in the `zones` property.
- `pending`: image is being imported, and cannot yet be used to create resources
- `unusable`: image cannot be used (see `status_reasons[]` for possible remediation)
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
user_data_format
object
The user data format for this image:
- `cloud_init`: `user_data` will be interpreted according to the cloud-init standard
- `esxi_kickstart`: `user_data` will be interpreted as a VMware ESXi installation script
- `ipxe`: `user_data` will be interpreted as a single URL to an iPXE script or as the text of an iPXE script
The value for this property is inherited from `operating_system.user_data_format`.
visibility
string
The visibility of this image.
- `private`: Visible only to this account
- `public`: Visible to all accounts
zones
ImageZones
The zones in which this image is available for use.
If the image has a status of `available` or `deprecated`, this will include all zones in the region.
If the image has a status of `partially_available`, this will include one or more zones in the region.
If the image has a status of `failed`, `obsolete`, `pending`, `unusable`, or `deleting`, this will be empty.
400 - An invalid image prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The image prototype object specified a volume or encryption key that cannot be used in
its current state.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete an image
DELETE /images/{id}
This request deletes an image. Any active image export jobs will be completed first. This operation cannot be reversed. An image with `remote.account` set is not allowed to be deleted. Additionally, an image cannot be deleted if it:
- has a `status` of `deleting`
- has `catalog_offering.managed` set to `true`
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.image.image.delete
Auditing
Calling this method generates the following auditing event.
is.image.image.delete
Request
Response
202 - The image deletion request was accepted.
403 - The image is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An image with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The image cannot be deleted in its current state.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve an image
GET /images/{id}
This request retrieves a single image specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.image.image.read
Auditing
Calling this method generates the following auditing event.
is.image.image.read
Request
Response
200 - The image was retrieved successfully
allowed_use
object
The usage constraints to match against the requested instance or bare metal server properties to determine compatibility.
catalog_offering
ImageCatalogOffering
created_at
string
The date and time that the image was created
crn
string
The CRN for this image
deprecation_at
string
The deprecation date and time (UTC) for this image.
If absent, no deprecation date and time has been set.
encryption
string
The type of encryption used on the image
encryption_key
object
The key that will be used to encrypt volumes created from this image (unless an alternate `encryption_key` is specified at volume creation).
This property will be present for images with an `encryption` type of `user_managed`.
file
object
The metadata for the imported image file.
href
string
The URL for this image
id
string
The unique identifier for this image
minimum_provisioned_size
integer
The minimum size (in gigabytes) of a volume onto which this image may be provisioned.
This property may be absent if the image has a `status` of `pending` or `failed`.
name
string
The name for this image. The name is unique across all images in the region.
obsolescence_at
string
The obsolescence date and time (UTC) for this image.
If absent, no obsolescence date and time has been set.
operating_system
object
The operating system included in this image
remote
ImageRemote
If present, this property indicates that the resource associated with this reference is remote and therefore may not be directly retrievable.
resource_group
object
The resource group for this image
resource_type
string
The resource type
source_volume
object
The volume used to create this image (this may be deleted). If absent, this image was not created from a volume.
status
string
The status of this image:
- `available`: image can be used to create resources
- `deleting`: image is being deleted, and can no longer be used to create resources
- `deprecated`: image is slated to be deleted, but can still be used to create resources
- `failed`: image was not created successfully, and cannot be used to create resources
- `obsolete`: image is slated to be deleted, and can no longer be used to create resources
- `partially_available`: image can be used to create resources in the zones listed in the `zones` property.
- `pending`: image is being imported, and cannot yet be used to create resources
- `unusable`: image cannot be used (see `status_reasons[]` for possible remediation)
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
user_data_format
object
The user data format for this image:
- `cloud_init`: `user_data` will be interpreted according to the cloud-init standard
- `esxi_kickstart`: `user_data` will be interpreted as a VMware ESXi installation script
- `ipxe`: `user_data` will be interpreted as a single URL to an iPXE script or as the text of an iPXE script
The value for this property is inherited from `operating_system.user_data_format`.
visibility
string
The visibility of this image.
- `private`: Visible only to this account
- `public`: Visible to all accounts
zones
ImageZones
The zones in which this image is available for use.
If the image has a status of `available` or `deprecated`, this will include all zones in the region.
If the image has a status of `partially_available`, this will include one or more zones in the region.
If the image has a status of `failed`, `obsolete`, `pending`, `unusable`, or `deleting`, this will be empty.
404 - An image with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update an image
PATCH /images/{id}
This request updates an image with the information in a provided image patch. The image patch object is structured in the same way as a retrieved image and contains only the information to be updated. An image with `remote.account` set is not allowed to be updated. An image with a `status` of `deleting` cannot be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.image.image.updateis.image.image.deprecateis.image.image.obsoleteis.image.image.manage-allowed-use
Auditing
Calling this method generates the following auditing event.
is.image.image.update
Request
Request Body
The image patch
Response
200 - The image was updated successfully
allowed_use
object
The usage constraints to match against the requested instance or bare metal server properties to determine compatibility.
catalog_offering
ImageCatalogOffering
created_at
string
The date and time that the image was created
crn
string
The CRN for this image
deprecation_at
string
The deprecation date and time (UTC) for this image.
If absent, no deprecation date and time has been set.
encryption
string
The type of encryption used on the image
encryption_key
object
The key that will be used to encrypt volumes created from this image (unless an alternate `encryption_key` is specified at volume creation).
This property will be present for images with an `encryption` type of `user_managed`.
file
object
The metadata for the imported image file.
href
string
The URL for this image
id
string
The unique identifier for this image
minimum_provisioned_size
integer
The minimum size (in gigabytes) of a volume onto which this image may be provisioned.
This property may be absent if the image has a `status` of `pending` or `failed`.
name
string
The name for this image. The name is unique across all images in the region.
obsolescence_at
string
The obsolescence date and time (UTC) for this image.
If absent, no obsolescence date and time has been set.
operating_system
object
The operating system included in this image
remote
ImageRemote
If present, this property indicates that the resource associated with this reference is remote and therefore may not be directly retrievable.
resource_group
object
The resource group for this image
resource_type
string
The resource type
source_volume
object
The volume used to create this image (this may be deleted). If absent, this image was not created from a volume.
status
string
The status of this image:
- `available`: image can be used to create resources
- `deleting`: image is being deleted, and can no longer be used to create resources
- `deprecated`: image is slated to be deleted, but can still be used to create resources
- `failed`: image was not created successfully, and cannot be used to create resources
- `obsolete`: image is slated to be deleted, and can no longer be used to create resources
- `partially_available`: image can be used to create resources in the zones listed in the `zones` property.
- `pending`: image is being imported, and cannot yet be used to create resources
- `unusable`: image cannot be used (see `status_reasons[]` for possible remediation)
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
user_data_format
object
The user data format for this image:
- `cloud_init`: `user_data` will be interpreted according to the cloud-init standard
- `esxi_kickstart`: `user_data` will be interpreted as a VMware ESXi installation script
- `ipxe`: `user_data` will be interpreted as a single URL to an iPXE script or as the text of an iPXE script
The value for this property is inherited from `operating_system.user_data_format`.
visibility
string
The visibility of this image.
- `private`: Visible only to this account
- `public`: Visible to all accounts
zones
ImageZones
The zones in which this image is available for use.
If the image has a status of `available` or `deprecated`, this will include all zones in the region.
If the image has a status of `partially_available`, this will include one or more zones in the region.
If the image has a status of `failed`, `obsolete`, `pending`, `unusable`, or `deleting`, this will be empty.
400 - An invalid image patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The image is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An image with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The image cannot be updated in its current state.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List bare metal server profiles compatible with an image
GET /images/{id}/bare_metal_server_profiles
This request lists bare metal server profiles compatible with an image's `allowed_use.bare_metal_server`, `operating_system.architecture` and `user_data_format` properties, sorted by ascending `name` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.image.image.read
Auditing
Calling this method generates the following auditing event.
is.image.image.read
Request
Response
200 - The bare metal server profiles were retrieved successfully
bare_metal_server_profiles
array
A page of bare metal server profiles compatible with the image
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - An image with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
POST /images/{id}/deprecate
This request deprecates an image, resulting in its `status` becoming `deprecated` and `deprecation_at` being set to the current date and time.
The image must:
- have a `status` of `available`
- have `catalog_offering.managed` set to `false`
- not have `deprecation_at` set
An image with `remote.account` set is not allowed to be deprecated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.image.image.deprecate
Auditing
Calling this method generates the following auditing event.
is.image.image-status.update
Request
Path Parameters
id
Required *
The image identifier
Query Parameters
version
Required *
The API version, in format `YYYY-MM-DD`. For the API behavior documented here, specify any date between `2026-10-30` and `2026-11-03`.
generation
Required *
integer
The infrastructure generation. For the API behavior documented here, specify `2`.
maturity
Required *
The API maturity. For the API behavior documented here, specify `beta`.
Response
204 - The image was deprecated successfully.
403 - The image is not allowed to be deprecated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An image with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The image cannot be deprecated in its current state.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List instance profiles compatible with an image
GET /images/{id}/instance_profiles
This request lists instance profiles compatible with an image's `allowed_use.instance`, `operating_system.architecture` and `user_data_format` properties, sorted by ascending `name` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.image.image.read
Auditing
Calling this method generates the following auditing event.
is.image.image.read
Request
Response
200 - The instance profiles were retrieved successfully
first
object
A link to the first page of resources
instance_profiles
array
A page of instance profiles compatible with the image
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - An image with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
POST /images/{id}/obsolete
This request obsoletes an image, resulting in its `status` becoming `obsolete` and `obsolescence_at` being set to the current date and time.
The image must:
- have a `status` of `available` or `deprecated`
- have `catalog_offering.managed` set to `false`
- not have `deprecation_at` set in the future
- not have `obsolescence_at` set
An image with `remote.account` set is not allowed to be obsoleted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.image.image.obsolete
Auditing
Calling this method generates the following auditing event.
is.image.image-status.update
Request
Path Parameters
id
Required *
The image identifier
Query Parameters
version
Required *
The API version, in format `YYYY-MM-DD`. For the API behavior documented here, specify any date between `2026-10-30` and `2026-11-03`.
generation
Required *
integer
The infrastructure generation. For the API behavior documented here, specify `2`.
maturity
Required *
The API maturity. For the API behavior documented here, specify `beta`.
Response
204 - The image was obsoleted successfully.
403 - The image is not allowed to be obsoleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An image with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The image cannot be obsoleted in its current state.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /images/{image_id}/export_jobs
This request lists export jobs for an image. Each job tracks the exporting of the image to another location, such as a bucket within cloud object storage.
The jobs will be sorted by their `created_at` property values, with newest jobs first. Jobs with identical `created_at` property values will in turn be sorted by ascending `name` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.image.image.read
Auditing
Calling this method generates the following auditing event.
is.image.image-export-job.list
Request
Path Parameters
Query Parameters
name
string
Filters the collection to resources with a `name` property matching the exact specified name.
Response
200 - The image export jobs were retrieved successfully.
export_jobs
array
The export jobs for the image.
Create an export job for an image
POST /images/{image_id}/export_jobs
This request creates and queues a new export job for the image specified in the URL using the image export job prototype object. The image must be owned by the account and be in the `available`, `deprecated`, `obsolete`, or `unusable` state. The prototype object is structured in the same way as a retrieved image export job, and contains the information necessary to create and queue the new image export job.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.image.image.operateis.image.image.export
Auditing
Calling this method generates the following auditing event.
is.image.image.exportis.image.image-export-job.create
Request
Request Body
ImageExportJobPrototype
The image export job prototype object
format
object
The format to use for the exported image. If the image is encrypted, only `qcow2` is supported.
name
string
The name for this image export job. The name must not be used by another export job for the image. If unspecified, the name will be a hyphenated list of randomly-selected words prefixed with the first 16 characters of the parent image name.
The exported image object name in Cloud Object Storage (`storage_object.name` in the response) will be based on this name. The object name will be unique within the bucket.
storage_bucket
Required *
object
The Cloud Object Storage bucket to export the image to. The bucket must exist and an IAM service authorization must grant `Image Service for VPC` of `VPC Infrastructure Services` writer access to the bucket.
Response
201 - The image export job was created successfully.
completed_at
string
The date and time that the image export job was completed.
If absent, the export job has not yet completed.
created_at
string
The date and time that the image export job was created.
encrypted_data_key
string
A base64-encoded, encrypted representation of the key that was used to encrypt the data for the exported image. This key can be unwrapped with the image's `encryption_key` root key using Key Protect.
If absent, the export job is for an unencrypted image.
The use of Hyper Protect Crypto Services for image encryption keys has been deprecated.
format
object
The format of the exported image.
href
string
The URL for this image export job
id
string
The unique identifier for this image export job
name
string
The name for this image export job. The name must not be used by another export job for the image. Changing the name will not affect the exported image name, `storage_object.name`, or `storage_href` values.
resource_type
string
The resource type
started_at
string
The date and time that the image export job started running.
If absent, the export job has not yet started.
status
string
The status of this image export job:
- `deleting`: Export job is being deleted
- `failed`: Export job could not be completed successfully
- `queued`: Export job is queued
- `running`: Export job is in progress
- `succeeded`: Export job was completed successfully
The exported image object is automatically deleted for `failed` jobs.
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
storage_bucket
object
The Cloud Object Storage bucket of the exported image object.
storage_href
string
The Cloud Object Storage location of the exported image object. The object at this location will not exist until the job completes successfully. The exported image object is not managed by the IBM VPC service, and may be removed or replaced with a different object by any user or service with IAM authorization to the storage bucket.
storage_object
object
The Cloud Object Storage object for the exported image. This object will not exist until the job completes successfully. The exported image object is not managed by the IBM VPC service, and may be removed or replaced with a different object by any user or service with IAM authorization to the storage bucket.
400 - An invalid image export job prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The image is not allowed to be exported.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The image export job patch conflicts with another job for the image, or the
specified image cannot be exported in its current state.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete an image export job
DELETE /images/{image_id}/export_jobs/{id}
This request deletes an image export job. This operation cannot be reversed. If the job has not completed, the job will be canceled, and the incomplete exported image object deleted. If the job has completed, the exported image object will not be deleted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.image.image.operateis.image.image.export
Auditing
Calling this method generates the following auditing event.
is.image.image-export-job.delete
Request
Response
202 - The image export job deletion request was accepted.
404 - The specified image export job could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve an image export job
GET /images/{image_id}/export_jobs/{id}
This request retrieves a single image export job specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.image.image.read
Auditing
Calling this method generates the following auditing event.
is.image.image-export-job.read
Request
Response
200 - The image export job was retrieved successfully.
completed_at
string
The date and time that the image export job was completed.
If absent, the export job has not yet completed.
created_at
string
The date and time that the image export job was created.
encrypted_data_key
string
A base64-encoded, encrypted representation of the key that was used to encrypt the data for the exported image. This key can be unwrapped with the image's `encryption_key` root key using Key Protect.
If absent, the export job is for an unencrypted image.
The use of Hyper Protect Crypto Services for image encryption keys has been deprecated.
format
object
The format of the exported image.
href
string
The URL for this image export job
id
string
The unique identifier for this image export job
name
string
The name for this image export job. The name must not be used by another export job for the image. Changing the name will not affect the exported image name, `storage_object.name`, or `storage_href` values.
resource_type
string
The resource type
started_at
string
The date and time that the image export job started running.
If absent, the export job has not yet started.
status
string
The status of this image export job:
- `deleting`: Export job is being deleted
- `failed`: Export job could not be completed successfully
- `queued`: Export job is queued
- `running`: Export job is in progress
- `succeeded`: Export job was completed successfully
The exported image object is automatically deleted for `failed` jobs.
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
storage_bucket
object
The Cloud Object Storage bucket of the exported image object.
storage_href
string
The Cloud Object Storage location of the exported image object. The object at this location will not exist until the job completes successfully. The exported image object is not managed by the IBM VPC service, and may be removed or replaced with a different object by any user or service with IAM authorization to the storage bucket.
storage_object
object
The Cloud Object Storage object for the exported image. This object will not exist until the job completes successfully. The exported image object is not managed by the IBM VPC service, and may be removed or replaced with a different object by any user or service with IAM authorization to the storage bucket.
404 - The specified image export job could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update an image export job
PATCH /images/{image_id}/export_jobs/{id}
This request updates an image export job with the information in a provided image export job patch. The image export job patch object is structured in the same way as a retrieved image export job and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.image.image.update
Auditing
Calling this method generates the following auditing event.
is.image.image-export-job.update
Request
Request Body
The image export job patch
Response
200 - The image export job was updated successfully.
completed_at
string
The date and time that the image export job was completed.
If absent, the export job has not yet completed.
created_at
string
The date and time that the image export job was created.
encrypted_data_key
string
A base64-encoded, encrypted representation of the key that was used to encrypt the data for the exported image. This key can be unwrapped with the image's `encryption_key` root key using Key Protect.
If absent, the export job is for an unencrypted image.
The use of Hyper Protect Crypto Services for image encryption keys has been deprecated.
format
object
The format of the exported image.
href
string
The URL for this image export job
id
string
The unique identifier for this image export job
name
string
The name for this image export job. The name must not be used by another export job for the image. Changing the name will not affect the exported image name, `storage_object.name`, or `storage_href` values.
resource_type
string
The resource type
started_at
string
The date and time that the image export job started running.
If absent, the export job has not yet started.
status
string
The status of this image export job:
- `deleting`: Export job is being deleted
- `failed`: Export job could not be completed successfully
- `queued`: Export job is queued
- `running`: Export job is in progress
- `succeeded`: Export job was completed successfully
The exported image object is automatically deleted for `failed` jobs.
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
storage_bucket
object
The Cloud Object Storage bucket of the exported image object.
storage_href
string
The Cloud Object Storage location of the exported image object. The object at this location will not exist until the job completes successfully. The exported image object is not managed by the IBM VPC service, and may be removed or replaced with a different object by any user or service with IAM authorization to the storage bucket.
storage_object
object
The Cloud Object Storage object for the exported image. This object will not exist until the job completes successfully. The exported image object is not managed by the IBM VPC service, and may be removed or replaced with a different object by any user or service with IAM authorization to the storage bucket.
400 - An invalid image export job patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An image export job with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The image export job patch conflicts with another job for the image.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List instance profiles
GET /instance/profiles
This request lists provisionable instance profiles in the region. An instance profile specifies the performance characteristics and pricing model for an instance.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.read
Auditing
Calling this method generates the following auditing event.
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The instance profiles were retrieved successfully
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
profiles
array
A page of virtual server instance profiles
total_count
integer
The total number of resources across all pages
Retrieve an instance profile
GET /instance/profiles/{name}
This request retrieves a single instance profile specified by the name in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.read
Auditing
Calling this method generates the following auditing event.
Request
Path Parameters
name
Required *
string
The instance profile name
Query Parameters
Response
200 - The instance profile was retrieved successfully
availability_class
InstanceProfileAvailabilityClass
bandwidth
InstanceProfileBandwidth
cluster_network_attachment_count
InstanceProfileClusterNetworkAttachmentCount
confidential_compute_modes
InstanceProfileSupportedConfidentialComputeModes
disks
InstanceProfileDisks
The disks for an instance with this profile
family
string
The product family this virtual server instance profile belongs to
gpu_count
InstanceProfileGPU
gpu_manufacturer
InstanceProfileGPUManufacturer
gpu_memory
InstanceProfileGPUMemory
gpu_model
InstanceProfileGPUModel
href
string
The URL for this virtual server instance profile
memory
InstanceProfileMemory
name
string
The globally unique name for this virtual server instance profile
network_attachment_count
InstanceProfileNetworkAttachmentCount
network_bandwidth_mode
InstanceProfileNetworkBandwidthMode
network_interface_count
InstanceProfileNetworkInterfaceCount
numa_count
InstanceProfileNUMACount
os_architecture
InstanceProfileOSArchitecture
port_speed
InstanceProfilePortSpeed
reservation_terms
InstanceProfileReservationTerms
resource_type
string
The resource type
secure_boot_modes
InstanceProfileSupportedSecureBootModes
status
string
The status of the instance profile:
- `previous`: This instance profile is an older revision, but remains provisionable and usable.
- `current`: This profile is the latest revision.
Revisions are indicated by the generation of an instance profile. Refer to the profile naming conventions for information on how generations are defined within an instance profile.
The enumerated values for this property may expand in the future.
supported_cluster_network_profiles
InstanceProfileSupportedClusterNetworkProfiles
The cluster network profiles that support this instance profile.
supported_volume_attachment_protocols
array
The volume attachment protocols supported by virtual server instances with this profile. This indicates which protocols can be used when attaching block storage volumes to virtual server instances created from this profile.
Supported protocols:
- `virtio_blk`: VirtIO block device. This para-virtualized storage protocol provides block device access for virtual server instances.
threads_per_core
InstanceProfileThreadsPerCoreEnum
total_volume_bandwidth
InstanceProfileVolumeBandwidth
vcpu_architecture
InstanceProfileVCPUArchitecture
vcpu_burst_limit
InstanceProfileVCPUBurstLimit
vcpu_count
InstanceProfileVCPU
vcpu_manufacturer
InstanceProfileVCPUManufacturer
vcpu_percentage
InstanceProfileVCPUPercentage
The permitted values for VCPU percentage for an instance with this profile
volume_bandwidth_qos_modes
InstanceProfileVolumeBandwidthQoSModes
zones
InstanceProfileZones
The zones in this region that support this instance profile.
404 - An instance profile with the specified name could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List instance templates
GET /instance/templates
This request lists instance templates in the region.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.template.read
Auditing
Calling this method generates the following auditing event.
is.instance-template.instance-template.read
Request
Response
200 - The instance templates were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
templates
array
A page of instance templates
total_count
integer
The total number of resources across all pages
POST /instance/templates
This request creates a new instance template. The prototype object is structured in the same way as a retrieved instance template, and contains the information necessary to provision a new instance from the template.
If a `source_template` is specified in the prototype object, its contents are copied into the new template prior to copying any other properties provided in the prototype object.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.template.create
Auditing
Calling this method generates the following auditing event.
is.instance-template.instance-template.create
Request
Request Body
InstanceTemplatePrototype
The instance template prototype object
availability
InstanceAvailabilityPrototype
availability_policy
InstanceAvailabilityPolicyPrototype
The availability policy to use for this virtual server instance
host_failure
string
The action to perform if the compute host experiences a failure:
- `restart`: Restart the virtual server instance
- `stop`: Leave the virtual server instance stopped
See handling host failures for details.
preemption
string
The action to perform if the virtual server instance is preempted:
- `delete`: Delete the virtual server instance
- `stop`: Leave the virtual server instance stopped
See virtual server instance preemption for details.
cluster_network_attachments
array
The cluster network attachments to create for this virtual server instance. A cluster network attachment represents a device that is connected to a cluster network. The number of network attachments must match one of the values from the instance profile's `cluster_network_attachment_count` before the instance can be started.
confidential_compute_mode
string
The confidential compute mode to use for this virtual server instance.
If unspecified, the default confidential compute mode from the profile will be used.
default_trusted_profile
object
The default trusted profile configuration to use for this virtual server instance
This property's value is used when provisioning the virtual server instance, and can only be changed by reinitializing the instance. Accordingly, it is reflected as an instance initialization property.
auto_link
boolean
If set to `true`, the system will create a link to the specified `target` trusted profile during instance creation. Regardless of whether a link is created by the system or manually using the IAM Identity service, it will be automatically deleted when the instance is deleted.
target
Required *
object
Identifies a trusted profile by a unique property.
enable_secure_boot
boolean
Indicates whether secure boot is enabled for this virtual server instance.
If unspecified, the default secure boot mode from the profile will be used.
keys
array
The public SSH keys for this virtual server instance. Keys will be made available to the virtual server instance as cloud-init vendor data. For cloud-init enabled images, these keys will also be added as SSH authorized keys for the default user.
For Windows images, the keys of type `rsa` must be specified, and one will be selected to encrypt the administrator password. Keys are optional for other images, but if no keys are specified, the instance will be inaccessible unless the specified image provides another means of access.
This property's value is used when provisioning the virtual server instance, and can only be changed by reinitializing the instance. Accordingly, it is reflected as an instance initialization property.
metadata_service
InstanceMetadataServicePrototype
The metadata service configuration
enabled
boolean
Indicates whether the metadata service endpoint will be available to the virtual server instance
protocol
string
The communication protocol to use for the metadata service endpoint. Applies only when the metadata service is enabled.
- `http`: HTTP protocol (unencrypted)
- `https`: HTTP Secure protocol
response_hop_limit
integer
The hop limit (IP time to live) for IP response packets from the metadata service. Applies only when the metadata service is enabled.
name
string
The name for this instance template. The name must not be used by another instance template in the region. If unspecified, the name will be a hyphenated list of randomly-selected words.
placement_target
InstancePlacementTargetPrototype
The placement restrictions to use for the virtual server instance.
If specified, `reservation_affinity.policy` must be `disabled`. If specifying a dedicated host or dedicated host group, the `vcpu.percentage` must be `100` and the instance must have two or more vCPUs.
profile
object
Identifies an instance profile by a unique property.
reservation_affinity
InstanceReservationAffinityPrototype
The reservation affinity settings for this virtual server instance. If specified, the instance must have two or more vCPUs, and `vcpu.percentage` must be `100`.
policy
string
The reservation affinity policy to use for this virtual server instance:
- `disabled`: Reservations will not be used
- `manual`: Reservations in `pool` will be available for use
- `automatic`: Reservations with an `affinity_policy` of `automatic` that have the same `profile` and `zone` as this virtual server instance will be available for use.
The policy will default to `manual` if `pool` is not empty. The policy will default to `disabled` if a `placement_target` is set. The policy will default to `disabled` if the provided instance configuration is restricted from enabling reservations. The policy will default to `automatic` in all other cases.
The policy must be `disabled` if `placement_target` is specified.
pool
array
The pool of reservations available for use by this virtual server instance.
Specified reservations must have a `status` of `active`, and have the same `profile` and `zone` as this virtual server instance.
If `policy` is `manual`, `pool` must be specified with one reservation. If `policy` is `disabled` or `automatic` and `pool` is specified, it must be empty. If `policy` is `manual`, the `pool` must contain a reservation with available capacity.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
threads_per_core
integer
The threads per core to use for this virtual server instance. Must be one of the values in the profile's `threads_per_core.values`.
If unspecified, the default threads per core from the profile will be used.
total_volume_bandwidth
integer
The amount of bandwidth (in megabits per second) allocated exclusively to instance storage volumes. An increase in this value will result in a corresponding decrease to `total_network_bandwidth`.
user_data
string
The user data to make available when setting up the virtual server instance.
vcpu
InstanceVCPUPrototype
percentage
integer
The percentage of VCPU clock cycles allocated to the instance.
The virtual server instance `vcpu.percentage` must be `100` when:
- The virtual server instance `placement_target` is a dedicated host or dedicated host group.
- The virtual server instance `reservation_affinity.policy` is not `disabled`.
If unspecified, the default for `vcpu_percentage` from the profile will be used.
volume_attachments
array
The additional volume attachments to create for the virtual server instance
volume_bandwidth_qos_mode
string
The volume bandwidth QoS mode to use for this virtual server instance. The specified value must be listed in the instance profile's `volume_bandwidth_qos_modes`.
If unspecified, the default volume bandwidth QoS mode from the profile will be used.
vpc
object
Identifies a VPC by a unique property.
Response
201 - The instance template was created successfully.
availability
InstanceAvailabilityPrototype
availability_policy
InstanceAvailabilityPolicyPrototype
The availability policy to use for this virtual server instance
cluster_network_attachments
array
The cluster network attachments to create for this virtual server instance. A cluster network attachment represents a device that is connected to a cluster network. The number of network attachments must match one of the values from the instance profile's `cluster_network_attachment_count` before the instance can be started.
confidential_compute_mode
string
The confidential compute mode to use for this virtual server instance.
If unspecified, the default confidential compute mode from the profile will be used.
created_at
string
The date and time that the instance template was created
crn
string
The CRN for this instance template
default_trusted_profile
object
The default trusted profile configuration to use for this virtual server instance
This property's value is used when provisioning the virtual server instance, and can only be changed by reinitializing the instance. Accordingly, it is reflected as an instance initialization property.
enable_secure_boot
boolean
Indicates whether secure boot is enabled for this virtual server instance.
If unspecified, the default secure boot mode from the profile will be used.
href
string
The URL for this instance template
id
string
The unique identifier for this instance template
keys
array
The public SSH keys for this virtual server instance. Keys will be made available to the virtual server instance as cloud-init vendor data. For cloud-init enabled images, these keys will also be added as SSH authorized keys for the default user.
For Windows images, the keys of type `rsa` must be specified, and one will be selected to encrypt the administrator password. Keys are optional for other images, but if no keys are specified, the instance will be inaccessible unless the specified image provides another means of access.
This property's value is used when provisioning the virtual server instance, and can only be changed by reinitializing the instance. Accordingly, it is reflected as an instance initialization property.
metadata_service
InstanceMetadataServicePrototype
The metadata service configuration
name
string
The name for this instance template. The name is unique across all instance templates in the region.
placement_target
InstancePlacementTargetPrototype
The placement restrictions to use for the virtual server instance.
If specified, `reservation_affinity.policy` must be `disabled`. If specifying a dedicated host or dedicated host group, the `vcpu.percentage` must be `100` and the instance must have two or more vCPUs.
profile
object
Identifies an instance profile by a unique property.
reservation_affinity
InstanceReservationAffinityPrototype
The reservation affinity settings for this virtual server instance. If specified, the instance must have two or more vCPUs, and `vcpu.percentage` must be `100`.
resource_group
object
The resource group for this instance template
threads_per_core
integer
The threads per core to use for this virtual server instance. Must be one of the values in the profile's `threads_per_core.values`.
If unspecified, the default threads per core from the profile will be used.
total_volume_bandwidth
integer
The amount of bandwidth (in megabits per second) allocated exclusively to instance storage volumes. An increase in this value will result in a corresponding decrease to `total_network_bandwidth`.
user_data
string
The user data to make available when setting up the virtual server instance.
vcpu
InstanceVCPUPrototype
volume_attachments
array
The additional volume attachments to create for the virtual server instance
volume_bandwidth_qos_mode
string
The volume bandwidth QoS mode to use for this virtual server instance. The specified value must be listed in the instance profile's `volume_bandwidth_qos_modes`.
If unspecified, the default volume bandwidth QoS mode from the profile will be used.
vpc
object
Identifies a VPC by a unique property.
400 - An invalid instance template prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - An instance template prototype object conflicts with another instance template
in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete an instance template
DELETE /instance/templates/{id}
This request deletes the instance template. This operation cannot be reversed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.template.delete
Auditing
Calling this method generates the following auditing event.
is.instance-template.instance-template.delete
Request
Response
204 - The instance template was deleted successfully.
404 - An instance template could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The instance template is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve an instance template
GET /instance/templates/{id}
This request retrieves a single instance template specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.template.read
Auditing
Calling this method generates the following auditing event.
is.instance-template.instance-template.read
Request
Response
200 - The instance template was retrieved successfully.
availability
InstanceAvailabilityPrototype
availability_policy
InstanceAvailabilityPolicyPrototype
The availability policy to use for this virtual server instance
cluster_network_attachments
array
The cluster network attachments to create for this virtual server instance. A cluster network attachment represents a device that is connected to a cluster network. The number of network attachments must match one of the values from the instance profile's `cluster_network_attachment_count` before the instance can be started.
confidential_compute_mode
string
The confidential compute mode to use for this virtual server instance.
If unspecified, the default confidential compute mode from the profile will be used.
created_at
string
The date and time that the instance template was created
crn
string
The CRN for this instance template
default_trusted_profile
object
The default trusted profile configuration to use for this virtual server instance
This property's value is used when provisioning the virtual server instance, and can only be changed by reinitializing the instance. Accordingly, it is reflected as an instance initialization property.
enable_secure_boot
boolean
Indicates whether secure boot is enabled for this virtual server instance.
If unspecified, the default secure boot mode from the profile will be used.
href
string
The URL for this instance template
id
string
The unique identifier for this instance template
keys
array
The public SSH keys for this virtual server instance. Keys will be made available to the virtual server instance as cloud-init vendor data. For cloud-init enabled images, these keys will also be added as SSH authorized keys for the default user.
For Windows images, the keys of type `rsa` must be specified, and one will be selected to encrypt the administrator password. Keys are optional for other images, but if no keys are specified, the instance will be inaccessible unless the specified image provides another means of access.
This property's value is used when provisioning the virtual server instance, and can only be changed by reinitializing the instance. Accordingly, it is reflected as an instance initialization property.
metadata_service
InstanceMetadataServicePrototype
The metadata service configuration
name
string
The name for this instance template. The name is unique across all instance templates in the region.
placement_target
InstancePlacementTargetPrototype
The placement restrictions to use for the virtual server instance.
If specified, `reservation_affinity.policy` must be `disabled`. If specifying a dedicated host or dedicated host group, the `vcpu.percentage` must be `100` and the instance must have two or more vCPUs.
profile
object
Identifies an instance profile by a unique property.
reservation_affinity
InstanceReservationAffinityPrototype
The reservation affinity settings for this virtual server instance. If specified, the instance must have two or more vCPUs, and `vcpu.percentage` must be `100`.
resource_group
object
The resource group for this instance template
threads_per_core
integer
The threads per core to use for this virtual server instance. Must be one of the values in the profile's `threads_per_core.values`.
If unspecified, the default threads per core from the profile will be used.
total_volume_bandwidth
integer
The amount of bandwidth (in megabits per second) allocated exclusively to instance storage volumes. An increase in this value will result in a corresponding decrease to `total_network_bandwidth`.
user_data
string
The user data to make available when setting up the virtual server instance.
vcpu
InstanceVCPUPrototype
volume_attachments
array
The additional volume attachments to create for the virtual server instance
volume_bandwidth_qos_mode
string
The volume bandwidth QoS mode to use for this virtual server instance. The specified value must be listed in the instance profile's `volume_bandwidth_qos_modes`.
If unspecified, the default volume bandwidth QoS mode from the profile will be used.
vpc
object
Identifies a VPC by a unique property.
404 - An instance template with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update an instance template
PATCH /instance/templates/{id}
This request updates an instance template with the information provided in the instance template patch. The instance template patch object is structured in the same way as a retrieved instance template and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.template.update
Auditing
Calling this method generates the following auditing event.
is.instance-template.instance-template.update
Request
Request Body
The instance template patch
Response
200 - The instance template was updated successfully.
availability
InstanceAvailabilityPrototype
availability_policy
InstanceAvailabilityPolicyPrototype
The availability policy to use for this virtual server instance
cluster_network_attachments
array
The cluster network attachments to create for this virtual server instance. A cluster network attachment represents a device that is connected to a cluster network. The number of network attachments must match one of the values from the instance profile's `cluster_network_attachment_count` before the instance can be started.
confidential_compute_mode
string
The confidential compute mode to use for this virtual server instance.
If unspecified, the default confidential compute mode from the profile will be used.
created_at
string
The date and time that the instance template was created
crn
string
The CRN for this instance template
default_trusted_profile
object
The default trusted profile configuration to use for this virtual server instance
This property's value is used when provisioning the virtual server instance, and can only be changed by reinitializing the instance. Accordingly, it is reflected as an instance initialization property.
enable_secure_boot
boolean
Indicates whether secure boot is enabled for this virtual server instance.
If unspecified, the default secure boot mode from the profile will be used.
href
string
The URL for this instance template
id
string
The unique identifier for this instance template
keys
array
The public SSH keys for this virtual server instance. Keys will be made available to the virtual server instance as cloud-init vendor data. For cloud-init enabled images, these keys will also be added as SSH authorized keys for the default user.
For Windows images, the keys of type `rsa` must be specified, and one will be selected to encrypt the administrator password. Keys are optional for other images, but if no keys are specified, the instance will be inaccessible unless the specified image provides another means of access.
This property's value is used when provisioning the virtual server instance, and can only be changed by reinitializing the instance. Accordingly, it is reflected as an instance initialization property.
metadata_service
InstanceMetadataServicePrototype
The metadata service configuration
name
string
The name for this instance template. The name is unique across all instance templates in the region.
placement_target
InstancePlacementTargetPrototype
The placement restrictions to use for the virtual server instance.
If specified, `reservation_affinity.policy` must be `disabled`. If specifying a dedicated host or dedicated host group, the `vcpu.percentage` must be `100` and the instance must have two or more vCPUs.
profile
object
Identifies an instance profile by a unique property.
reservation_affinity
InstanceReservationAffinityPrototype
The reservation affinity settings for this virtual server instance. If specified, the instance must have two or more vCPUs, and `vcpu.percentage` must be `100`.
resource_group
object
The resource group for this instance template
threads_per_core
integer
The threads per core to use for this virtual server instance. Must be one of the values in the profile's `threads_per_core.values`.
If unspecified, the default threads per core from the profile will be used.
total_volume_bandwidth
integer
The amount of bandwidth (in megabits per second) allocated exclusively to instance storage volumes. An increase in this value will result in a corresponding decrease to `total_network_bandwidth`.
user_data
string
The user data to make available when setting up the virtual server instance.
vcpu
InstanceVCPUPrototype
volume_attachments
array
The additional volume attachments to create for the virtual server instance
volume_bandwidth_qos_mode
string
The volume bandwidth QoS mode to use for this virtual server instance. The specified value must be listed in the instance profile's `volume_bandwidth_qos_modes`.
If unspecified, the default volume bandwidth QoS mode from the profile will be used.
vpc
object
Identifies a VPC by a unique property.
400 - An invalid instance template patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance template with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - An instance template patch conflicts with another instance template in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List instance groups
GET /instance_groups
This request lists instance groups in the region.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.listis.instance-group.instance-group.read
Auditing
Calling this method generates the following auditing event.
is.instance-group.instance-group.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The instance groups were retrieved successfully.
first
object
A link to the first page of resources
instance_groups
array
A page of instance groups
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
Create an instance group
POST /instance_groups
This request creates a new instance group
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.createis.instance.instance-template.readis.subnet.subnet.operateis.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
is.instance-group.instance-group.create
Request
Request Body
InstanceGroupPrototype
The instance group prototype object
application_port
integer
The port to use for new load balancer pool members created by this instance group. The load balancer pool member will receive load balancer traffic on this port, unless the load balancer listener is using a port range. (Traffic received on a listener using a port range will be sent to members using the same port the listener received it on.)
This port will also be used for health checks unless the port property of `health_monitor` property is specified.
This property must be specified if and only if `load_balancer_pool` has been specified.
instance_template
Required *
object
The instance template to use when creating new instances.
The specified template must not have `default_trusted_profile.auto_link` set to `true`.
load_balancer
object
The load balancer associated with the specified load balancer pool. Required if `load_balancer_pool` is specified. The load balancer must have `instance_groups_supported` set to `true`.
load_balancer_pool
object
If specified, this instance group will manage the load balancer pool. A pool member will be created for each instance created by this group. The specified load balancer pool must not be used by another instance group in the VPC.
If specified, `load_balancer` and `application_port` must also be specified.
membership_count
integer
The number of instances in the instance group
name
string
The name for this instance group. The name must not be used by another instance group in the region. If unspecified, the name will be a hyphenated list of randomly-selected words.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
subnets
Required *
array
The subnets to use when creating new instances.
Response
201 - The instance group was created successfully.
application_port
integer
The port used for new load balancer pool members created by this instance group.
This property will be present if and only if `load_balancer_pool` is present.
created_at
string
The date and time that the instance group was created
crn
string
The CRN for this instance group
href
string
The URL for this instance group
id
string
The unique identifier for this instance group
instance_template
object
The template used to create new instances for this group.
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the instance group.
load_balancer_pool
object
If present, the load balancer pool this instance group manages. A pool member will be created for each instance created by this group.
managers
array
The managers for the instance group.
membership_count
integer
The number of instances in the instance group
name
string
The name for this instance group. The name is unique across all instance groups in the region.
resource_group
ResourceGroupReference
status
string
The status of the instance group
- `deleting`: Group is being deleted
- `healthy`: Group has `membership_count` instances
- `scaling`: Instances in the group are being created or deleted to reach `membership_count`
- `unhealthy`: Group is unable to reach `membership_count` instances
The enumerated values for this property may expand in the future.
subnets
array
The subnets to use when creating new instances.
updated_at
string
The date and time that the instance group was updated
vpc
object
The VPC the instance group resides in
400 - An invalid instance group prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The instance group prototype object specified in a load balancer pool that is
already in use by another instance group in the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete an instance group
DELETE /instance_groups/{id}
This request deletes an instance group. This operation cannot be reversed. Any instances associated with the group will be deleted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.deleteis.instance.instance.deleteis.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
is.instance-group.instance-group.delete
Request
Response
204 - The instance group was deleted successfully.
403 - The instance group is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve an instance group
GET /instance_groups/{id}
This request retrieves a single instance group specified by identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.read
Auditing
Calling this method generates the following auditing event.
is.instance-group.instance-group.read
Request
Response
200 - The instance group was retrieved successfully.
application_port
integer
The port used for new load balancer pool members created by this instance group.
This property will be present if and only if `load_balancer_pool` is present.
created_at
string
The date and time that the instance group was created
crn
string
The CRN for this instance group
href
string
The URL for this instance group
id
string
The unique identifier for this instance group
instance_template
object
The template used to create new instances for this group.
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the instance group.
load_balancer_pool
object
If present, the load balancer pool this instance group manages. A pool member will be created for each instance created by this group.
managers
array
The managers for the instance group.
membership_count
integer
The number of instances in the instance group
name
string
The name for this instance group. The name is unique across all instance groups in the region.
resource_group
ResourceGroupReference
status
string
The status of the instance group
- `deleting`: Group is being deleted
- `healthy`: Group has `membership_count` instances
- `scaling`: Instances in the group are being created or deleted to reach `membership_count`
- `unhealthy`: Group is unable to reach `membership_count` instances
The enumerated values for this property may expand in the future.
subnets
array
The subnets to use when creating new instances.
updated_at
string
The date and time that the instance group was updated
vpc
object
The VPC the instance group resides in
404 - An instance group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update an instance group
PATCH /instance_groups/{id}
This request updates an instance group with the information provided instance group patch. The instance group patch object is structured in the same way as a retrieved instance group and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.updateis.instance.instance-template.readis.subnet.subnet.operateis.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
is.instance-group.instance-group.update
Request
Request Body
The instance group patch
Response
200 - The instance group was updated successfully.
application_port
integer
The port used for new load balancer pool members created by this instance group.
This property will be present if and only if `load_balancer_pool` is present.
created_at
string
The date and time that the instance group was created
crn
string
The CRN for this instance group
href
string
The URL for this instance group
id
string
The unique identifier for this instance group
instance_template
object
The template used to create new instances for this group.
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the instance group.
load_balancer_pool
object
If present, the load balancer pool this instance group manages. A pool member will be created for each instance created by this group.
managers
array
The managers for the instance group.
membership_count
integer
The number of instances in the instance group
name
string
The name for this instance group. The name is unique across all instance groups in the region.
resource_group
ResourceGroupReference
status
string
The status of the instance group
- `deleting`: Group is being deleted
- `healthy`: Group has `membership_count` instances
- `scaling`: Instances in the group are being created or deleted to reach `membership_count`
- `unhealthy`: Group is unable to reach `membership_count` instances
The enumerated values for this property may expand in the future.
subnets
array
The subnets to use when creating new instances.
updated_at
string
The date and time that the instance group was updated
vpc
object
The VPC the instance group resides in
400 - An invalid instance group patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The instance group is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The instance group patch object specified properties that cannot be changed while
the instance group has memberships, or specified a load balancer pool that is already in use by another instance group in the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete an instance group load balancer
DELETE /instance_groups/{instance_group_id}/load_balancer
This request unbinds the instance group from the load balancer pool, and deletes the load balancer pool members.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.update
Auditing
Calling this method generates the following auditing event.
is.instance-group.load-balancer.delete
Request
Response
204 - The instance group load balancer was deleted successfully.
403 - The instance group load balancer is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance group load balancer could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List managers for an instance group
GET /instance_groups/{instance_group_id}/managers
This request lists managers for an instance group.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.read
Auditing
Calling this method generates the following auditing event.
is.instance-group.manager.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The instance group managers were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
managers
array
A page of managers for the instance group
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - An instance group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a manager for an instance group
POST /instance_groups/{instance_group_id}/managers
This request creates a new instance group manager
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.update
Auditing
Calling this method generates the following auditing event.
is.instance-group.manager.create
Request
Request Body
InstanceGroupManagerPrototype
The instance group manager prototype object
management_enabled
boolean
Indicates whether this manager will control the instance group.
name
string
The name for this instance group manager. The name must not be used by another manager for the instance group. If unspecified, the name will be a hyphenated list of randomly-selected words.
Response
201 - The instance group manager was created successfully.
created_at
string
The date and time that the instance group manager was created
href
string
The URL for this instance group manager
id
string
The unique identifier for this instance group manager
management_enabled
boolean
Indicates whether this manager will control the instance group.
name
string
The name for this instance group manager. The name is unique across all managers for the instance group.
updated_at
string
The date and time that the instance group manager was updated
400 - An invalid instance group manager prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - An instance group manager prototype object conflicts with another manager
for the instance group.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete an instance group manager
DELETE /instance_groups/{instance_group_id}/managers/{id}
This request deletes an instance group manager. This operation cannot be reversed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.update
Auditing
Calling this method generates the following auditing event.
is.instance-group.manager.delete
Request
Response
204 - The instance group manager was deleted successfully.
403 - The instance group manager is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance group manager with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve an instance group manager
GET /instance_groups/{instance_group_id}/managers/{id}
This request retrieves a single instance group manager specified by identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.read
Auditing
Calling this method generates the following auditing event.
is.instance-group.manager.read
Request
Response
200 - The instance group manager was retrieved successfully.
created_at
string
The date and time that the instance group manager was created
href
string
The URL for this instance group manager
id
string
The unique identifier for this instance group manager
management_enabled
boolean
Indicates whether this manager will control the instance group.
name
string
The name for this instance group manager. The name is unique across all managers for the instance group.
updated_at
string
The date and time that the instance group manager was updated
404 - An instance group manager with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update an instance group manager
PATCH /instance_groups/{instance_group_id}/managers/{id}
This request updates an instance group manager with the information provided instance group manager patch.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.update
Auditing
Calling this method generates the following auditing event.
is.instance-group.manager.update
Request
Request Body
The instance group manager patch
Response
200 - The instance group manager was updated successfully.
created_at
string
The date and time that the instance group manager was created
href
string
The URL for this instance group manager
id
string
The unique identifier for this instance group manager
management_enabled
boolean
Indicates whether this manager will control the instance group.
name
string
The name for this instance group manager. The name is unique across all managers for the instance group.
updated_at
string
The date and time that the instance group manager was updated
400 - An invalid instance group manager patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The instance group manager is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance group manager with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - An instance group manager patch conflicts with another manager for the instance group.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List actions for an instance group manager
GET /instance_groups/{instance_group_id}/managers/{instance_group_manager_id}/actions
This request lists instance group actions for an instance group manager.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.listis.instance-group.instance-group.read
Auditing
Calling this method generates the following auditing event.
is.instance-group.manager_action.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The instance group manager actions were retrieved successfully.
actions
array
A page of actions for the instance group manager
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - An instance group manager with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create an instance group manager action
POST /instance_groups/{instance_group_id}/managers/{instance_group_manager_id}/actions
This request creates a new instance group manager action
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.update
Auditing
Calling this method generates the following auditing event.
is.instance-group.manager_action.update
Request
Request Body
InstanceGroupManagerActionPrototype
The instance group manager action prototype object
name
string
The name for this instance group manager action. The name must not be used by another action for the instance group manager. If unspecified, the name will be a hyphenated list of randomly-selected words.
Response
201 - The instance group manager action was created successfully.
auto_delete
boolean
Indicates whether this scheduled action will be automatically deleted after it has completed and `auto_delete_timeout` hours have passed.
auto_delete_timeout
integer
If `auto_delete` is `true`, and this scheduled action has finished, the hours after which it will be automatically deleted. If the value is `0`, the action will be deleted once it has finished.
created_at
string
The date and time that the instance group manager action was created
href
string
The URL for this instance group manager action
id
string
The unique identifier for this instance group manager action
name
string
The name for this instance group manager action. The name is unique across all actions for the instance group manager.
resource_type
string
The resource type
status
string
The status of the instance group action
- `active`: Action is ready to be run
- `completed`: Action was completed successfully
- `failed`: Action could not be completed successfully
- `incompatible`: Action parameters are not compatible with the group or manager
- `omitted`: Action was not applied because this action's manager was disabled
The enumerated values for this property may expand in the future.
updated_at
string
The date and time that the instance group manager action was updated
400 - An invalid instance group manager action prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - An instance group manager action prototype object conflicts with another action
for the instance group manager.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete specified instance group manager action
DELETE /instance_groups/{instance_group_id}/managers/{instance_group_manager_id}/actions/{id}
This request deletes an instance group manager action. This operation cannot be reversed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.update
Auditing
Calling this method generates the following auditing event.
is.instance-group.manager_action.update
Request
Response
204 - The instance group manager action was deleted successfully.
403 - The instance group manager action is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance group manager action with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve specified instance group manager action
GET /instance_groups/{instance_group_id}/managers/{instance_group_manager_id}/actions/{id}
This request retrieves a single instance group manager action specified by identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.read
Auditing
Calling this method generates the following auditing event.
is.instance-group.instance-group.read
Request
Response
200 - The instance group manager action was retrieved successfully.
auto_delete
boolean
Indicates whether this scheduled action will be automatically deleted after it has completed and `auto_delete_timeout` hours have passed.
auto_delete_timeout
integer
If `auto_delete` is `true`, and this scheduled action has finished, the hours after which it will be automatically deleted. If the value is `0`, the action will be deleted once it has finished.
created_at
string
The date and time that the instance group manager action was created
href
string
The URL for this instance group manager action
id
string
The unique identifier for this instance group manager action
name
string
The name for this instance group manager action. The name is unique across all actions for the instance group manager.
resource_type
string
The resource type
status
string
The status of the instance group action
- `active`: Action is ready to be run
- `completed`: Action was completed successfully
- `failed`: Action could not be completed successfully
- `incompatible`: Action parameters are not compatible with the group or manager
- `omitted`: Action was not applied because this action's manager was disabled
The enumerated values for this property may expand in the future.
updated_at
string
The date and time that the instance group manager action was updated
404 - An instance group manager action with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update specified instance group manager action
PATCH /instance_groups/{instance_group_id}/managers/{instance_group_manager_id}/actions/{id}
This request updates an instance group manager action.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.update
Auditing
Calling this method generates the following auditing event.
is.instance-group.manager_action.update
Request
Request Body
The instance group manager action patch
Response
200 - The instance group manager action was updated successfully.
auto_delete
boolean
Indicates whether this scheduled action will be automatically deleted after it has completed and `auto_delete_timeout` hours have passed.
auto_delete_timeout
integer
If `auto_delete` is `true`, and this scheduled action has finished, the hours after which it will be automatically deleted. If the value is `0`, the action will be deleted once it has finished.
created_at
string
The date and time that the instance group manager action was created
href
string
The URL for this instance group manager action
id
string
The unique identifier for this instance group manager action
name
string
The name for this instance group manager action. The name is unique across all actions for the instance group manager.
resource_type
string
The resource type
status
string
The status of the instance group action
- `active`: Action is ready to be run
- `completed`: Action was completed successfully
- `failed`: Action could not be completed successfully
- `incompatible`: Action parameters are not compatible with the group or manager
- `omitted`: Action was not applied because this action's manager was disabled
The enumerated values for this property may expand in the future.
updated_at
string
The date and time that the instance group manager action was updated
400 - An invalid instance group manager action patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The instance group manager action is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance group manager action with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The instance group manager action patch conflicts with another action
for the instance group manager.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List policies for an instance group manager
GET /instance_groups/{instance_group_id}/managers/{instance_group_manager_id}/policies
This request lists policies for an instance group manager.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.read
Auditing
Calling this method generates the following auditing event.
is.instance-group.manager_policy.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The instance group manager policies were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
policies
array
A page of policies for the instance group manager
total_count
integer
The total number of resources across all pages
404 - An instance group manager with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a policy for an instance group manager
POST /instance_groups/{instance_group_id}/managers/{instance_group_manager_id}/policies
This request creates a new instance group manager policy
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.update
Auditing
Calling this method generates the following auditing event.
is.instance-group.manager_policy.create
Request
Request Body
InstanceGroupManagerPolicyPrototype
The instance group manager policy prototype object
name
string
The name for this instance group manager policy. The name must not be used by another policy for the instance group manager. If unspecified, the name will be a hyphenated list of randomly-selected words.
Response
201 - The instance group manager policy was created successfully.
created_at
string
The date and time that the instance group manager policy was created
href
string
The URL for this instance group manager policy
id
string
The unique identifier for this instance group manager policy
name
string
The name for this instance group manager policy. The name is unique across all policies for the instance group manager.
updated_at
string
The date and time that the instance group manager policy was updated
400 - An invalid instance group manager policy prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The instance group manager policy prototype object conflicts with another policy
for the instance group manager.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete an instance group manager policy
DELETE /instance_groups/{instance_group_id}/managers/{instance_group_manager_id}/policies/{id}
This request deletes an instance group manager policy. This operation cannot be reversed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.update
Auditing
Calling this method generates the following auditing event.
is.instance-group.manager_policy.delete
Request
Response
204 - The instance group manager policy was deleted successfully.
403 - The instance group manager policy is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance group manager policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve an instance group manager policy
GET /instance_groups/{instance_group_id}/managers/{instance_group_manager_id}/policies/{id}
This request retrieves a single instance group manager policy specified by identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.read
Auditing
Calling this method generates the following auditing event.
is.instance-group.manager_policy.read
Request
Response
200 - The instance group manager policy was retrieved successfully.
created_at
string
The date and time that the instance group manager policy was created
href
string
The URL for this instance group manager policy
id
string
The unique identifier for this instance group manager policy
name
string
The name for this instance group manager policy. The name is unique across all policies for the instance group manager.
updated_at
string
The date and time that the instance group manager policy was updated
404 - An instance group manager policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update an instance group manager policy
PATCH /instance_groups/{instance_group_id}/managers/{instance_group_manager_id}/policies/{id}
This request updates an instance group manager policy.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.update
Auditing
Calling this method generates the following auditing event.
is.instance-group.manager_policy.update
Request
Request Body
The instance group manager policy patch
Response
200 - The instance group manager policy was updated successfully.
created_at
string
The date and time that the instance group manager policy was created
href
string
The URL for this instance group manager policy
id
string
The unique identifier for this instance group manager policy
name
string
The name for this instance group manager policy. The name is unique across all policies for the instance group manager.
updated_at
string
The date and time that the instance group manager policy was updated
400 - An invalid instance group manager policy patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The instance group manager policy is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance group manager policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The instance group manager policy patch conflicts with another policy
for the instance group manager.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete memberships from an instance group
DELETE /instance_groups/{instance_group_id}/memberships
This request deletes memberships of an instance group. This operation cannot be reversed. Memberships that have `delete_instance_on_membership_delete` set to `true` will also have their instances deleted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.update
Auditing
Calling this method generates the following auditing event.
is.instance-group.membership.delete
Request
Response
204 - The instance group memberships were deleted successfully.
403 - The instance group memberships are not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List memberships for an instance group
GET /instance_groups/{instance_group_id}/memberships
This request lists instance group memberships for an instance group.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.read
Auditing
Calling this method generates the following auditing event.
is.instance-group.membership.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The instance group memberships were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
memberships
array
A page of memberships for the instance group
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - An instance group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete an instance group membership
DELETE /instance_groups/{instance_group_id}/memberships/{id}
This request deletes a memberships of an instance group. This operation cannot be reversed. reversed. If the membership has `delete_instance_on_membership_delete` set to `true`, the instance will also be deleted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.updateis.instance.instance.deleteis.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
is.instance-group.membership.delete
Request
Response
204 - The instance group membership was deleted successfully.
403 - The instance group membership is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance group membership with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve an instance group membership
GET /instance_groups/{instance_group_id}/memberships/{id}
This request retrieves a single instance group membership specified by identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.read
Auditing
Calling this method generates the following auditing event.
is.instance-group.membership.read
Request
Response
200 - The instance group membership was retrieved successfully.
created_at
string
The date and time that the instance group manager policy was created
delete_instance_on_membership_delete
boolean
If set to true, when deleting the membership the instance will also be deleted
href
string
The URL for this instance group membership
id
string
The unique identifier for this instance group membership
instance
InstanceReference
instance_template
InstanceTemplateReference
name
string
The name for this instance group membership. The name is unique across all memberships for the instance group.
pool_member
LoadBalancerPoolMemberReference
status
string
The status of the instance group membership
- `deleting`: Membership is deleting dependent resources
- `failed`: Membership was unable to maintain dependent resources
- `healthy`: Membership is active and serving in the group
- `pending`: Membership is waiting for dependent resources
- `unhealthy`: Membership has unhealthy dependent resources
The enumerated values for this property may expand in the future.
updated_at
string
The date and time that the instance group membership was updated
404 - An instance group membership with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update an instance group membership
PATCH /instance_groups/{instance_group_id}/memberships/{id}
This request updates an instance group membership with the information provided instance group membership patch.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance-group.instance-group.update
Auditing
Calling this method generates the following auditing event.
is.instance-group.membership.update
Request
Request Body
The instance group membership patch
Response
200 - The instance group membership was updated successfully.
created_at
string
The date and time that the instance group manager policy was created
delete_instance_on_membership_delete
boolean
If set to true, when deleting the membership the instance will also be deleted
href
string
The URL for this instance group membership
id
string
The unique identifier for this instance group membership
instance
InstanceReference
instance_template
InstanceTemplateReference
name
string
The name for this instance group membership. The name is unique across all memberships for the instance group.
pool_member
LoadBalancerPoolMemberReference
status
string
The status of the instance group membership
- `deleting`: Membership is deleting dependent resources
- `failed`: Membership was unable to maintain dependent resources
- `healthy`: Membership is active and serving in the group
- `pending`: Membership is waiting for dependent resources
- `unhealthy`: Membership has unhealthy dependent resources
The enumerated values for this property may expand in the future.
updated_at
string
The date and time that the instance group membership was updated
400 - An invalid instance group membership patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The instance group membership is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance group membership with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The instance group membership patch conflicts with another membership for
the instance group.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List instances
GET /instances
This request lists instances in the region.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.listis.instance.instance.read
Auditing
Calling this method generates the following auditing event.
is.instance.instance.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
name
string
Filters the collection to resources with a `name` property matching the exact specified name.
availability.class
Filters the collection to instances with an `availability.class` property matching the specified value.
cluster_network.id
Filters the collection to instances with a `cluster_network.id` property matching the specified identifier.
cluster_network.crn
string
Filters the collection to instances with a `cluster_network.crn` property matching the specified CRN.
cluster_network.name
string
Filters the collection to resources with a `cluster_network.name` property matching the exact specified name.
dedicated_host.id
Filters the collection to resources with a `dedicated_host.id` property matching the specified identifier.
dedicated_host.crn
string
Filters the collection to resources with a `dedicated_host.crn` property matching the specified CRN.
dedicated_host.name
string
Filters the collection to resources with a `dedicated_host.name` property matching the exact specified name.
instance_group_membership.instance_group.id
string
Filters the collection to instances with an `instance_group_membership.instance_group.id` property matching the specified instance group identifier.
instance_group_membership.instance_group.crn
string
Filters the collection to instances with an `instance_group_membership.instance_group.crn` property matching the specified instance group CRN.
placement_group.id
Filters the collection to resources with a `placement_target.id` property matching the specified placement group identifier.
placement_group.crn
string
Filters the collection to resources with a `placement_target.crn` property matching the specified placement group CRN.
placement_group.name
string
Filters the collection to resources with a `placement_target.name` property matching the exact specified placement group name.
reservation_affinity.policy
string
Filters the collection to instances with a `reservation_affinity.policy` property matching the specified value.
reservation.id
Filters the collection to resources with a `reservation.id` property matching the specified identifier.
reservation.crn
string
Filters the collection to resources with a `reservation.crn` property matching the specified identifier.
reservation.name
string
Filters the collection to resources with a `reservation.name` property matching the specified identifier.
vpc.id
Filters the collection to resources with a `vpc.id` property matching the specified identifier.
vpc.crn
string
Filters the collection to resources with a `vpc.crn` property matching the specified CRN.
vpc.name
string
Filters the collection to resources with a `vpc.name` property matching the exact specified name.
Response
200 - The instances were retrieved successfully.
first
object
A link to the first page of resources
instances
array
A page of virtual server instances
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
POST /instances
This request provisions a new instance from an instance prototype object. The prototype object is structured in the same way as a retrieved instance, and contains the information necessary to provision the new instance. The instance is automatically started.
For this request to succeed, the properties in the request must adhere to the source's `allowed_use` property.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.createis.instance.instance.ip-spoofingis.subnet.subnet.operateis.subnet.subnet.updateis.reservation.reservation.operateis.volume.volume.createis.volume.volume.manage-allowed-useis.volume.volume.operateis.security-group.security-group.operateis.vpc.vpc.operateis.key.key.operateis.image.image.operateis.dedicated-host.dedicated-host-group.operateis.dedicated-host.dedicated-host.operateis.snapshot.snapshot.operateis.placement-group.placement-group.operateglobalcatalog-collection.instance.retrieveiam-identity.profile.getiam-identity.profile.updateiam-identity.profile.linkToResourceis.volume.volume.allow-remote-account-snapshot-restoreis.volume.volume.manage-attachment-modeis.cluster-network.interface.createis.cluster-network.interface.operateis.cluster-network.subnet.operateis.cluster-network.subnet.updateis.virtual-network-interface.virtual-network-interface.createis.virtual-network-interface.virtual-network-interface.operateis.virtual-network-interface.virtual-network-interface.manage-infrastructure-natis.virtual-network-interface.virtual-network-interface.manage-ip-spoofingis.virtual-network-interface.virtual-network-interface.manage-protocol-state-filtering-mode
Auditing
Calling this method generates the following auditing event.
is.instance.instance.createis.instance.network-attachment.createis.instance.network-interface.createis.instance.network-interface.attachis.subnet.reserved-ip.attachis.subnet.reserved-ip.createis.security-group.security-group.attachis.subnet.subnet.updateis.cluster-network.interface.attachis.cluster-network.interface.createis.cluster-network.subnet.updateis.cluster-network.subnet-reserved-ip.attachis.cluster-network.subnet-reserved-ip.createis.instance.cluster-network-attachment.attachis.instance.cluster-network-attachment.createis.instance.software-attachment.createis.virtual-network-interface.virtual-network-interface.createis.virtual-network-interface.virtual-network-interface.attachis.instance.network-attachment.attach
Request
Request Body
InstancePrototype
The instance prototype object
availability
InstanceAvailabilityPrototype
availability_policy
InstanceAvailabilityPolicyPrototype
The availability policy to use for this virtual server instance
host_failure
string
The action to perform if the compute host experiences a failure:
- `restart`: Restart the virtual server instance
- `stop`: Leave the virtual server instance stopped
See handling host failures for details.
preemption
string
The action to perform if the virtual server instance is preempted:
- `delete`: Delete the virtual server instance
- `stop`: Leave the virtual server instance stopped
See virtual server instance preemption for details.
cluster_network_attachments
array
The cluster network attachments to create for this virtual server instance. A cluster network attachment represents a device that is connected to a cluster network. The number of network attachments must match one of the values from the instance profile's `cluster_network_attachment_count` before the instance can be started.
confidential_compute_mode
string
The confidential compute mode to use for this virtual server instance.
If unspecified, the default confidential compute mode from the profile will be used.
default_trusted_profile
object
The default trusted profile configuration to use for this virtual server instance
This property's value is used when provisioning the virtual server instance, and can only be changed by reinitializing the instance. Accordingly, it is reflected as an instance initialization property.
auto_link
boolean
If set to `true`, the system will create a link to the specified `target` trusted profile during instance creation. Regardless of whether a link is created by the system or manually using the IAM Identity service, it will be automatically deleted when the instance is deleted.
target
Required *
object
Identifies a trusted profile by a unique property.
enable_secure_boot
boolean
Indicates whether secure boot is enabled for this virtual server instance.
If unspecified, the default secure boot mode from the profile will be used.
keys
array
The public SSH keys for this virtual server instance. Keys will be made available to the virtual server instance as cloud-init vendor data. For cloud-init enabled images, these keys will also be added as SSH authorized keys for the default user.
For Windows images, the keys of type `rsa` must be specified, and one will be selected to encrypt the administrator password. Keys are optional for other images, but if no keys are specified, the instance will be inaccessible unless the specified image provides another means of access.
This property's value is used when provisioning the virtual server instance, and can only be changed by reinitializing the instance. Accordingly, it is reflected as an instance initialization property.
metadata_service
InstanceMetadataServicePrototype
The metadata service configuration
enabled
boolean
Indicates whether the metadata service endpoint will be available to the virtual server instance
protocol
string
The communication protocol to use for the metadata service endpoint. Applies only when the metadata service is enabled.
- `http`: HTTP protocol (unencrypted)
- `https`: HTTP Secure protocol
response_hop_limit
integer
The hop limit (IP time to live) for IP response packets from the metadata service. Applies only when the metadata service is enabled.
name
string
The name for this virtual server instance. The name must not be used by another virtual server instance in the region. If unspecified, the name will be a hyphenated list of randomly-selected words.
The system hostname will be based on this name.
placement_target
InstancePlacementTargetPrototype
The placement restrictions to use for the virtual server instance.
If specified, `reservation_affinity.policy` must be `disabled`. If specifying a dedicated host or dedicated host group, the `vcpu.percentage` must be `100` and the instance must have two or more vCPUs.
profile
object
Identifies an instance profile by a unique property.
reservation_affinity
InstanceReservationAffinityPrototype
The reservation affinity settings for this virtual server instance. If specified, the instance must have two or more vCPUs, and `vcpu.percentage` must be `100`.
policy
string
The reservation affinity policy to use for this virtual server instance:
- `disabled`: Reservations will not be used
- `manual`: Reservations in `pool` will be available for use
- `automatic`: Reservations with an `affinity_policy` of `automatic` that have the same `profile` and `zone` as this virtual server instance will be available for use.
The policy will default to `manual` if `pool` is not empty. The policy will default to `disabled` if a `placement_target` is set. The policy will default to `disabled` if the provided instance configuration is restricted from enabling reservations. The policy will default to `automatic` in all other cases.
The policy must be `disabled` if `placement_target` is specified.
pool
array
The pool of reservations available for use by this virtual server instance.
Specified reservations must have a `status` of `active`, and have the same `profile` and `zone` as this virtual server instance.
If `policy` is `manual`, `pool` must be specified with one reservation. If `policy` is `disabled` or `automatic` and `pool` is specified, it must be empty. If `policy` is `manual`, the `pool` must contain a reservation with available capacity.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
threads_per_core
integer
The threads per core to use for this virtual server instance. Must be one of the values in the profile's `threads_per_core.values`.
If unspecified, the default threads per core from the profile will be used.
total_volume_bandwidth
integer
The amount of bandwidth (in megabits per second) allocated exclusively to instance storage volumes. An increase in this value will result in a corresponding decrease to `total_network_bandwidth`.
user_data
string
The user data to make available when setting up the virtual server instance.
vcpu
InstanceVCPUPrototype
percentage
integer
The percentage of VCPU clock cycles allocated to the instance.
The virtual server instance `vcpu.percentage` must be `100` when:
- The virtual server instance `placement_target` is a dedicated host or dedicated host group.
- The virtual server instance `reservation_affinity.policy` is not `disabled`.
If unspecified, the default for `vcpu_percentage` from the profile will be used.
volume_attachments
array
The additional volume attachments to create for the virtual server instance
volume_bandwidth_qos_mode
string
The volume bandwidth QoS mode to use for this virtual server instance. The specified value must be listed in the instance profile's `volume_bandwidth_qos_modes`.
If unspecified, the default volume bandwidth QoS mode from the profile will be used.
vpc
object
Identifies a VPC by a unique property.
Response
201 - The instance was created successfully.
availability
InstanceAvailability
availability_policy
InstanceAvailabilityPolicy
The availability policy for this virtual server instance
bandwidth
integer
The total bandwidth (in megabits per second) shared across the instance network attachments or instance network interfaces and storage volumes of the virtual server instance
boot_volume_attachment
object
The boot volume attachment for this virtual server instance
catalog_offering
object
If present, this virtual server instance was provisioned from a catalog.
cluster_network
object
If present, the cluster network that this virtual server instance resides in
cluster_network_attachments
array
The cluster network attachments for this virtual server instance.
The cluster network attachments are ordered for consistent instance configuration.
confidential_compute_mode
string
The confidential compute mode for this virtual server instance.
created_at
string
The date and time that the virtual server instance was created
crn
string
The CRN for this virtual server instance
dedicated_host
object
If present, the dedicated host this virtual server instance has been placed on.
disks
array
The instance disks for this virtual server instance.
enable_secure_boot
boolean
Indicates whether secure boot is enabled for this virtual server instance.
gpu
InstanceGPU
The virtual server instance GPU configuration
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this virtual server instance
id
string
The unique identifier for this virtual server instance
image
object
The image the virtual server instance was provisioned from
instance_group_membership
object
The instance group membership for this virtual server instance
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the virtual server instance.
memory
integer
The amount of memory, truncated to whole gibibytes.
The maximum limit for this property may expand in the future.
metadata_service
InstanceMetadataService
The metadata service configuration
name
string
The name for this virtual server instance. The name is unique across all virtual server instances in the region.
network_attachments
array
The network attachments for this virtual server instance, including the primary network attachment.
network_interfaces
array
The network interfaces for this instance, including the primary network interface.
If this instance has network attachments, each network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface.
numa_count
integer
The number of NUMA nodes this virtual server instance is provisioned on.
This property will be absent if the instance's `status` is not `running`.
placement_target
InstancePlacementTarget
The placement restrictions for the virtual server instance
primary_network_attachment
object
The primary network attachment for this virtual server instance
primary_network_interface
object
The primary network interface for this virtual server instance.
If this instance has network attachments, this primary network interface is a read-only representation of the primary network attachment and its attached virtual network interface.
profile
object
The profile for this virtual server instance
reservation
object
The reservation used by this virtual server instance.
If absent, no reservation is in use.
reservation_affinity
InstanceReservationAffinity
resource_group
object
The resource group for this instance
resource_type
string
The resource type
software_attachments
InstanceSoftwareAttachments
The software attachments for this instance.
startable
boolean
Indicates whether the state of the virtual server instance permits a start request.
status
string
The status of the virtual server instance.
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
threads_per_core
integer
The threads per core for this virtual server instance.
total_network_bandwidth
integer
The amount of bandwidth (in megabits per second) allocated exclusively to instance network attachments or instance network interfaces.
total_volume_bandwidth
integer
The amount of bandwidth (in megabits per second) allocated exclusively to instance storage volumes. An increase in this value will result in a corresponding decrease to `total_network_bandwidth`.
vcpu
InstanceVCPU
The virtual server instance VCPU configuration
volume_attachments
array
The volume attachments for this virtual server instance, including the boot volume attachment.
volume_bandwidth_qos_mode
string
The volume bandwidth QoS mode for this virtual server instance.
vpc
object
The VPC this virtual server instance resides in
zone
object
The zone this virtual server instance resides in
400 - An invalid instance prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The instance prototype object conflicts with another instance in the region, or the
provided instance prototype object specified one or more of:
- An image that is not provisionable
- A placement target that does not support the instance profile
- A placement target and reservation attachment policy that conflict with each other
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete an instance
DELETE /instances/{id}
This request deletes an instance. This operation cannot be reversed. Any floating IPs associated with instance network interfaces are implicitly disassociated. All virtual network interfaces with `auto_delete` set to `true` targeting instance network attachments on the instance are automatically deleted. All flow log collectors with `auto_delete` set to `true` targeting the instance, the instance network attachments, the instance network interfaces, or the automatically deleted virtual network interfaces are automatically deleted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.delete
Auditing
Calling this method generates the following auditing event.
is.instance.instance.deleteis.instance.network-attachment.deleteis.instance.network-attachment.detachis.instance.network-interface.deleteis.instance.network-interface.detachis.subnet.reserved-ip.detachis.subnet.reserved-ip.deleteis.security-group.security-group.detachis.subnet.subnet.updateis.virtual-network-interface.virtual-network-interface.detachis.virtual-network-interface.virtual-network-interface.deleteis.floating-ip.floating-ip.detachis.flow-log-collector.flow-log-collector.deleteis.flow-log-collector.flow-log-collector.detachis.cluster-network.interface.deleteis.cluster-network.interface.detachis.cluster-network.subnet-reserved-ip.deleteis.cluster-network.subnet-reserved-ip.detachis.cluster-network.subnet.updateis.instance.cluster-network-attachment.deleteis.instance.cluster-network-attachment.detachis.instance.software-attachment.delete
Request
Path Parameters
Query Parameters
Response
204 - The instance was deleted successfully.
403 - The instance is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the instance
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve an instance
GET /instances/{id}
This request retrieves a single instance specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.read
Auditing
Calling this method generates the following auditing event.
is.instance.instance.read
Request
Response
200 - The instance was retrieved successfully.
availability
InstanceAvailability
availability_policy
InstanceAvailabilityPolicy
The availability policy for this virtual server instance
bandwidth
integer
The total bandwidth (in megabits per second) shared across the instance network attachments or instance network interfaces and storage volumes of the virtual server instance
boot_volume_attachment
object
The boot volume attachment for this virtual server instance
catalog_offering
object
If present, this virtual server instance was provisioned from a catalog.
cluster_network
object
If present, the cluster network that this virtual server instance resides in
cluster_network_attachments
array
The cluster network attachments for this virtual server instance.
The cluster network attachments are ordered for consistent instance configuration.
confidential_compute_mode
string
The confidential compute mode for this virtual server instance.
created_at
string
The date and time that the virtual server instance was created
crn
string
The CRN for this virtual server instance
dedicated_host
object
If present, the dedicated host this virtual server instance has been placed on.
disks
array
The instance disks for this virtual server instance.
enable_secure_boot
boolean
Indicates whether secure boot is enabled for this virtual server instance.
gpu
InstanceGPU
The virtual server instance GPU configuration
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this virtual server instance
id
string
The unique identifier for this virtual server instance
image
object
The image the virtual server instance was provisioned from
instance_group_membership
object
The instance group membership for this virtual server instance
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the virtual server instance.
memory
integer
The amount of memory, truncated to whole gibibytes.
The maximum limit for this property may expand in the future.
metadata_service
InstanceMetadataService
The metadata service configuration
name
string
The name for this virtual server instance. The name is unique across all virtual server instances in the region.
network_attachments
array
The network attachments for this virtual server instance, including the primary network attachment.
network_interfaces
array
The network interfaces for this instance, including the primary network interface.
If this instance has network attachments, each network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface.
numa_count
integer
The number of NUMA nodes this virtual server instance is provisioned on.
This property will be absent if the instance's `status` is not `running`.
placement_target
InstancePlacementTarget
The placement restrictions for the virtual server instance
primary_network_attachment
object
The primary network attachment for this virtual server instance
primary_network_interface
object
The primary network interface for this virtual server instance.
If this instance has network attachments, this primary network interface is a read-only representation of the primary network attachment and its attached virtual network interface.
profile
object
The profile for this virtual server instance
reservation
object
The reservation used by this virtual server instance.
If absent, no reservation is in use.
reservation_affinity
InstanceReservationAffinity
resource_group
object
The resource group for this instance
resource_type
string
The resource type
software_attachments
InstanceSoftwareAttachments
The software attachments for this instance.
startable
boolean
Indicates whether the state of the virtual server instance permits a start request.
status
string
The status of the virtual server instance.
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
threads_per_core
integer
The threads per core for this virtual server instance.
total_network_bandwidth
integer
The amount of bandwidth (in megabits per second) allocated exclusively to instance network attachments or instance network interfaces.
total_volume_bandwidth
integer
The amount of bandwidth (in megabits per second) allocated exclusively to instance storage volumes. An increase in this value will result in a corresponding decrease to `total_network_bandwidth`.
vcpu
InstanceVCPU
The virtual server instance VCPU configuration
volume_attachments
array
The volume attachments for this virtual server instance, including the boot volume attachment.
volume_bandwidth_qos_mode
string
The volume bandwidth QoS mode for this virtual server instance.
vpc
object
The VPC this virtual server instance resides in
zone
object
The zone this virtual server instance resides in
404 - An instance with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
PATCH /instances/{id}
This request updates an instance with the information in a provided instance patch. The instance patch object is structured in the same way as a retrieved instance and contains only the information to be updated.
For this request to succeed, the properties in the request must adhere to the `allowed_use` property in the volume referenced by `boot_volume_attachment.volume`.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.updateis.reservation.reservation.operateis.dedicated-host.dedicated-host-group.operateis.dedicated-host.dedicated-host.operate
Auditing
Calling this method generates the following auditing event.
is.instance.instance.updateis.instance.instance.detachis.reservation.reservation.detachis.instance.instance.attachis.reservation.reservation.attach
Request
Request Body
The instance patch
Path Parameters
Query Parameters
Response
200 - The instance was updated successfully.
availability
InstanceAvailability
availability_policy
InstanceAvailabilityPolicy
The availability policy for this virtual server instance
bandwidth
integer
The total bandwidth (in megabits per second) shared across the instance network attachments or instance network interfaces and storage volumes of the virtual server instance
boot_volume_attachment
object
The boot volume attachment for this virtual server instance
catalog_offering
object
If present, this virtual server instance was provisioned from a catalog.
cluster_network
object
If present, the cluster network that this virtual server instance resides in
cluster_network_attachments
array
The cluster network attachments for this virtual server instance.
The cluster network attachments are ordered for consistent instance configuration.
confidential_compute_mode
string
The confidential compute mode for this virtual server instance.
created_at
string
The date and time that the virtual server instance was created
crn
string
The CRN for this virtual server instance
dedicated_host
object
If present, the dedicated host this virtual server instance has been placed on.
disks
array
The instance disks for this virtual server instance.
enable_secure_boot
boolean
Indicates whether secure boot is enabled for this virtual server instance.
gpu
InstanceGPU
The virtual server instance GPU configuration
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this virtual server instance
id
string
The unique identifier for this virtual server instance
image
object
The image the virtual server instance was provisioned from
instance_group_membership
object
The instance group membership for this virtual server instance
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the virtual server instance.
memory
integer
The amount of memory, truncated to whole gibibytes.
The maximum limit for this property may expand in the future.
metadata_service
InstanceMetadataService
The metadata service configuration
name
string
The name for this virtual server instance. The name is unique across all virtual server instances in the region.
network_attachments
array
The network attachments for this virtual server instance, including the primary network attachment.
network_interfaces
array
The network interfaces for this instance, including the primary network interface.
If this instance has network attachments, each network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface.
numa_count
integer
The number of NUMA nodes this virtual server instance is provisioned on.
This property will be absent if the instance's `status` is not `running`.
placement_target
InstancePlacementTarget
The placement restrictions for the virtual server instance
primary_network_attachment
object
The primary network attachment for this virtual server instance
primary_network_interface
object
The primary network interface for this virtual server instance.
If this instance has network attachments, this primary network interface is a read-only representation of the primary network attachment and its attached virtual network interface.
profile
object
The profile for this virtual server instance
reservation
object
The reservation used by this virtual server instance.
If absent, no reservation is in use.
reservation_affinity
InstanceReservationAffinity
resource_group
object
The resource group for this instance
resource_type
string
The resource type
software_attachments
InstanceSoftwareAttachments
The software attachments for this instance.
startable
boolean
Indicates whether the state of the virtual server instance permits a start request.
status
string
The status of the virtual server instance.
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
threads_per_core
integer
The threads per core for this virtual server instance.
total_network_bandwidth
integer
The amount of bandwidth (in megabits per second) allocated exclusively to instance network attachments or instance network interfaces.
total_volume_bandwidth
integer
The amount of bandwidth (in megabits per second) allocated exclusively to instance storage volumes. An increase in this value will result in a corresponding decrease to `total_network_bandwidth`.
vcpu
InstanceVCPU
The virtual server instance VCPU configuration
volume_attachments
array
The volume attachments for this virtual server instance, including the boot volume attachment.
volume_bandwidth_qos_mode
string
The volume bandwidth QoS mode for this virtual server instance.
vpc
object
The VPC this virtual server instance resides in
zone
object
The zone this virtual server instance resides in
400 - An invalid instance patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The instance is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The instance patch conflicts with another instance in the region,
or one or more of the following:
- The requested update requires that the instance be stopped first
- The instance profile does not support the instance configuration
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the instance
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve initialization configuration for an instance
GET /instances/{id}/initialization
This request retrieves configuration used to initialize the instance, such as SSH keys and the Windows administrator password. These can subsequently be changed on the instance and therefore may not be current.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.read
Auditing
Calling this method generates the following auditing event.
Request
Path Parameters
id
Required *
The instance identifier
Query Parameters
Response
200 - The initialization configuration was retrieved successfully.
default_trusted_profile
object
The default trusted profile configuration specified at virtual server instance creation. If absent, no default trusted profile was specified.
keys
array
The public SSH keys used at instance initialization.
password
InstanceInitializationPassword
404 - An instance with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
POST /instances/{id}/reinitialize
This request reinitializes an instance with the information in a provided instance reinitialize prototype object. The instance must be stopped. Upon successful reinitiatilization, the instance will be started automatically. Capacity may not be available for the instance to become `running`.
Instances provisioned from a `catalog_offering` cannot be reinitialized.
This operation cannot be reversed. The previous initialization data will be fully replaced, the current boot volume will be destroyed and replaced, any local disks will be wiped, and the boot volume attachment identifier will change.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.updateis.volume.volume.createis.volume.volume.operateis.key.key.operateis.image.image.operateis.snapshot.snapshot.operateiam-identity.profile.getiam-identity.profile.updateiam-identity.profile.linkToResourceis.volume.volume.allow-remote-account-snapshot-restore
Auditing
Calling this method generates the following auditing event.
is.instance.initialization.update
Request
Request Body
InstanceReinitializePrototype
The instance reinitialize prototype object
default_trusted_profile
object
The default trusted profile configuration to use for this virtual server instance. If not specified, the instance will be reinitialized without a default trusted profile.
This property's value is used when reinitializing the virtual server instance, and can only be changed by reinitializing the instance. Accordingly, it is reflected as an instance initialization property.
auto_link
boolean
If set to `true`, the system will create a link to the specified `target` trusted profile during instance creation. Regardless of whether a link is created by the system or manually using the IAM Identity service, it will be automatically deleted when the instance is deleted.
target
Required *
object
Identifies a trusted profile by a unique property.
keys
array
The public SSH keys for the reinitialized instance. The keys will be made available to the virtual server instance as cloud-init vendor data. For cloud-init enabled images, the keys will also be added as SSH authorized keys for the [default user] (https://cloud.ibm.com/docs/vpc?topic=vpc-vsi_is_connecting_linux#determining-default-user-account).
For Windows images, only keys with a `type` value of `rsa` must be specified, and one will be selected to encrypt the administrator password. Keys are optional for other images.
If no keys are specified, the instance will be reinitialized without a key.
user_data
string
The user data to make available when setting up the virtual server instance. If not specified, the instance will be reinitialized without user data.
Path Parameters
id
Required *
The instance identifier
Query Parameters
Response
204 - The instance will be reinitialized.
400 - An invalid instance reinitialize prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The instance reinitialize prototype object conflicts with the instance state, or one
or more of the following:
- The instance is not stopped
- An image that is not provisionable was specified
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create an instance action
POST /instances/{instance_id}/actions
This request creates a new action which will be queued up to run as soon as any pending or running actions have completed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.operate
Auditing
Calling this method generates the following auditing event.
is.instance.action.create
Request
Request Body
InstanceActionPrototype
The instance action prototype object
force
boolean
If set to true, the action will be forced immediately, and all queued actions deleted. Ignored for the start action.
type
Required *
string
The type of action
Response
201 - The action was created successfully and will run in the order it was received.
completed_at
string
The date and time that the action was completed
created_at
string
The date and time that the action was created
force
boolean
If set to true, the action will be forced immediately, and all queued actions deleted. Ignored for the start action.
href
string
The URL for this instance action
id
string
The identifier for this instance action
started_at
string
The date and time that the action was started
status
string
The current status of this action
type
string
The type of action
400 - The specified action could not be created.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The action is not allowed to be created.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List cluster network attachments on an instance
GET /instances/{instance_id}/cluster_network_attachments
This request lists cluster network attachments on an instance. A cluster network attachment represents a device on the instance to which a cluster network interface is attached.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.read
Auditing
Calling this method generates the following auditing event.
is.instance.cluster-network-attachment.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The instance cluster network attachments were retrieved successfully.
cluster_network_attachments
array
A page of ordered cluster network attachments (sorted based on the `before` property) for the instance. A cluster network attachment represents a device to which a cluster network interface is attached.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - An instance with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
POST /instances/{instance_id}/cluster_network_attachments
This request creates a cluster network attachment from an instance cluster network attachment prototype object. A cluster network attachment will attach the instance to a cluster network. The cluster network attachment prototype must specify a cluster network interface identity or a cluster network interface prototype.
The instance must be in a `stopped` or `stopping` state to create an instance cluster network attachment.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.cluster-network.interface.createis.cluster-network.interface.operateis.cluster-network.subnet.operateis.cluster-network.subnet.updateis.instance.instance.update
Auditing
Calling this method generates the following auditing event.
is.cluster-network.interface.attachis.cluster-network.interface.createis.cluster-network.subnet.updateis.cluster-network.subnet-reserved-ip.attachis.cluster-network.subnet-reserved-ip.createis.instance.cluster-network-attachment.attachis.instance.cluster-network-attachment.create
Request
Request Body
InstanceClusterNetworkAttachmentPrototype
The instance cluster network attachment prototype object.
before
InstanceClusterNetworkAttachmentBeforePrototype
The instance cluster network attachment to insert this instance cluster network attachment immediately before.
If unspecified, this instance cluster network attachment will be inserted after all existing instance cluster network attachments.
cluster_network_interface
Required *
InstanceClusterNetworkAttachmentPrototypeClusterNetworkInterface
A cluster network interface for the instance cluster network attachment. This can be specified using an existing cluster network interface that does not already have a `target`, or a prototype object for a new cluster network interface.
This instance must reside in the same VPC as the specified cluster network interface. The cluster network interface must reside in the same cluster network as the `cluster_network_interface` of any other `cluster_network_attachments` for this instance.
name
string
The name for this cluster network attachment. Names must be unique within the instance the cluster network attachment resides in. If unspecified, the name will be a hyphenated list of randomly-selected words. Names starting with `ibm-` are reserved for provider-owned resources, and are not allowed.
Response
201 - The instance cluster network attachment was created successfully.
before
InstanceClusterNetworkAttachmentBefore
The instance cluster network attachment that is immediately before. If absent, this is the last instance cluster network attachment.
cluster_network_interface
object
The associated cluster network subnet
href
string
The URL for this instance cluster network attachment
id
string
The unique identifier for this instance cluster network attachment
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
InstanceClusterNetworkAttachmentLifecycleState
The lifecycle state of the instance cluster network attachment
name
string
The name for this instance cluster network attachment. The name is unique across all network attachments for the instance.
resource_type
string
The resource type
400 - An invalid cluster network attachment prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The cluster network attachment prototype object conflicts with another cluster
network attachment for the instance.
errors
array
The errors that occurred.
trace
string
The unique error identifier
DELETE /instances/{instance_id}/cluster_network_attachments/{id}
This request deletes an instance cluster network attachment. The instance must be in a `stopped` or `stopping` state to delete an instance cluster network attachment.
This operation cannot be reversed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.update
Auditing
Calling this method generates the following auditing event.
is.cluster-network.interface.deleteis.cluster-network.interface.detachis.cluster-network.subnet-reserved-ip.deleteis.cluster-network.subnet-reserved-ip.detachis.cluster-network.subnet.updateis.instance.cluster-network-attachment.deleteis.instance.cluster-network-attachment.detach
Request
Response
202 - The instance network attachment deletion request was accepted.
before
InstanceClusterNetworkAttachmentBefore
The instance cluster network attachment that is immediately before. If absent, this is the last instance cluster network attachment.
cluster_network_interface
object
The associated cluster network subnet
href
string
The URL for this instance cluster network attachment
id
string
The unique identifier for this instance cluster network attachment
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
InstanceClusterNetworkAttachmentLifecycleState
The lifecycle state of the instance cluster network attachment
name
string
The name for this instance cluster network attachment. The name is unique across all network attachments for the instance.
resource_type
string
The resource type
403 - The instance cluster network attachment is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance cluster network attachment with the specified identifier could not be
found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve an instance cluster network attachment
GET /instances/{instance_id}/cluster_network_attachments/{id}
This request retrieves a single instance cluster network attachment specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.read
Auditing
Calling this method generates the following auditing event.
is.instance.cluster-network-attachment.read
Request
Response
200 - The instance cluster network attachment was retrieved successfully.
before
InstanceClusterNetworkAttachmentBefore
The instance cluster network attachment that is immediately before. If absent, this is the last instance cluster network attachment.
cluster_network_interface
object
The associated cluster network subnet
href
string
The URL for this instance cluster network attachment
id
string
The unique identifier for this instance cluster network attachment
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
InstanceClusterNetworkAttachmentLifecycleState
The lifecycle state of the instance cluster network attachment
name
string
The name for this instance cluster network attachment. The name is unique across all network attachments for the instance.
resource_type
string
The resource type
404 - An instance cluster network attachment with the specified identifier could not be
found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update an instance cluster network attachment
PATCH /instances/{instance_id}/cluster_network_attachments/{id}
This request updates an instance cluster network attachment with the information provided in an instance network interface patch object. The instance cluster network attachment patch object is structured in the same way as a retrieved instance cluster network attachment and needs to contain only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.update
Auditing
Calling this method generates the following auditing event.
is.instance.cluster-network-attachment.update
Request
Request Body
The instance cluster network attachment patch
Response
200 - The instance cluster network attachment was updated successfully.
before
InstanceClusterNetworkAttachmentBefore
The instance cluster network attachment that is immediately before. If absent, this is the last instance cluster network attachment.
cluster_network_interface
object
The associated cluster network subnet
href
string
The URL for this instance cluster network attachment
id
string
The unique identifier for this instance cluster network attachment
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
InstanceClusterNetworkAttachmentLifecycleState
The lifecycle state of the instance cluster network attachment
name
string
The name for this instance cluster network attachment. The name is unique across all network attachments for the instance.
resource_type
string
The resource type
400 - An invalid instance cluster network attachment patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance cluster network attachment with the specified identifier could not be
found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The cluster network attachment patch conflicts with another cluster network
attachment for the instance.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve the console WebSocket for an instance
GET /instances/{instance_id}/console
This retrieves a WebSocket providing a console for the instance. An `access_token` must first be created using the `console_access_token` API. The `serial` WebSocket provides a TTY based interface. The `vnc` WebSocket provides a VNC based graphical interface.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
is.instance.console.read
Request
Path Parameters
Query Parameters
access_token
A URL safe single-use token used to access the console WebSocket.
Response
101 - A WebSocket connection was established.
400 - The open console limit for virtual server instances was reached.
errors
array
The errors that occurred.
trace
string
The unique error identifier
401 - An invalid instance console access token was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
426 - The WebSocket protocol is required.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a console access token for an instance
POST /instances/{instance_id}/console_access_token
This request creates a new single-use console access token for an instance. All console configuration is provided at token create time, and the token is subsequently used in the `access_token` query parameter for the WebSocket request. The access token is only valid for a short period of time, and a maximum of one token is valid for a given instance at a time.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.operateis.instance.instance.console
Auditing
Calling this method generates the following auditing event.
is.instance.console-access-token.create
Request
Request Body
InstanceConsoleAccessTokenPrototype
The instance console access token prototype
console_type
Required *
string
The instance console type for which this token may be used
force
boolean
Indicates whether to disconnect an existing serial console session as the serial console cannot be shared. This has no effect on VNC consoles.
Response
200 - The access token was created successfully.
access_token
string
A URL safe single-use token used to access the console WebSocket.
console_type
string
The instance console type for which this token may be used
created_at
string
The date and time that the access token was created
expires_at
string
The date and time that the access token will expire
force
boolean
Indicates whether to disconnect an existing serial console session as the serial console cannot be shared. This has no effect on VNC consoles.
href
string
The URL to access this instance console.
400 - An invalid instance console access token prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The access token is not allowed to be created.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List disks on an instance
GET /instances/{instance_id}/disks
This request lists disks on an instance. A disk is a block device that is locally attached to the instance's physical host and is also referred to as instance storage. By default, the listed disks are sorted by their `created_at` property values, with the newest disk first.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.read
Auditing
Calling this method generates the following auditing event.
is.instance.disk.read
Request
Response
200 - The instance disks were retrieved successfully.
disks
array
The disks for the instance
404 - An instance with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve an instance disk
GET /instances/{instance_id}/disks/{id}
This request retrieves a single instance disk specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.read
Auditing
Calling this method generates the following auditing event.
is.instance.disk.read
Request
Response
200 - The instance disk was retrieved successfully.
created_at
string
The date and time that the disk was created
href
string
The URL for this instance disk
id
string
The unique identifier for this instance disk
interface_type
string
The disk interface used for attaching the disk.
The enumerated values for this property may expand in the future.
name
string
The name for this instance disk. The name is unique across all disks on the instance.
resource_type
string
The resource type
size
integer
The size of the disk in GB (gigabytes)
404 - An instance disk with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update an instance disk
PATCH /instances/{instance_id}/disks/{id}
This request updates the instance disk with the information in a provided patch.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.update
Auditing
Calling this method generates the following auditing event.
is.instance.disk.update
Request
Request Body
The instance disk patch
Response
200 - The instance disk was updated successfully.
created_at
string
The date and time that the disk was created
href
string
The URL for this instance disk
id
string
The unique identifier for this instance disk
interface_type
string
The disk interface used for attaching the disk.
The enumerated values for this property may expand in the future.
name
string
The name for this instance disk. The name is unique across all disks on the instance.
resource_type
string
The resource type
size
integer
The size of the disk in GB (gigabytes)
400 - An invalid instance disk patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The instance disk is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance disk with the specified identifier could not be found for the specified
instance.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The instance disk patch conflicts with another disk for the instance.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /instances/{instance_id}/network_attachments
This request lists network attachments on an instance. A network attachment represents a device on the instance to which a virtual network interface is attached.
The network attachments will be sorted by their `created_at` property values, with newest network attachments first. Network attachments with identical `created_at` property values will in turn be sorted by ascending `name` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.read
Auditing
Calling this method generates the following auditing event.
is.instance.network-attachment.read
Request
Response
200 - The instance network attachments were retrieved successfully.
network_attachments
array
The network attachments for the instance
404 - An instance with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a network attachment on an instance
POST /instances/{instance_id}/network_attachments
This request creates a new instance network attachment from an instance network attachment prototype object. The prototype object is structured in the same way as a retrieved instance network attachment, and contains the information necessary to create the new instance network attachment.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.updateis.security-group.security-group.operateis.subnet.subnet.operateis.subnet.subnet.updateis.virtual-network-interface.virtual-network-interface.createis.virtual-network-interface.virtual-network-interface.operateis.virtual-network-interface.virtual-network-interface.manage-infrastructure-natis.virtual-network-interface.virtual-network-interface.manage-ip-spoofingis.virtual-network-interface.virtual-network-interface.manage-protocol-state-filtering-mode
Auditing
Calling this method generates the following auditing event.
is.virtual-network-interface.virtual-network-interface.createis.virtual-network-interface.virtual-network-interface.attachis.instance.network-attachment.attachis.instance.network-attachment.createis.security-group.security-group.attachis.subnet.reserved-ip.createis.subnet.subnet.updateis.subnet.reserved-ip.attach
Request
Request Body
InstanceNetworkAttachmentPrototype
The instance network attachment prototype object
name
string
The name for this network attachment. Names must be unique within the instance the network attachment resides in. If unspecified, the name will be a hyphenated list of randomly-selected words.
virtual_network_interface
Required *
InstanceNetworkAttachmentPrototypeVirtualNetworkInterface
A virtual network interface for the instance network attachment. This can be specified using an existing virtual network interface, or a prototype object for a new virtual network interface.
If an existing virtual network interface is specified, `enable_infrastructure_nat` must be `true`.
Response
201 - The instance network attachment was created successfully.
created_at
string
The date and time that the instance network attachment was created
href
string
The URL for this instance network attachment
id
string
The unique identifier for this instance network attachment
lifecycle_state
object
The lifecycle state of the instance network attachment
name
string
The name for this instance network attachment. The name is unique across all network attachments for the instance.
port_speed
integer
The port speed for this instance network attachment in Mbps
primary_ip
object
The primary IP address of the virtual network interface for the instance network attachment
resource_type
string
The resource type
subnet
object
The subnet of the virtual network interface for the instance network attachment
type
string
The instance network attachment type
virtual_network_interface
object
The virtual network interface for this instance network attachment
400 - An invalid instance network attachment prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The instance network attachment prototype object conflicts with another network
attachment for the instance.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete an instance network attachment
DELETE /instances/{instance_id}/network_attachments/{id}
This request deletes an instance network attachment. This operation cannot be reversed. Any floating IPs associated with the instance network attachment are implicitly disassociated. All flow log collectors with `auto_delete` set to `true` targeting the instance network attachment are automatically deleted. The primary instance network attachment is not allowed to be deleted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.update
Auditing
Calling this method generates the following auditing event.
is.instance.network-attachment.deleteis.instance.network-attachment.detachis.virtual-network-interface.virtual-network-interface.detachis.virtual-network-interface.virtual-network-interface.deleteis.floating-ip.floating-ip.detachis.subnet.reserved-ip.detachis.subnet.reserved-ip.deleteis.subnet.subnet.updateis.security-group.security-group.detachis.flow-log-collector.flow-log-collector.deleteis.flow-log-collector.flow-log-collector.detach
Request
Response
202 - The instance network attachment deletion request was accepted.
403 - The instance network attachment is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance network attachment with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve an instance network attachment
GET /instances/{instance_id}/network_attachments/{id}
This request retrieves a single instance network attachment specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.read
Auditing
Calling this method generates the following auditing event.
is.instance.network-attachment.read
Request
Response
200 - The instance network attachment was retrieved successfully.
created_at
string
The date and time that the instance network attachment was created
href
string
The URL for this instance network attachment
id
string
The unique identifier for this instance network attachment
lifecycle_state
object
The lifecycle state of the instance network attachment
name
string
The name for this instance network attachment. The name is unique across all network attachments for the instance.
port_speed
integer
The port speed for this instance network attachment in Mbps
primary_ip
object
The primary IP address of the virtual network interface for the instance network attachment
resource_type
string
The resource type
subnet
object
The subnet of the virtual network interface for the instance network attachment
type
string
The instance network attachment type
virtual_network_interface
object
The virtual network interface for this instance network attachment
404 - An instance network attachment with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update an instance network attachment
PATCH /instances/{instance_id}/network_attachments/{id}
This request updates an instance network attachment with the information provided in an instance network interface patch object. The instance network attachment patch object is structured in the same way as a retrieved instance network attachment and needs to contain only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.update
Auditing
Calling this method generates the following auditing event.
is.instance.network-attachment.update
Request
Request Body
The instance network attachment patch
Response
200 - The instance network attachment was updated successfully.
created_at
string
The date and time that the instance network attachment was created
href
string
The URL for this instance network attachment
id
string
The unique identifier for this instance network attachment
lifecycle_state
object
The lifecycle state of the instance network attachment
name
string
The name for this instance network attachment. The name is unique across all network attachments for the instance.
port_speed
integer
The port speed for this instance network attachment in Mbps
primary_ip
object
The primary IP address of the virtual network interface for the instance network attachment
resource_type
string
The resource type
subnet
object
The subnet of the virtual network interface for the instance network attachment
type
string
The instance network attachment type
virtual_network_interface
object
The virtual network interface for this instance network attachment
400 - An invalid instance network attachment patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance network attachment with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The instance network attachment patch conflicts with another network attachment
for the instance.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List network interfaces on an instance
GET /instances/{instance_id}/network_interfaces
This request lists network interfaces on an instance. An instance network interface is an abstract representation of a network device and attaches an instance to a single subnet. Each network interface on an instance can attach to any subnet in the zone, including subnets that are already attached to the instance. Multiple network interfaces on the instance may also attach to the same subnet.
If this instance has network attachments, each returned network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.read
Auditing
Calling this method generates the following auditing event.
is.instance.network-interface.read
Request
Response
200 - The instance network interfaces were retrieved successfully.
network_interfaces
array
The network interfaces for the instance
404 - An instance with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a network interface on an instance
POST /instances/{instance_id}/network_interfaces
This request creates a new instance network interface from an instance network interface prototype object. The prototype object is structured in the same way as a retrieved instance network interface, and contains the information necessary to create the new instance network interface. Any subnet in the instance's VPC may be specified. Addresses on the instance network interface must be within the specified subnet's CIDR blocks.
If this instance has network attachments, each network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and new network interfaces are not allowed to be created.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.updateis.instance.instance.ip-spoofingis.security-group.security-group.operateis.subnet.subnet.operateis.subnet.subnet.update
Auditing
Calling this method generates the following auditing event.
is.instance.network-interface.createis.instance.network-interface.attachis.subnet.reserved-ip.createis.subnet.reserved-ip.attachis.security-group.security-group.attachis.subnet.subnet.update
Request
Request Body
NetworkInterfacePrototype
The instance network interface prototype object
allow_ip_spoofing
boolean
Indicates whether source IP spoofing is allowed on this instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and source IP spoofing is managed on the attached virtual network interface.
name
string
The name for the instance network interface. The name must not be used by another network interface on the virtual server instance. If unspecified, the name will be a hyphenated list of randomly-selected words.
primary_ip
object
The primary IP address to bind to the instance network interface. This can be specified using an existing reserved IP, or a prototype object for a new reserved IP.
If an existing reserved IP or a prototype object with an address is specified, it must be available on the instance network interface's subnet. Otherwise, an available address on the subnet will be automatically selected and reserved.
security_groups
array
The security groups to use for this instance network interface. If unspecified, the VPC's default security group is used.
subnet
Required *
object
Identifies a subnet by a unique property.
Response
201 - The instance network interface was created successfully.
allow_ip_spoofing
boolean
Indicates whether source IP spoofing is allowed on this instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and source IP spoofing is managed on the attached virtual network interface.
created_at
string
The date and time that the instance network interface was created.
If this instance has network attachments, this network interface was created as a read-only representation when its corresponding network attachment was created.
floating_ips
array
The floating IPs associated with this instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the floating IPs are associated with the attached virtual network interface.
href
string
The URL for this instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment.
id
string
The unique identifier for this instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the identifier is that of the corresponding network attachment.
name
string
The name for this instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the name matches its corresponding network attachment.
port_speed
integer
The instance network interface port speed in Mbps.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the port speed is that of its corresponding network attachment.
primary_ip
object
The primary IP address of this instance network interface.
resource_type
string
The resource type
security_groups
array
The security groups targeting this instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the security groups are associated with the attached virtual network interface.
status
string
The status of the instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the status is computed from them.
subnet
object
The associated subnet
type
string
The instance network interface type.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the type is that of its corresponding network attachment.
400 - An invalid instance network interface prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The instance network interface is not allowed to be created.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The instance network interface prototype object conflicts with another network
interface for the instance.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete an instance network interface
DELETE /instances/{instance_id}/network_interfaces/{id}
This request deletes an instance network interface. This operation cannot be reversed. Any floating IPs associated with the instance network interface are implicitly disassociated. All flow log collectors with `auto_delete` set to `true` targeting the instance network interface are automatically deleted. The primary instance network interface is not allowed to be deleted.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and is not allowed to be deleted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.update
Auditing
Calling this method generates the following auditing event.
is.instance.network-interface.deleteis.instance.network-interface.detachis.floating-ip.floating-ip.detachis.security-group.security-group.detachis.subnet.reserved-ip.detachis.subnet.reserved-ip.deleteis.subnet.subnet.updateis.flow-log-collector.flow-log-collector.deleteis.flow-log-collector.flow-log-collector.detach
Request
Response
204 - The instance network interface was deleted successfully.
403 - The instance network interface is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance network interface with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve an instance network interface
GET /instances/{instance_id}/network_interfaces/{id}
This request retrieves a single instance network interface specified by the identifier in the URL.
If this instance has network attachments, the retrieved network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.read
Auditing
Calling this method generates the following auditing event.
is.instance.network-interface.read
Request
Response
200 - The instance network interface was retrieved successfully.
allow_ip_spoofing
boolean
Indicates whether source IP spoofing is allowed on this instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and source IP spoofing is managed on the attached virtual network interface.
created_at
string
The date and time that the instance network interface was created.
If this instance has network attachments, this network interface was created as a read-only representation when its corresponding network attachment was created.
floating_ips
array
The floating IPs associated with this instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the floating IPs are associated with the attached virtual network interface.
href
string
The URL for this instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment.
id
string
The unique identifier for this instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the identifier is that of the corresponding network attachment.
name
string
The name for this instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the name matches its corresponding network attachment.
port_speed
integer
The instance network interface port speed in Mbps.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the port speed is that of its corresponding network attachment.
primary_ip
object
The primary IP address of this instance network interface.
resource_type
string
The resource type
security_groups
array
The security groups targeting this instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the security groups are associated with the attached virtual network interface.
status
string
The status of the instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the status is computed from them.
subnet
object
The associated subnet
type
string
The instance network interface type.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the type is that of its corresponding network attachment.
404 - An instance network interface with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update an instance network interface
PATCH /instances/{instance_id}/network_interfaces/{id}
This request updates an instance network interface with the information provided in an instance network interface patch object. The instance network interface patch object is structured in the same way as a retrieved instance network interface and needs to contain only the information to be updated.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and is not allowed to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.updateis.instance.instance.ip-spoofing
Auditing
Calling this method generates the following auditing event.
is.instance.network-interface.update
Request
Request Body
The instance network interface patch
Response
200 - The instance network interface was updated successfully.
allow_ip_spoofing
boolean
Indicates whether source IP spoofing is allowed on this instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and source IP spoofing is managed on the attached virtual network interface.
created_at
string
The date and time that the instance network interface was created.
If this instance has network attachments, this network interface was created as a read-only representation when its corresponding network attachment was created.
floating_ips
array
The floating IPs associated with this instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the floating IPs are associated with the attached virtual network interface.
href
string
The URL for this instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment.
id
string
The unique identifier for this instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the identifier is that of the corresponding network attachment.
name
string
The name for this instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the name matches its corresponding network attachment.
port_speed
integer
The instance network interface port speed in Mbps.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the port speed is that of its corresponding network attachment.
primary_ip
object
The primary IP address of this instance network interface.
resource_type
string
The resource type
security_groups
array
The security groups targeting this instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the security groups are associated with the attached virtual network interface.
status
string
The status of the instance network interface.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the status is computed from them.
subnet
object
The associated subnet
type
string
The instance network interface type.
If this instance has network attachments, this network interface is a read-only representation of its corresponding network attachment and its attached virtual network interface, and the type is that of its corresponding network attachment.
400 - An invalid instance network interface patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The instance network interface is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance network interface with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The instance network interface patch conflicts with another network interface for
the instance.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List floating IPs associated with an instance network interface
GET /instances/{instance_id}/network_interfaces/{network_interface_id}/floating_ips
This request lists floating IPs associated with an instance network interface.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.readis.floating-ip.floating-ip.read
Auditing
Calling this method generates the following auditing event.
is.instance.network-interface_floating-ip.read
Request
Response
200 - The associated floating IPs were retrieved successfully.
floating_ips
array
The floating IPs
404 - An instance network interface with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Disassociate a floating IP from an instance network interface
DELETE /instances/{instance_id}/network_interfaces/{network_interface_id}/floating_ips/{id}
This request disassociates the specified floating IP from the specified instance network interface
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.operateis.floating-ip.floating-ip.operate
Auditing
Calling this method generates the following auditing event.
is.instance.network-interface.detachis.floating-ip.floating-ip.detach
Request
Response
204 - The floating IP was disassociated successfully.
403 - The floating IP is not allowed to be disassociated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified floating IP address is not associated with the instance network
interface with the specified identifier
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve associated floating IP
GET /instances/{instance_id}/network_interfaces/{network_interface_id}/floating_ips/{id}
This request retrieves a specified floating IP address if it is associated with the instance network interface and instance specified in the URL
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.readis.floating-ip.floating-ip.read
Auditing
Calling this method generates the following auditing event.
is.instance.network-interface_floating-ip.read
Request
Response
200 - The associated floating IP was retrieved successfully.
address
string
The globally unique IP address
authorized_cidr
object
The public address range authorized CIDR this floating IP is allocated from.
created_at
string
The date and time that the floating IP was created
crn
string
The CRN for this floating IP
href
string
The URL for this floating IP
id
string
The unique identifier for this floating IP
name
string
The name for this floating IP. The name is unique across all floating IPs in the region.
profile
object
The profile for this floating IP.
resource_group
object
The resource group for this floating IP
resource_type
string
The resource type
status
string
The status of the floating IP.
The enumerated values for this property may expand in the future.
target
FloatingIPTarget
The target of this floating IP
zone
object
The zone this floating IP resides in
404 - The floating IP address is not associated with an instance network interface with the
specified identifier
errors
array
The errors that occurred.
trace
string
The unique error identifier
PUT /instances/{instance_id}/network_interfaces/{network_interface_id}/floating_ips/{id}
This request associates the specified floating IP with the specified instance network interface, replacing any existing association.
The existing floating IP must:
- be in the same `zone` as the instance
- not be allocated from an `authorized_cidr`
- not be required by another resource, such as a public gateway
A request body is not required, and if provided, is ignored.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.operateis.floating-ip.floating-ip.operate
Auditing
Calling this method generates the following auditing event.
is.instance.network-interface.attachis.floating-ip.floating-ip.attach
Request
Response
201 - The floating IP was successfully associated with the instance network interface.
address
string
The globally unique IP address
authorized_cidr
object
The public address range authorized CIDR this floating IP is allocated from.
created_at
string
The date and time that the floating IP was created
crn
string
The CRN for this floating IP
href
string
The URL for this floating IP
id
string
The unique identifier for this floating IP
name
string
The name for this floating IP. The name is unique across all floating IPs in the region.
profile
object
The profile for this floating IP.
resource_group
object
The resource group for this floating IP
resource_type
string
The resource type
status
string
The status of the floating IP.
The enumerated values for this property may expand in the future.
target
FloatingIPTarget
The target of this floating IP
zone
object
The zone this floating IP resides in
400 - The specified floating IP could not be associated with the specified instance network
interface.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The floating IP is not allowed to be associated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified instance network interface or floating IP could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List the primary reserved IP for an instance network interface
GET /instances/{instance_id}/network_interfaces/{network_interface_id}/ips
This request lists the primary reserved IP for an instance network interface.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.readis.subnet.subnet.read
Auditing
Calling this method generates the following auditing event.
is.subnet.reserved-ip.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The reserved IPs were retrieved successfully.
first
object
A link to the first page of resources
ips
array
A page of reserved IPs bound to the instance network interface
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - An instance network interface with the specified identifier could not be found for
the specified instance.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve the primary reserved IP
GET /instances/{instance_id}/network_interfaces/{network_interface_id}/ips/{id}
This request retrieves the primary reserved IP for an instance network interface.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.readis.subnet.subnet.read
Auditing
Calling this method generates the following auditing event.
is.subnet.reserved-ip.read
Request
Response
200 - The bound reserved IP was retrieved successfully.
address
object
The IP address.
If the address has not yet been selected, the value will be `0.0.0.0`.
This property may expand to support IPv6 addresses in the future.
auto_delete
boolean
Indicates whether this reserved IP member will be automatically deleted when either `target` is deleted, or the reserved IP is unbound.
created_at
string
The date and time that the reserved IP was created
href
string
The URL for this reserved IP
id
string
The unique identifier for this reserved IP
lifecycle_state
object
The lifecycle state of the reserved IP
name
string
The name for this reserved IP. The name is unique across all reserved IPs in a subnet.
owner
string
The owner of the reserved IP.
The enumerated values for this property may expand in the future.
resource_type
string
The resource type
target
ReservedIPTarget
The target this reserved IP is bound to.
If absent, this reserved IP is provider-owned or unbound.
The resources supported by this property may expand in the future.
404 - The reserved IP address with the specified identifier could not be found
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /instances/{instance_id}/software_attachments
This request lists software attachments associated with an instance.
The instance software attachments will be sorted by their `created_at` property values, with newest instance software attachments first. Software attachments with identical `created_at` property values will in turn be sorted by ascending `name` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.readis.instance.instance.list
Auditing
Calling this method generates the following auditing event.
is.instance.software-attachment.read
Request
Response
200 - The instance software attachments were retrieved successfully.
software_attachments
array
The software attachments for the instance
404 - An instance with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve an instance software attachment
GET /instances/{instance_id}/software_attachments/{id}
This request retrieves a single instance software attachment specified by identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.read
Auditing
Calling this method generates the following auditing event.
is.instance.software-attachment.read
Request
Response
200 - The instance software attachment was retrieved successfully.
catalog_offering
InstanceSoftwareAttachmentCatalogOffering
The catalog offering for this instance software attachment. May be absent if `software_attachment.lifecycle_state` is not `stable`.
created_at
string
The date and time that the instance software attachment was created.
entitlement
InstanceSoftwareAttachmentEntitlement
The entitlement for the licensed software for this instance software attachment.
href
string
The URL for this instance software attachment.
id
string
The unique identifier for this instance software attachment.
lifecycle_reasons
InstanceSoftwareAttachmentLifecycleReasons
The lifecycle reasons for this instance software attachment (if any).
lifecycle_state
string
The lifecycle state of the instance software attachment.
name
string
The name for this instance software attachment. The name is unique across all instance software attachments for the instance.
offering_instance
InstanceSoftwareAttachmentOfferingInstance
resource_type
string
The resource type
404 - An instance software attachment with the specified identifier could not be found for
the specified instance.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update an instance software attachment
PATCH /instances/{instance_id}/software_attachments/{id}
This request updates an instance software attachment with the information provided in an instance software attachment patch object. The instance software attachment patch object is structured in the same way as a retrieved instance software attachment and needs to contain only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.update
Auditing
Calling this method generates the following auditing event.
is.instance.software-attachment.update
Request
Request Body
The instance software attachment patch
Response
200 - The instance software attachment was updated successfully.
catalog_offering
InstanceSoftwareAttachmentCatalogOffering
The catalog offering for this instance software attachment. May be absent if `software_attachment.lifecycle_state` is not `stable`.
created_at
string
The date and time that the instance software attachment was created.
entitlement
InstanceSoftwareAttachmentEntitlement
The entitlement for the licensed software for this instance software attachment.
href
string
The URL for this instance software attachment.
id
string
The unique identifier for this instance software attachment.
lifecycle_reasons
InstanceSoftwareAttachmentLifecycleReasons
The lifecycle reasons for this instance software attachment (if any).
lifecycle_state
string
The lifecycle state of the instance software attachment.
name
string
The name for this instance software attachment. The name is unique across all instance software attachments for the instance.
offering_instance
InstanceSoftwareAttachmentOfferingInstance
resource_type
string
The resource type
400 - An invalid instance software attachment patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The instance software attachment is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance software attachment with the specified identifier could not be found for
the specified instance.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The instance software attachment patch conflicts with another instance software
attachment on the instance.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List volumes attachments on an instance
GET /instances/{instance_id}/volume_attachments
This request lists volume attachments on an instance. A volume attachment connects a volume to an instance. Each instance may have many volume attachments but each volume attachment connects exactly one instance to exactly one volume.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.read
Auditing
Calling this method generates the following auditing event.
is.instance.volume-attachment.read
Request
Response
200 - The volume attachments were retrieved successfully.
volume_attachments
array
The volume attachments for the instance
404 - An instance with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a volume attachment on an instance
POST /instances/{instance_id}/volume_attachments
This request creates a new volume attachment from a volume attachment prototype object, connecting a volume to an instance. For this request to succeed, the specified volume must not be busy. The prototype object is structured in the same way as a retrieved volume attachment, and contains the information necessary to create the new volume attachment.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.updateis.volume.volume.operateis.volume.volume.createis.snapshot.snapshot.operateis.volume.volume.allow-remote-account-snapshot-restoreis.volume.volume.manage-attachment-mode
Auditing
Calling this method generates the following auditing event.
is.instance.volume-attachment.create
Request
Request Body
VolumeAttachmentPrototype
The volume attachment prototype object
delete_volume_on_instance_delete
boolean
Indicates whether deleting the instance will also delete the attached volume
name
string
The name for this volume attachment. The name must not be used by another volume attachment on the instance. If unspecified, the name will be a hyphenated list of randomly-selected words.
volume
Required *
VolumeAttachmentPrototypeVolume
The volume to use for this attachment. This can be specified as an existing unattached volume, or a prototype object for a new volume.
Response
201 - The volume attachment was created successfully, attaching the specified volume to the
instance.
bandwidth
integer
The maximum bandwidth (in megabits per second) for the volume when attached to this instance. This may be lower than the volume bandwidth depending on the configuration of the instance.
created_at
string
The date and time that the volume was attached
delete_volume_on_instance_delete
boolean
Indicates whether deleting the instance will also delete the attached volume
device
VolumeAttachmentDevice
The configuration for the volume as a device in the instance or bare metal server operating system.
This property may be absent if the volume attachment's `status` is not `attached`.
href
string
The URL for this volume attachment
id
string
The unique identifier for this volume attachment
name
string
The name for this volume attachment. The name is unique across all volume attachments on the instance or bare metal server.
protocol
string
The protocol used for this attachment: - `virtio_blk`: VirtIO block device protocol. This para-virtualized storage protocol provides efficient block device access for virtual server instances.
status
string
The status of this volume attachment.
The enumerated values for this property may expand in the future.
type
string
The type of volume attachment.
The enumerated values for this property may expand in the future.
volume
object
The attached volume.
This property will be absent if the volume has not yet been provisioned.
400 - An invalid volume attachment prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The volume attachment is not allowed to be created.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An instance with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The volume attachment prototype object conflicts with another volume attachment
on the instance.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a volume attachment
DELETE /instances/{instance_id}/volume_attachments/{id}
This request deletes a volume attachment. This operation cannot be reversed, but a new volume attachment may subsequently be created for the volume. For this request to succeed, the volume must not be busy.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.operateis.volume.volume.operate
Auditing
Calling this method generates the following auditing event.
is.instance.volume-attachment.delete- ``
Request
Response
204 - The volume attachment was deleted successfully, detaching its volume from the instance.
400 - The specified volume attachment cannot be deleted because its volume is busy.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The volume attachment is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A volume attachment with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a volume attachment
GET /instances/{instance_id}/volume_attachments/{id}
This request retrieves a single volume attachment specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.read
Auditing
Calling this method generates the following auditing event.
is.instance.volume-attachment.read
Request
Response
200 - The volume attachment was retrieved successfully.
bandwidth
integer
The maximum bandwidth (in megabits per second) for the volume when attached to this instance. This may be lower than the volume bandwidth depending on the configuration of the instance.
created_at
string
The date and time that the volume was attached
delete_volume_on_instance_delete
boolean
Indicates whether deleting the instance will also delete the attached volume
device
VolumeAttachmentDevice
The configuration for the volume as a device in the instance or bare metal server operating system.
This property may be absent if the volume attachment's `status` is not `attached`.
href
string
The URL for this volume attachment
id
string
The unique identifier for this volume attachment
name
string
The name for this volume attachment. The name is unique across all volume attachments on the instance or bare metal server.
protocol
string
The protocol used for this attachment: - `virtio_blk`: VirtIO block device protocol. This para-virtualized storage protocol provides efficient block device access for virtual server instances.
status
string
The status of this volume attachment.
The enumerated values for this property may expand in the future.
type
string
The type of volume attachment.
The enumerated values for this property may expand in the future.
volume
object
The attached volume.
This property will be absent if the volume has not yet been provisioned.
404 - A volume attachment with the specified identifier could not be found for the specified
instance.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a volume attachment
PATCH /instances/{instance_id}/volume_attachments/{id}
This request updates a volume attachment with the information provided in a volume attachment patch object. The volume attachment patch object is structured in the same way as a retrieved volume attachment and needs to contain only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.instance.instance.update
Auditing
Calling this method generates the following auditing event.
is.instance.volume-attachment.update
Request
Request Body
The volume attachment patch
Response
200 - The volume attachment was updated successfully.
bandwidth
integer
The maximum bandwidth (in megabits per second) for the volume when attached to this instance. This may be lower than the volume bandwidth depending on the configuration of the instance.
created_at
string
The date and time that the volume was attached
delete_volume_on_instance_delete
boolean
Indicates whether deleting the instance will also delete the attached volume
device
VolumeAttachmentDevice
The configuration for the volume as a device in the instance or bare metal server operating system.
This property may be absent if the volume attachment's `status` is not `attached`.
href
string
The URL for this volume attachment
id
string
The unique identifier for this volume attachment
name
string
The name for this volume attachment. The name is unique across all volume attachments on the instance or bare metal server.
protocol
string
The protocol used for this attachment: - `virtio_blk`: VirtIO block device protocol. This para-virtualized storage protocol provides efficient block device access for virtual server instances.
status
string
The status of this volume attachment.
The enumerated values for this property may expand in the future.
type
string
The type of volume attachment.
The enumerated values for this property may expand in the future.
volume
object
The attached volume.
This property will be absent if the volume has not yet been provisioned.
400 - An invalid volume attachment patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The volume attachment is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A volume attachment with the specified identifier could not be found for the specified
instance.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The volume attachment patch conflicts with another volume attachment
on the instance.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List IPsec policies
GET /ipsec_policies
This request lists IPsec policies in the region.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.list
Auditing
Calling this method generates the following auditing event.
is.vpn.ipsec-policy.list
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The IPsec policies were retrieved successfully.
first
object
A link to the first page of resources
ipsec_policies
array
A page of IPsec policies
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
Create an IPsec policy
POST /ipsec_policies
This request creates a new IPsec policy.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.create
Auditing
Calling this method generates the following auditing event.
is.vpn.ipsec-policy.create
Request
Request Body
IPsecPolicyPrototype
The IPsec policy prototype object.
authentication_algorithm
string
The authentication algorithm.
`authentication_algorithm` has been deprecated. Use `authentication_algorithms` instead.
If specified, `authentication_algorithms` must not be specified.
Must be `disabled` if and only if the `encryption_algorithm` is `aes128gcm16`, `aes192gcm16`, or `aes256gcm16`
The `md5` and `sha1` algorithms have been deprecated
authentication_algorithms
array
The authentication algorithms to use for IPsec negotiation.
If specified, `authentication_algorithm` must not be specified.
Must be `["disabled"]` when `encryption_algorithms` has only combined-mode algorithms (`aes128gcm16`, `aes192gcm16`, and `aes256gcm16`).
The `md5` and `sha1` algorithms have been deprecated.
The order of the algorithms in this array indicates their priority for negotiation, with each algorithm having priority over the one after it.
encryption_algorithm
string
The encryption algorithm.
`encryption_algorithm` has been deprecated. Use `encryption_algorithms` instead.
If specified, `encryption_algorithms` must not be specified.
The `authentication_algorithm` must be `disabled` if and only if `encryption_algorithm` is `aes128gcm16`, `aes192gcm16`, or `aes256gcm16`
The `triple_des` algorithm has been deprecated
encryption_algorithms
array
The encryption algorithms to use for IPsec negotiation.
If specified, `encryption_algorithm` must not be specified.
If only combined-mode encryption algorithms (`aes128gcm16`, `aes192gcm16`, and `aes256gcm16`) are to be used, then `authentication_algorithms` must be `["disabled"]`.
The `triple_des` algorithm has been deprecated.
The order of the algorithms in this array indicates their priority for negotiation, with each algorithm having priority over the one after it.
key_lifetime
integer
The key lifetime in seconds
name
string
The name for this IPsec policy. The name must not be used by another IPsec policy in the region. If unspecified, the name will be a hyphenated list of randomly-selected words.
pfs
string
The Perfect Forward Secrecy group.
`pfs` has been deprecated. Use `pfs_groups` instead.
If specified, `pfs_groups` must not be specified.
Groups `group_2` and `group_5` have been deprecated
pfs_groups
array
The Perfect Forward Secrecy groups to use for IPsec negotiation.
If specified, `pfs` must not be specified.
Groups `group_2` and `group_5` have been deprecated.
The order of the Perfect Forward Secrecy groups in this array indicates their priority for negotiation, with each Perfect Forward Secrecy group having priority over the one after it.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
Response
201 - The IPsec policy was created successfully.
authentication_algorithm
string
The authentication algorithms.
If `multiple`, the policy supports more than one authentication algorithm. Use the `authentication_algorithms` property to retrieve all supported algorithms.
The `md5` and `sha1` algorithms have been deprecated
The enumerated values for this property may expand in the future.
authentication_algorithms
array
The authentication algorithms to use for IPsec Negotiation.
The order of the algorithms in this array indicates their priority for negotiation, with each algorithm having priority over the one after it.
connections
array
The VPN gateway connections that use this IPsec policy.
created_at
string
The date and time that this IPsec policy was created
encapsulation_mode
string
The encapsulation mode used.
The enumerated values for this property may expand in the future.
encryption_algorithm
string
The encryption algorithm.
If `multiple`, the policy supports more than one encryption algorithm. Use the `encryption_algorithms` property to retrieve all supported algorithms.
The `triple_des` algorithm has been deprecated
The enumerated values for this property may expand in the future.
encryption_algorithms
array
The encryption algorithms to use for IKE Negotiation.
The order of the algorithms in this array indicates their priority for negotiation, with each algorithm having priority over the one after it.
href
string
The URL for this IPsec policy
id
string
The unique identifier for this IPsec policy
key_lifetime
integer
The key lifetime in seconds
name
string
The name for this IPsec policy. The name is unique across all IPsec policies in the region.
pfs
string
The Perfect Forward Secrecy group.
If `multiple`, the policy supports more than one PFS group. Use the `pfs_groups` property to retrieve all supported PFS groups.
Groups `group_2` and `group_5` have been deprecated
The enumerated values for this property may expand in the future.
pfs_groups
array
The Perfect Forward Secrecy groups to use for IPsec negotiation.
The order of the Perfect Forward Secrecy groups in this array indicates their priority for negotiation, with each Perfect Forward Secrecy group having priority over the one after it.
resource_group
object
The resource group for this IPsec policy
resource_type
string
The resource type
transform_protocol
string
The transform protocol used.
The enumerated values for this property may expand in the future.
400 - An invalid IPsec policy prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The IPsec policy prototype object conflicts with another IPsec policy in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete an IPsec policy
DELETE /ipsec_policies/{id}
This request deletes an IPsec policy. This operation cannot be reversed. For this request to succeed, there must not be any VPN gateway connections using this policy.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.delete
Auditing
Calling this method generates the following auditing event.
is.vpn.ipsec-policy.delete
Request
Response
204 - The IPsec policy was deleted successfully.
404 - An IPsec policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The IPsec policy is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve an IPsec policy
GET /ipsec_policies/{id}
This request retrieves a single IPsec policy specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.read
Auditing
Calling this method generates the following auditing event.
is.vpn.ipsec-policy.read
Request
Response
200 - The IPsec policy was retrieved successfully.
authentication_algorithm
string
The authentication algorithms.
If `multiple`, the policy supports more than one authentication algorithm. Use the `authentication_algorithms` property to retrieve all supported algorithms.
The `md5` and `sha1` algorithms have been deprecated
The enumerated values for this property may expand in the future.
authentication_algorithms
array
The authentication algorithms to use for IPsec Negotiation.
The order of the algorithms in this array indicates their priority for negotiation, with each algorithm having priority over the one after it.
connections
array
The VPN gateway connections that use this IPsec policy.
created_at
string
The date and time that this IPsec policy was created
encapsulation_mode
string
The encapsulation mode used.
The enumerated values for this property may expand in the future.
encryption_algorithm
string
The encryption algorithm.
If `multiple`, the policy supports more than one encryption algorithm. Use the `encryption_algorithms` property to retrieve all supported algorithms.
The `triple_des` algorithm has been deprecated
The enumerated values for this property may expand in the future.
encryption_algorithms
array
The encryption algorithms to use for IKE Negotiation.
The order of the algorithms in this array indicates their priority for negotiation, with each algorithm having priority over the one after it.
href
string
The URL for this IPsec policy
id
string
The unique identifier for this IPsec policy
key_lifetime
integer
The key lifetime in seconds
name
string
The name for this IPsec policy. The name is unique across all IPsec policies in the region.
pfs
string
The Perfect Forward Secrecy group.
If `multiple`, the policy supports more than one PFS group. Use the `pfs_groups` property to retrieve all supported PFS groups.
Groups `group_2` and `group_5` have been deprecated
The enumerated values for this property may expand in the future.
pfs_groups
array
The Perfect Forward Secrecy groups to use for IPsec negotiation.
The order of the Perfect Forward Secrecy groups in this array indicates their priority for negotiation, with each Perfect Forward Secrecy group having priority over the one after it.
resource_group
object
The resource group for this IPsec policy
resource_type
string
The resource type
transform_protocol
string
The transform protocol used.
The enumerated values for this property may expand in the future.
404 - An IPsec policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update an IPsec policy
PATCH /ipsec_policies/{id}
This request updates the properties of an existing IPsec policy.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.update
Auditing
Calling this method generates the following auditing event.
is.vpn.ipsec-policy.update
Request
Request Body
The IPsec policy patch.
Response
200 - The IPsec policy was updated successfully.
authentication_algorithm
string
The authentication algorithms.
If `multiple`, the policy supports more than one authentication algorithm. Use the `authentication_algorithms` property to retrieve all supported algorithms.
The `md5` and `sha1` algorithms have been deprecated
The enumerated values for this property may expand in the future.
authentication_algorithms
array
The authentication algorithms to use for IPsec Negotiation.
The order of the algorithms in this array indicates their priority for negotiation, with each algorithm having priority over the one after it.
connections
array
The VPN gateway connections that use this IPsec policy.
created_at
string
The date and time that this IPsec policy was created
encapsulation_mode
string
The encapsulation mode used.
The enumerated values for this property may expand in the future.
encryption_algorithm
string
The encryption algorithm.
If `multiple`, the policy supports more than one encryption algorithm. Use the `encryption_algorithms` property to retrieve all supported algorithms.
The `triple_des` algorithm has been deprecated
The enumerated values for this property may expand in the future.
encryption_algorithms
array
The encryption algorithms to use for IKE Negotiation.
The order of the algorithms in this array indicates their priority for negotiation, with each algorithm having priority over the one after it.
href
string
The URL for this IPsec policy
id
string
The unique identifier for this IPsec policy
key_lifetime
integer
The key lifetime in seconds
name
string
The name for this IPsec policy. The name is unique across all IPsec policies in the region.
pfs
string
The Perfect Forward Secrecy group.
If `multiple`, the policy supports more than one PFS group. Use the `pfs_groups` property to retrieve all supported PFS groups.
Groups `group_2` and `group_5` have been deprecated
The enumerated values for this property may expand in the future.
pfs_groups
array
The Perfect Forward Secrecy groups to use for IPsec negotiation.
The order of the Perfect Forward Secrecy groups in this array indicates their priority for negotiation, with each Perfect Forward Secrecy group having priority over the one after it.
resource_group
object
The resource group for this IPsec policy
resource_type
string
The resource type
transform_protocol
string
The transform protocol used.
The enumerated values for this property may expand in the future.
400 - An invalid IPsec policy patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An IPsec policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The IPsec policy patch conflicts with another IPsec policy in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List VPN gateway connections that use a specified IPsec policy
GET /ipsec_policies/{id}/connections
This request lists VPN gateway connections that use an IPsec policy
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.readis.vpn.vpn.list
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-connection.list
Request
Path Parameters
id
Required *
The IPsec policy identifier
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The VPN gateway connections were retrieved successfully.
connections
array
A page of VPN gateway connections that use the IPsec policy specified by the identifier in the URL
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - An IPsec policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List keys
GET /keys
This request lists keys in the region. A key contains a public SSH key which may be installed on instances when they are created. Private keys are not stored.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.key.key.listis.key.key.read
Auditing
Calling this method generates the following auditing event.
is.key.key.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
Response
200 - The keys were retrieved successfully.
first
object
A link to the first page of resources
keys
array
A page of keys
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
Create a key
POST /keys
This request creates a new SSH key from an key prototype object. The prototype object is structured in the same way as a retrieved key, and contains the information necessary to create the new key. The public key value must be provided.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.key.key.create
Auditing
Calling this method generates the following auditing event.
is.key.key.create
Request
Request Body
KeyPrototype
The key prototype object
name
string
The name for this key. The name must not be used by another key in the region. If unspecified, the name will be a hyphenated list of randomly-selected words.
public_key
Required *
string
The public SSH key to use, in OpenSSH format (consisting of three space-separated fields: the algorithm name, base64-encoded key value, and a comment). The algorithm and comment fields may be omitted, as only the key field is used.
The key field must not match another key in the region.
Keys of type `rsa` must be 2048 or 4096 bits in length (4096 is recommended). Keys of type `ed25519` must be 256 bits in length.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
type
string
The crypto-system for this key.
Response
201 - The key was created successfully.
created_at
string
The date and time that the key was created
crn
string
The CRN for this key
fingerprint
string
The fingerprint for this key. The value is returned base64-encoded and prefixed with the hash algorithm (such as `SHA256`).
The length of this property may expand in the future.
href
string
The URL for this key
id
string
The unique identifier for this key
length
integer
The length of this key (in bits)
name
string
The name for this key. The name must not be used by another key in the region. If unspecified, the name will be a hyphenated list of randomly-selected words.
public_key
string
The public SSH key, consisting of two space-separated fields: the algorithm name, and the base64-encoded key.
resource_group
object
The resource group for this key
type
string
The crypto-system for this key.
The enumerated values for this property may expand in the future.
400 - An invalid key prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The key prototype object conflicts with another key in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a key
DELETE /keys/{id}
This request deletes a key. This operation cannot be reversed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.key.key.delete
Auditing
Calling this method generates the following auditing event.
is.key.key.delete
Request
Response
204 - The key was deleted successfully.
404 - A key with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a key
GET /keys/{id}
This request retrieves a single key specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.key.key.read
Auditing
Calling this method generates the following auditing event.
is.key.key.read
Request
Response
200 - The key was retrieved successfully.
created_at
string
The date and time that the key was created
crn
string
The CRN for this key
fingerprint
string
The fingerprint for this key. The value is returned base64-encoded and prefixed with the hash algorithm (such as `SHA256`).
The length of this property may expand in the future.
href
string
The URL for this key
id
string
The unique identifier for this key
length
integer
The length of this key (in bits)
name
string
The name for this key. The name must not be used by another key in the region. If unspecified, the name will be a hyphenated list of randomly-selected words.
public_key
string
The public SSH key, consisting of two space-separated fields: the algorithm name, and the base64-encoded key.
resource_group
object
The resource group for this key
type
string
The crypto-system for this key.
The enumerated values for this property may expand in the future.
404 - A key with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a key
PATCH /keys/{id}
This request updates a key's name.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.key.key.update
Auditing
Calling this method generates the following auditing event.
is.key.key.update
Request
Request Body
The key patch
Response
200 - The key was updated successfully.
created_at
string
The date and time that the key was created
crn
string
The CRN for this key
fingerprint
string
The fingerprint for this key. The value is returned base64-encoded and prefixed with the hash algorithm (such as `SHA256`).
The length of this property may expand in the future.
href
string
The URL for this key
id
string
The unique identifier for this key
length
integer
The length of this key (in bits)
name
string
The name for this key. The name must not be used by another key in the region. If unspecified, the name will be a hyphenated list of randomly-selected words.
public_key
string
The public SSH key, consisting of two space-separated fields: the algorithm name, and the base64-encoded key.
resource_group
object
The resource group for this key
type
string
The crypto-system for this key.
The enumerated values for this property may expand in the future.
400 - An invalid key patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A key with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The key patch conflicts with another key in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List load balancer profiles
GET /load_balancer/profiles
This request lists load balancer profiles available in the region. A load balancer profile specifies the performance characteristics and pricing model for a load balancer.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-profile.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The load balancer profiles were retrieved successfully
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
profiles
array
A page of load balancer profiles
total_count
integer
The total number of resources across all pages
Retrieve a load balancer profile
GET /load_balancer/profiles/{name}
This request retrieves a load balancer profile specified by the name in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-profile.read
Request
Path Parameters
name
Required *
string
The load balancer profile name
Query Parameters
Response
200 - The load balancer profile was retrieved successfully
access_modes
LoadBalancerProfileAccessModes
advanced_health_checks_supported
LoadBalancerProfileAdvancedHealthCheckSupported
asymmetric_routing_supported
LoadBalancerProfileAsymmetricRoutingSupported
availability
LoadBalancerProfileAvailability
failsafe_policy_actions
LoadBalancerProfileFailsafePolicyActions
family
string
The product family this load balancer profile belongs to.
The enumerated values for this property may expand in the future.
fqdn_pool_members_supported
LoadBalancerProfileFQDNSupported
href
string
The URL for this load balancer profile
instance_groups_supported
LoadBalancerProfileInstanceGroupsSupported
logging_supported
LoadBalancerProfileLoggingSupported
Indicates which logging type(s) are supported for a load balancer with this profile
mtls_supported
LoadBalancerProfileMtlsSupported
name
string
The globally unique name for this load balancer profile
route_mode_supported
LoadBalancerProfileRouteModeSupported
security_groups_supported
LoadBalancerProfileSecurityGroupsSupported
source_ip_session_persistence_supported
LoadBalancerProfileSourceIPSessionPersistenceSupported
targetable_load_balancer_profiles
array
The load balancer profiles that load balancers with this profile can target.
targetable_resource_types
LoadBalancerProfileTargetableResourceTypes
udp_supported
LoadBalancerProfileUDPSupported
404 - A load balancer profile with the specified name could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List load balancers
GET /load_balancers
This request lists load balancers in the region.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.view
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The load balancers were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
load_balancers
array
A page of load balancers
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
Create a load balancer
POST /load_balancers
This request creates and provisions a new load balancer.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.manageis.security-group.security-group.operateis.subnet.subnet.update
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer.create
Request
Request Body
LoadBalancerPrototype
The load balancer prototype object
dns
LoadBalancerDNSPrototype
The DNS configuration for this load balancer.
If unspecified, DNS `A` records for this load balancer's `hostname` property will be added to the public DNS zone `lb.appdomain.cloud`. Otherwise, those DNS `A` records will be added to the specified `zone`.
Not supported by private path load balancers.
instance
Required *
object
Identifies a DNS instance by a unique property.
zone
Required *
object
Identifies a DNS zone by a unique property.
is_private_path
boolean
Indicates whether this is a private path load balancer.
is_public
Required *
boolean
Indicates whether this load balancer is public.
At present,
- If `route_mode` is set to `true`, the load balancer must be private.
- If `is_private_path` is specified, it must be set to `false`.
listeners
array
The listeners of this load balancer
logging
object
The logging configuration to use for this load balancer. See VPC Datapath Logging on the logging format, fields and permitted values. If unspecified, `datapath.active` will be `false`.
To activate logging, the load balancer profile must support the specified logging type.
datapath
object
The datapath logging configuration for this load balancer.
name
string
The name for this load balancer. The name must not be used by another load balancer in the VPC. If unspecified, the name will be a hyphenated list of randomly-selected words.
pools
array
The pools of this load balancer
profile
object
Identifies a load balancer profile by a unique property.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
route_mode
boolean
Indicates whether route mode is enabled for this load balancer.
At present, public load balancers are not supported with route mode enabled.
security_groups
array
The security groups to use for this load balancer. If unspecified, the VPC's default security group is used.
The load balancer profile must support security groups.
subnets
Required *
array
The subnets to provision this load balancer in. The subnets must be in the same VPC.
- If 'availability' is specified as `subnet` in the profile, the load balancer's availability will depend on the availability of the zones that the subnets reside in.
- If 'availability' is specified as `region` in the profile, the load balancer remains available as long as any zone in the region is available. Only members in healthy zones will be sent new connections.
Load balancers in the `network` family allow only one subnet to be specified.
Response
201 - The load balancer was created successfully.
access_mode
string
The access mode for this load balancer:
- `private`: reachable from within its VPC, at IP addresses in `private_ips`
- `private_path`: reachable through an endpoint gateway
- `public`: reachable from the internet at the IP addresses in `public_ips`.
The enumerated values for this property may expand in the future.
advanced_health_checks_supported
boolean
Indicates whether this load balancer supports advanced health checks.
asymmetric_routing_supported
boolean
Indicates whether this load balancer supports asymmetric routing.
attached_load_balancer_pool_members
array
The load balancer pool members attached to this load balancer.
availability
string
The availability of this load balancer:
- `subnet`: remains available if at least one zone that the load balancer's subnets reside in is available
- `region`: remains available if at least one zone in the region is available.
The enumerated values for this property may expand in the future.
created_at
string
The date and time that this load balancer was created
crn
string
The CRN for this load balancer
dns
LoadBalancerDNS
The DNS configuration for this load balancer.
If absent, DNS `A` records for this load balancer's `hostname` property will be added to the public DNS zone `lb.appdomain.cloud`.
Not supported by private path load balancers.
failsafe_policy_actions
array
The supported `failsafe_policy.action` values for this load balancer's pools
fqdn_pool_members_supported
boolean
Indicates whether this load balancer supports pool members specified by their fully qualified domain names.
hostname
string
The fully qualified domain name assigned to this load balancer
href
string
The URL for this load balancer
id
string
The unique identifier for this load balancer
instance_groups_supported
boolean
Indicates whether this load balancer supports instance groups.
is_private_path
boolean
Indicates whether this is a private path load balancer.
is_public
boolean
The type of this load balancer, public or private
listeners
array
The listeners of this load balancer
logging
object
The logging configuration for this load balancer.
mtls_supported
boolean
Indicates whether this load balancer supports mTLS.
name
string
The name for this load balancer. The name is unique across all load balancers in the VPC.
operating_status
string
The operating status of this load balancer.
The enumerated values for this property may expand in the future.
pools
array
The pools of this load balancer
private_ips
array
The private IP addresses assigned to this load balancer.
Will be empty if `is_private` is `false`.
profile
object
The profile for this load balancer
provisioning_status
string
The provisioning status of this load balancer:
- `active`: The load balancer is running.
- `create_pending`: The load balancer is being created.
- `delete_pending`: The load balancer is being deleted.
- `maintenance_pending`: The load balancer is unavailable due to an internal error (contact IBM support).
- `migrate_pending`: The load balancer is migrating to the requested configuration. Performance may be degraded.
- `update_pending`: The load balancer is being updated to the requested configuration.
The enumerated values for this property may expand in the future.
public_ips
array
The public IP addresses assigned to this load balancer.
Will be empty if `is_public` is `false`.
resource_group
object
The resource group for this load balancer
resource_type
string
The resource type
route_mode
boolean
Indicates whether route mode is enabled for this load balancer.
At present, public load balancers are not supported with route mode enabled.
security_groups
array
The security groups targeting this load balancer.
If empty, all inbound and outbound traffic is allowed.
security_groups_supported
boolean
Indicates whether this load balancer supports security groups.
source_ip_session_persistence_supported
boolean
Indicates whether this load balancer supports source IP session persistence.
subnets
array
The subnets this load balancer is provisioned in.
All subnets will be in the same VPC.
udp_supported
boolean
Indicates whether this load balancer supports UDP.
400 - An invalid load balancer prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - A load balancer pool member prototype object conflicts with other load balancer pool
members in the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a load balancer
DELETE /load_balancers/{id}
This request deletes a load balancer. This operation cannot be reversed. A load balancer cannot be deleted if its `provisioning_status` is `delete_pending` or it is referenced by a resource.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer.deleteis.load-balancer.load-balancer-pool-member.deleteis.load-balancer.pool-member.detachis.load-balancer.load-balancer.detach
Request
Path Parameters
Query Parameters
Response
202 - The load balancer deletion request was accepted.
404 - A load balancer with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The load balancer cannot be deleted because it is in its current state, it is in use,
or it is referenced by another resource
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value
of the load balancer.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a load balancer
GET /load_balancers/{id}
This request retrieves a single load balancer specified by the identifier in the URL path.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.view
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer.read
Request
Response
200 - The load balancer was retrieved successfully.
access_mode
string
The access mode for this load balancer:
- `private`: reachable from within its VPC, at IP addresses in `private_ips`
- `private_path`: reachable through an endpoint gateway
- `public`: reachable from the internet at the IP addresses in `public_ips`.
The enumerated values for this property may expand in the future.
advanced_health_checks_supported
boolean
Indicates whether this load balancer supports advanced health checks.
asymmetric_routing_supported
boolean
Indicates whether this load balancer supports asymmetric routing.
attached_load_balancer_pool_members
array
The load balancer pool members attached to this load balancer.
availability
string
The availability of this load balancer:
- `subnet`: remains available if at least one zone that the load balancer's subnets reside in is available
- `region`: remains available if at least one zone in the region is available.
The enumerated values for this property may expand in the future.
created_at
string
The date and time that this load balancer was created
crn
string
The CRN for this load balancer
dns
LoadBalancerDNS
The DNS configuration for this load balancer.
If absent, DNS `A` records for this load balancer's `hostname` property will be added to the public DNS zone `lb.appdomain.cloud`.
Not supported by private path load balancers.
failsafe_policy_actions
array
The supported `failsafe_policy.action` values for this load balancer's pools
fqdn_pool_members_supported
boolean
Indicates whether this load balancer supports pool members specified by their fully qualified domain names.
hostname
string
The fully qualified domain name assigned to this load balancer
href
string
The URL for this load balancer
id
string
The unique identifier for this load balancer
instance_groups_supported
boolean
Indicates whether this load balancer supports instance groups.
is_private_path
boolean
Indicates whether this is a private path load balancer.
is_public
boolean
The type of this load balancer, public or private
listeners
array
The listeners of this load balancer
logging
object
The logging configuration for this load balancer.
mtls_supported
boolean
Indicates whether this load balancer supports mTLS.
name
string
The name for this load balancer. The name is unique across all load balancers in the VPC.
operating_status
string
The operating status of this load balancer.
The enumerated values for this property may expand in the future.
pools
array
The pools of this load balancer
private_ips
array
The private IP addresses assigned to this load balancer.
Will be empty if `is_private` is `false`.
profile
object
The profile for this load balancer
provisioning_status
string
The provisioning status of this load balancer:
- `active`: The load balancer is running.
- `create_pending`: The load balancer is being created.
- `delete_pending`: The load balancer is being deleted.
- `maintenance_pending`: The load balancer is unavailable due to an internal error (contact IBM support).
- `migrate_pending`: The load balancer is migrating to the requested configuration. Performance may be degraded.
- `update_pending`: The load balancer is being updated to the requested configuration.
The enumerated values for this property may expand in the future.
public_ips
array
The public IP addresses assigned to this load balancer.
Will be empty if `is_public` is `false`.
resource_group
object
The resource group for this load balancer
resource_type
string
The resource type
route_mode
boolean
Indicates whether route mode is enabled for this load balancer.
At present, public load balancers are not supported with route mode enabled.
security_groups
array
The security groups targeting this load balancer.
If empty, all inbound and outbound traffic is allowed.
security_groups_supported
boolean
Indicates whether this load balancer supports security groups.
source_ip_session_persistence_supported
boolean
Indicates whether this load balancer supports source IP session persistence.
subnets
array
The subnets this load balancer is provisioned in.
All subnets will be in the same VPC.
udp_supported
boolean
Indicates whether this load balancer supports UDP.
404 - A load balancer with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a load balancer
PATCH /load_balancers/{id}
This request updates a load balancer with the information in a provided load balancer patch. The load balancer patch object is structured in the same way as a retrieved load balancer and contains only the information to be updated. A load balancer can only be updated if its `provisioning_status` is `active`.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.manageis.subnet.subnet.update
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer.update
Request
Request Body
The load balancer patch
Path Parameters
Query Parameters
Response
200 - The load balancer was updated successfully.
access_mode
string
The access mode for this load balancer:
- `private`: reachable from within its VPC, at IP addresses in `private_ips`
- `private_path`: reachable through an endpoint gateway
- `public`: reachable from the internet at the IP addresses in `public_ips`.
The enumerated values for this property may expand in the future.
advanced_health_checks_supported
boolean
Indicates whether this load balancer supports advanced health checks.
asymmetric_routing_supported
boolean
Indicates whether this load balancer supports asymmetric routing.
attached_load_balancer_pool_members
array
The load balancer pool members attached to this load balancer.
availability
string
The availability of this load balancer:
- `subnet`: remains available if at least one zone that the load balancer's subnets reside in is available
- `region`: remains available if at least one zone in the region is available.
The enumerated values for this property may expand in the future.
created_at
string
The date and time that this load balancer was created
crn
string
The CRN for this load balancer
dns
LoadBalancerDNS
The DNS configuration for this load balancer.
If absent, DNS `A` records for this load balancer's `hostname` property will be added to the public DNS zone `lb.appdomain.cloud`.
Not supported by private path load balancers.
failsafe_policy_actions
array
The supported `failsafe_policy.action` values for this load balancer's pools
fqdn_pool_members_supported
boolean
Indicates whether this load balancer supports pool members specified by their fully qualified domain names.
hostname
string
The fully qualified domain name assigned to this load balancer
href
string
The URL for this load balancer
id
string
The unique identifier for this load balancer
instance_groups_supported
boolean
Indicates whether this load balancer supports instance groups.
is_private_path
boolean
Indicates whether this is a private path load balancer.
is_public
boolean
The type of this load balancer, public or private
listeners
array
The listeners of this load balancer
logging
object
The logging configuration for this load balancer.
mtls_supported
boolean
Indicates whether this load balancer supports mTLS.
name
string
The name for this load balancer. The name is unique across all load balancers in the VPC.
operating_status
string
The operating status of this load balancer.
The enumerated values for this property may expand in the future.
pools
array
The pools of this load balancer
private_ips
array
The private IP addresses assigned to this load balancer.
Will be empty if `is_private` is `false`.
profile
object
The profile for this load balancer
provisioning_status
string
The provisioning status of this load balancer:
- `active`: The load balancer is running.
- `create_pending`: The load balancer is being created.
- `delete_pending`: The load balancer is being deleted.
- `maintenance_pending`: The load balancer is unavailable due to an internal error (contact IBM support).
- `migrate_pending`: The load balancer is migrating to the requested configuration. Performance may be degraded.
- `update_pending`: The load balancer is being updated to the requested configuration.
The enumerated values for this property may expand in the future.
public_ips
array
The public IP addresses assigned to this load balancer.
Will be empty if `is_public` is `false`.
resource_group
object
The resource group for this load balancer
resource_type
string
The resource type
route_mode
boolean
Indicates whether route mode is enabled for this load balancer.
At present, public load balancers are not supported with route mode enabled.
security_groups
array
The security groups targeting this load balancer.
If empty, all inbound and outbound traffic is allowed.
security_groups_supported
boolean
Indicates whether this load balancer supports security groups.
source_ip_session_persistence_supported
boolean
Indicates whether this load balancer supports source IP session persistence.
subnets
array
The subnets this load balancer is provisioned in.
All subnets will be in the same VPC.
udp_supported
boolean
Indicates whether this load balancer supports UDP.
400 - An invalid load balancer patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A load balancer with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The load balancer cannot be updated in its current state.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value
of the load balancer.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List statistics of a load balancer
GET /load_balancers/{id}/statistics
This request lists statistics of a load balancer.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.view
Auditing
Calling this method generates the following auditing event.
Request
Path Parameters
id
Required *
The load balancer identifier
Query Parameters
Response
200 - The load balancer statistics were retrieved successfully.
active_connections
integer
The number of active connections for this load balancer
connection_rate
number
The current connection rate (connections per second) for this load balancer
data_processed_this_month
integer
The total number of bytes processed for this load balancer for the current calendar month
throughput
number
The current throughput (in Mbps) for this load balancer
404 - A load balancer with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List listeners for a load balancer
GET /load_balancers/{load_balancer_id}/listeners
This request lists listeners for a load balancer.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.view
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-listener.read
Request
Response
200 - The listeners of the load balancer were retrieved successfully.
listeners
array
The listeners for the load balancer
404 - A load balancer with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a listener for a load balancer
POST /load_balancers/{load_balancer_id}/listeners
This request creates a new listener for a load balancer.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-listener.create
Request
Request Body
LoadBalancerListenerPrototype
The load balancer listener prototype object
accept_proxy_protocol
boolean
If set to `true`, this listener will accept and forward PROXY protocol information. Supported by load balancers in the `application` family (otherwise always `false`). Additional restrictions:
- If this listener has `https_redirect` specified, its `accept_proxy_protocol` value must match the `accept_proxy_protocol` value of the `https_redirect` listener.
- If this listener is the target of another listener's `https_redirect`, its `accept_proxy_protocol` value must match that listener's `accept_proxy_protocol` value.
certificate_instance
object
Identifies a certificate instance by a unique property.
client_authentication
LoadBalancerListenerClientAuthenticationPrototype
The client authentication to use for this listener.
Supported by load balancers with `mtls_supported` set to `true`. The listener must have a `protocol` of `https`.
certificate_authority
Required *
object
The certificate instance to use for the listener client certificate authority.
Required if `certificate_revocation_list` is specified.
certificate_revocation_list
string
A PEM-encoded (with the label `X509 CRL`) certificate revocation list (CRL) to use for the listener.
The CRL must be formatted using the X.509 standard as described in RFC 5280.
If specified, `certificate_authority` must also be specified.
connection_limit
integer
The concurrent connection limit for the listener. If reached, incoming connections may be queued or rejected.
Supported for load balancers in the `application` family.
If unspecified, the limit will be `15000` for load balancers in the `application` family.
default_pool
object
Identifies a load balancer pool by a unique property.
https_redirect
object
The target listener that requests will be redirected to if none of the listener's `policies` match.
If specified, this listener must have a `protocol` of `http`, and the target listener must have a `protocol` of `https`.
http_status_code
Required *
integer
The HTTP status code for this redirect.
listener
Required *
object
Identifies a load balancer listener by a unique property.
uri
string
The redirect relative target URI.
idle_connection_timeout
integer
The idle connection timeout of the listener in seconds.
Supported for load balancers in the `application` family.
If unspecified, the timeout will be `50` for load balancers in the `application` family.
policies
array
The policy prototype objects for this listener. The load balancer must be in the `application` family.
port
integer
The listener port number. Each listener in the load balancer must have a non-overlapping port range and `protocol` combination. Protocol values of `tcp`, `http` and `https` share the TCP port space.
If `port_min` is also specified, `port` must have the same value as `port_min`.
port_max
integer
The inclusive upper bound of the range of ports used by this listener. Must not be less than `port_min`.
Only network load balancers with `route_mode`, `is_public` or `is_private_path` set to `true` support different values for `port_min` and `port_max`. If `route_mode` is set to `true`, the value must be `65535`.
The specified port range must not overlap with port ranges used by other listeners for this load balancer using the same protocol. Protocol values of `tcp`, `http` and `https` share the TCP port space.
port_min
integer
The inclusive lower bound of the range of ports used by this listener. Must not be greater than `port_max`.
If specified, `port_max` must also be specified, and must not be smaller. If unspecified, `port_max` must also be unspecified.
If `port` is also specified, `port_min` must have the same value as `port`.
Only network load balancers with `route_mode`, `is_public` or `is_private_path` set to `true` support different values for `port_min` and `port_max`. If `route_mode` is set to `true`, the value must be `1`.
The specified port range must not overlap with port ranges used by other listeners for this load balancer using the same protocol. Protocol values of `tcp`, `http` and `https` share the TCP port space.
protocol
Required *
string
The listener protocol. Each listener in the load balancer must have a non-overlapping port range and `protocol` combination.
Load balancers in the `network` family support `tcp` and `udp` (if `udp_supported` is `true`). Load balancers in the `application` family support `tcp`, `http` and `https`.
Additional restrictions:
- If `default_pool` is set, the pool's protocol must match, or be compatible with the listener's protocol. At present, the compatible protocols are `http` and `https`.
- If `https_redirect` is set, the protocol must be `http`.
Response
201 - The listener was created successfully.
accept_proxy_protocol
boolean
If set to `true`, this listener will accept and forward PROXY protocol information. Supported by load balancers in the `application` family (otherwise always `false`). Additional restrictions:
- If this listener has `https_redirect` specified, its `accept_proxy_protocol` value must match the `accept_proxy_protocol` value of the `https_redirect` listener.
- If this listener is the target of another listener's `https_redirect`, its `accept_proxy_protocol` value must match that listener's `accept_proxy_protocol` value.
certificate_instance
object
The certificate instance used for SSL termination.
If absent, this listener is not using a certificate instance.
client_authentication
LoadBalancerListenerClientAuthentication
connection_limit
integer
The concurrent connection limit for the listener. If reached, incoming connections may be queued or rejected.
This property will be present for load balancers in the `application` family.
created_at
string
The date and time that this listener was created
default_pool
object
The default pool for this listener. If absent, this listener has no default pool.
If `https_redirect` is set, the default pool will not be used.
href
string
The URL for this load balancer listener
https_redirect
object
If present, the target listener that requests are redirected to if none of the listener's `policies` match.
id
string
The unique identifier for this load balancer listener
idle_connection_timeout
integer
The idle connection timeout of the listener in seconds.
This property will be present for load balancers in the `application` family.
policies
array
The policies for this listener.
port
integer
The listener port number, or the inclusive lower bound of the port range.
port_max
integer
The inclusive upper bound of the range of ports used by this listener.
port_min
integer
The inclusive lower bound of the range of ports used by this listener.
protocol
string
The listener protocol.
The enumerated values for this property may expand in the future.
provisioning_status
string
The provisioning status of this listener
The enumerated values for this property may expand in the future.
400 - An invalid listener prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A load balancer with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The listener prototype object conflicts with another listener on the load balancer.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a load balancer listener
DELETE /load_balancers/{load_balancer_id}/listeners/{id}
This request deletes a load balancer listener. This operation cannot be reversed. For this operation to succeed, the listener must not be the target of another load balancer listener.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-listener.delete
Request
Response
202 - The listener deletion request was accepted.
404 - A load balancer or listener with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The listener is in use and cannot be deleted
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a load balancer listener
GET /load_balancers/{load_balancer_id}/listeners/{id}
This request retrieves a single listener specified by the identifier in the URL path.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.view
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-listener.read
Request
Response
200 - The listener was retrieved successfully.
accept_proxy_protocol
boolean
If set to `true`, this listener will accept and forward PROXY protocol information. Supported by load balancers in the `application` family (otherwise always `false`). Additional restrictions:
- If this listener has `https_redirect` specified, its `accept_proxy_protocol` value must match the `accept_proxy_protocol` value of the `https_redirect` listener.
- If this listener is the target of another listener's `https_redirect`, its `accept_proxy_protocol` value must match that listener's `accept_proxy_protocol` value.
certificate_instance
object
The certificate instance used for SSL termination.
If absent, this listener is not using a certificate instance.
client_authentication
LoadBalancerListenerClientAuthentication
connection_limit
integer
The concurrent connection limit for the listener. If reached, incoming connections may be queued or rejected.
This property will be present for load balancers in the `application` family.
created_at
string
The date and time that this listener was created
default_pool
object
The default pool for this listener. If absent, this listener has no default pool.
If `https_redirect` is set, the default pool will not be used.
href
string
The URL for this load balancer listener
https_redirect
object
If present, the target listener that requests are redirected to if none of the listener's `policies` match.
id
string
The unique identifier for this load balancer listener
idle_connection_timeout
integer
The idle connection timeout of the listener in seconds.
This property will be present for load balancers in the `application` family.
policies
array
The policies for this listener.
port
integer
The listener port number, or the inclusive lower bound of the port range.
port_max
integer
The inclusive upper bound of the range of ports used by this listener.
port_min
integer
The inclusive lower bound of the range of ports used by this listener.
protocol
string
The listener protocol.
The enumerated values for this property may expand in the future.
provisioning_status
string
The provisioning status of this listener
The enumerated values for this property may expand in the future.
404 - A load balancer with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a load balancer listener
PATCH /load_balancers/{load_balancer_id}/listeners/{id}
This request updates a load balancer listener from a listener patch.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-listener.update
Request
Request Body
The load balancer listener patch
Response
200 - The listener was updated successfully.
accept_proxy_protocol
boolean
If set to `true`, this listener will accept and forward PROXY protocol information. Supported by load balancers in the `application` family (otherwise always `false`). Additional restrictions:
- If this listener has `https_redirect` specified, its `accept_proxy_protocol` value must match the `accept_proxy_protocol` value of the `https_redirect` listener.
- If this listener is the target of another listener's `https_redirect`, its `accept_proxy_protocol` value must match that listener's `accept_proxy_protocol` value.
certificate_instance
object
The certificate instance used for SSL termination.
If absent, this listener is not using a certificate instance.
client_authentication
LoadBalancerListenerClientAuthentication
connection_limit
integer
The concurrent connection limit for the listener. If reached, incoming connections may be queued or rejected.
This property will be present for load balancers in the `application` family.
created_at
string
The date and time that this listener was created
default_pool
object
The default pool for this listener. If absent, this listener has no default pool.
If `https_redirect` is set, the default pool will not be used.
href
string
The URL for this load balancer listener
https_redirect
object
If present, the target listener that requests are redirected to if none of the listener's `policies` match.
id
string
The unique identifier for this load balancer listener
idle_connection_timeout
integer
The idle connection timeout of the listener in seconds.
This property will be present for load balancers in the `application` family.
policies
array
The policies for this listener.
port
integer
The listener port number, or the inclusive lower bound of the port range.
port_max
integer
The inclusive upper bound of the range of ports used by this listener.
port_min
integer
The inclusive lower bound of the range of ports used by this listener.
protocol
string
The listener protocol.
The enumerated values for this property may expand in the future.
provisioning_status
string
The provisioning status of this listener
The enumerated values for this property may expand in the future.
400 - An invalid listener patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A listener with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The listener patch object conflicts with another listener on the load balancer.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List policies for a load balancer listener
GET /load_balancers/{load_balancer_id}/listeners/{listener_id}/policies
This request lists policies for a load balancer listener. A policy consists of rules to match against each incoming request, and an action to apply to the request if a rule matches.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.view
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-listener-policy.read
Request
Response
200 - The policies of the listener were retrieved successfully.
policies
array
The policies for the load balancer listener
404 - A load balancer or listener with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a policy for a load balancer listener
POST /load_balancers/{load_balancer_id}/listeners/{listener_id}/policies
This request creates a new policy from a load balancer listener policy object. The prototype object is structured in the same way as a retrieved policy, and contains the information necessary to create the new policy. For this request to succeed, the load balancer must be in the `application` family.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-listener-policy.create
Request
Request Body
LoadBalancerListenerPolicyPrototype
The listener policy prototype object
action
Required *
string
The policy action:
- `forward_to_listener`: Requests will be forwarded to the specified `target` listener.
- `forward_to_pool`: Requests will be forwarded to the specified `target` pool.
- `https_redirect`: Requests will be redirected to the specified `target.listener`. This listener must have a `protocol` of `http`, and the target listener must have a `protocol` of `https`.
- `redirect`: Requests will be redirected to the specified `target.url`
- `reject`: Requests will be rejected with a `403` status code
name
string
The name for this policy. The name must not be used by another policy for the load balancer listener. If unspecified, the name will be a hyphenated list of randomly-selected words.
priority
Required *
integer
The priority of the policy. The priority is unique across all policies for this load balancer listener. Lower value indicates higher priority.
rules
array
The rule prototype objects for this policy.
target
LoadBalancerListenerPolicyTargetPrototype
- If `action` is `forward_to_listener`, specify a `LoadBalancerListenerIdentity` in this load balancer to forward to.
- If `action` is `forward_to_pool`, use `LoadBalancerPoolIdentity` to specify a pool in this load balancer to forward to.
- If `action` is `https_redirect`, use `LoadBalancerListenerPolicyHTTPSRedirectPrototype` to specify a listener on this load balancer to redirect to.
- If `action` is `redirect`, use `LoadBalancerListenerPolicyRedirectURLPrototype`to specify a URL to redirect to.
http_status_code
Required *
integer
The HTTP status code for this redirect.
listener
Required *
object
Identifies a load balancer listener by a unique property.
uri
string
The redirect relative target URI.
url
Required *
string
The redirect target URL. The URL supports RFC 6570 level 1 expressions for the following variables which expand to values from the originally requested URL (or the indicated defaults if the request did not include them):
- `protocol`
- `host`
- `port` (default: `80` for HTTP requests, `443` for HTTPS requests)
- `path` (default: '/')
- `query` (default: '')
The protocol, host, and port segments of the URL, must only contain at most one instance of the `protocol`, `host`, and `port` variables, respectively. The path and query segments of the URL may contain any combination of variables. If the substitution of `path` results in consecutive leading slashes, the leading slash from the substitution will be removed. Additional examples:
- `https://{host}:8080/{port}/{host}/{path}`
- `https://www.example.com`
- `{protocol}://test.{host}:80/{path}`
Response
201 - The policy was created successfully.
action
string
The policy action:
- `forward_to_listener`: Requests will be forwarded to the specified `target` listener
- `forward_to_pool`: Requests will be forwarded to the specified `target` pool
- `https_redirect`: Requests will be redirected to the specified `target` listener. The listener must have a `protocol` of `http`, and the target listener must have a `protocol` of `https`
- `redirect`: Requests will be redirected to the specified `target.url`
- `reject`: Requests will be rejected with a `403` status code
The enumerated values for this property may expand in the future.
created_at
string
The date and time that this policy was created
href
string
The URL for this load balancer policy
id
string
The unique identifier for this load balancer policy
name
string
The name for this load balancer listener policy. The name is unique across all policies for the load balancer listener.
priority
integer
The priority of the policy. The priority is unique across all policies for this load balancer listener. Lower value indicates higher priority.
provisioning_status
string
The provisioning status of this policy
The enumerated values for this property may expand in the future.
rules
array
The rules for this policy.
target
LoadBalancerListenerPolicyTarget
- If `action` is `forward_to_listener`, specify a `LoadBalancerListenerIdentity`
- If `action` is `forward_to_pool`, specify a `LoadBalancerPoolIdentity`
- If `action` is `https_redirect`, the response is a `LoadBalancerListenerPolicyHTTPSRedirect`
- If `action` is `redirect`, the response is a `LoadBalancerListenerPolicyRedirectURL`
400 - An invalid listener policy prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A load balancer or listener with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The listener policy prototype object conflicts with another listener policy
on the load balancer.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a load balancer listener policy
DELETE /load_balancers/{load_balancer_id}/listeners/{listener_id}/policies/{id}
Deletes a policy of the load balancer listener. This operation cannot be reversed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-listener-policy.delete
Request
Response
202 - The policy deletion request was accepted.
404 - A load balancer or listener with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a load balancer listener policy
GET /load_balancers/{load_balancer_id}/listeners/{listener_id}/policies/{id}
Retrieve a single policy specified by the identifier in the URL path.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.view
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-listener-policy.read
Request
Response
200 - The policy was retrieved successfully.
action
string
The policy action:
- `forward_to_listener`: Requests will be forwarded to the specified `target` listener
- `forward_to_pool`: Requests will be forwarded to the specified `target` pool
- `https_redirect`: Requests will be redirected to the specified `target` listener. The listener must have a `protocol` of `http`, and the target listener must have a `protocol` of `https`
- `redirect`: Requests will be redirected to the specified `target.url`
- `reject`: Requests will be rejected with a `403` status code
The enumerated values for this property may expand in the future.
created_at
string
The date and time that this policy was created
href
string
The URL for this load balancer policy
id
string
The unique identifier for this load balancer policy
name
string
The name for this load balancer listener policy. The name is unique across all policies for the load balancer listener.
priority
integer
The priority of the policy. The priority is unique across all policies for this load balancer listener. Lower value indicates higher priority.
provisioning_status
string
The provisioning status of this policy
The enumerated values for this property may expand in the future.
rules
array
The rules for this policy.
target
LoadBalancerListenerPolicyTarget
- If `action` is `forward_to_listener`, specify a `LoadBalancerListenerIdentity`
- If `action` is `forward_to_pool`, specify a `LoadBalancerPoolIdentity`
- If `action` is `https_redirect`, the response is a `LoadBalancerListenerPolicyHTTPSRedirect`
- If `action` is `redirect`, the response is a `LoadBalancerListenerPolicyRedirectURL`
404 - A load balancer or listener with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a load balancer listener policy
PATCH /load_balancers/{load_balancer_id}/listeners/{listener_id}/policies/{id}
This request updates a load balancer listener policy with the information in a provided policy patch. The policy patch object is structured in the same way as a retrieved policy and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-listener-policy.update
Request
Request Body
The listener policy patch
Response
200 - The listener policy was updated successfully.
action
string
The policy action:
- `forward_to_listener`: Requests will be forwarded to the specified `target` listener
- `forward_to_pool`: Requests will be forwarded to the specified `target` pool
- `https_redirect`: Requests will be redirected to the specified `target` listener. The listener must have a `protocol` of `http`, and the target listener must have a `protocol` of `https`
- `redirect`: Requests will be redirected to the specified `target.url`
- `reject`: Requests will be rejected with a `403` status code
The enumerated values for this property may expand in the future.
created_at
string
The date and time that this policy was created
href
string
The URL for this load balancer policy
id
string
The unique identifier for this load balancer policy
name
string
The name for this load balancer listener policy. The name is unique across all policies for the load balancer listener.
priority
integer
The priority of the policy. The priority is unique across all policies for this load balancer listener. Lower value indicates higher priority.
provisioning_status
string
The provisioning status of this policy
The enumerated values for this property may expand in the future.
rules
array
The rules for this policy.
target
LoadBalancerListenerPolicyTarget
- If `action` is `forward_to_listener`, specify a `LoadBalancerListenerIdentity`
- If `action` is `forward_to_pool`, specify a `LoadBalancerPoolIdentity`
- If `action` is `https_redirect`, the response is a `LoadBalancerListenerPolicyHTTPSRedirect`
- If `action` is `redirect`, the response is a `LoadBalancerListenerPolicyRedirectURL`
400 - An invalid listener policy patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A load balancer or listener with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The listener policy patch conflicts with another listener policy on the load balancer.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List rules of a load balancer listener policy
GET /load_balancers/{load_balancer_id}/listeners/{listener_id}/policies/{policy_id}/rules
This request lists rules of a load balancer listener policy.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.view
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-listener-policy-rule.read
Request
Response
200 - The rules of the policy were retrieved successfully.
rules
array
The rules for the load balancer listener policy
404 - A load balancer, listener, or policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a rule for a load balancer listener policy
POST /load_balancers/{load_balancer_id}/listeners/{listener_id}/policies/{policy_id}/rules
Creates a new rule for the load balancer listener policy.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-listener-policy-rule.create
Request
Request Body
LoadBalancerListenerPolicyRulePrototype
The listener policy rule prototype object
condition
Required *
string
The condition for the rule.
field
string
The field to match for this rule.
- If the `type` is `header`, this property must be specified.
- If the `type` is `body` or `query`, this property may be specified.
- For all other types, this property must not be specified.
type
Required *
string
The content the rule applies to:
-
`body`: The UTF-8 form-encoded HTTP request body
-
`header`: The HTTP header
-
`hostname`: The fully-qualified domain name of the server specified in the Host HTTP request header
-
`path`: The path of the HTTP request
-
`query`: The query of the HTTP request URL
-
`sni_hostname`: The fully-qualified domain name of the server provided in the "server name indicator" extension during TLS negotiation
-
For listeners with `protocol` `http` or `https`, any type may be specified.
-
For listeners with `protocol` `tcp`, only type `sni_hostname` may be specified.
value
Required *
string
The value to be matched for the rule condition.
If the rule type is `query` and the rule condition is not `matches_regex`, the value must be percent-encoded.
Response
201 - The rule was created successfully.
condition
string
The condition for the rule.
The enumerated values for this property may expand in the future.
created_at
string
The date and time that this rule was created
field
string
The field to match for this rule. If `condition` is not `matches_regex`, the value is percent-encoded.
href
string
The URL for this load balancer listener policy rule
id
string
The unique identifier for this load balancer listener policy rule
provisioning_status
string
The provisioning status of this rule
The enumerated values for this property may expand in the future.
type
string
The type of the rule. Body rules are applied to form-encoded request bodies using the `UTF-8` character set.
The enumerated values for this property may expand in the future.
value
string
The value to be matched for the rule condition.
If the rule type is `query` and the rule condition is not `matches_regex`, the value must be percent-encoded.
400 - An invalid rule prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A load balancer, listener, or policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The rule prototype object conflicts with another rule on the listener.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a load balancer listener policy rule
DELETE /load_balancers/{load_balancer_id}/listeners/{listener_id}/policies/{policy_id}/rules/{id}
Deletes a rule from the load balancer listener policy. This operation cannot be reversed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-listener-policy-rule.delete
Request
Response
202 - The rule deletion request was accepted.
404 - A load balancer, listener or policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a load balancer listener policy rule
GET /load_balancers/{load_balancer_id}/listeners/{listener_id}/policies/{policy_id}/rules/{id}
Retrieves a single rule specified by the identifier in the URL path.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.view
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-listener-policy-rule.read
Request
Response
200 - The rule was retrieved successfully.
condition
string
The condition for the rule.
The enumerated values for this property may expand in the future.
created_at
string
The date and time that this rule was created
field
string
The field to match for this rule. If `condition` is not `matches_regex`, the value is percent-encoded.
href
string
The URL for this load balancer listener policy rule
id
string
The unique identifier for this load balancer listener policy rule
provisioning_status
string
The provisioning status of this rule
The enumerated values for this property may expand in the future.
type
string
The type of the rule. Body rules are applied to form-encoded request bodies using the `UTF-8` character set.
The enumerated values for this property may expand in the future.
value
string
The value to be matched for the rule condition.
If the rule type is `query` and the rule condition is not `matches_regex`, the value must be percent-encoded.
404 - A load balancer, listener or policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a load balancer listener policy rule
PATCH /load_balancers/{load_balancer_id}/listeners/{listener_id}/policies/{policy_id}/rules/{id}
Updates a rule of the load balancer listener policy.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-listener-policy-rule.update
Request
Request Body
The listener policy rule patch.
Response
200 - The listener policy rule was updated successfully.
condition
string
The condition for the rule.
The enumerated values for this property may expand in the future.
created_at
string
The date and time that this rule was created
field
string
The field to match for this rule. If `condition` is not `matches_regex`, the value is percent-encoded.
href
string
The URL for this load balancer listener policy rule
id
string
The unique identifier for this load balancer listener policy rule
provisioning_status
string
The provisioning status of this rule
The enumerated values for this property may expand in the future.
type
string
The type of the rule. Body rules are applied to form-encoded request bodies using the `UTF-8` character set.
The enumerated values for this property may expand in the future.
value
string
The value to be matched for the rule condition.
If the rule type is `query` and the rule condition is not `matches_regex`, the value must be percent-encoded.
400 - An invalid rule patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A load balancer, listener or policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The rule patch conflicts with another rule on the listener.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List pools of a load balancer
GET /load_balancers/{load_balancer_id}/pools
This request lists pools of a load balancer.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.view
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-pool.read
Request
Response
200 - The pools of the load balancer were retrieved successfully.
pools
array
The pools for the load balancer
404 - A load balancer with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a load balancer pool
POST /load_balancers/{load_balancer_id}/pools
This request creates a new pool from a pool prototype object.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-pool.create
Request
Request Body
LoadBalancerPoolPrototype
The load balancer pool prototype object.
algorithm
Required *
string
The load balancing algorithm.
- `least_connections`: Routes traffic to the pool member with the least active connections. Supported by `application` and `network` family load balancers that have `availability` with value `subnet` in the profile.
- `round_robin`: Distributes traffic sequentially across pool members. Supported by `application` and `network` family load balancers.
- `weighted_round_robin`: Distributes traffic across pool members proportionally to configured member weights. Supported by `application` and `network` family load balancers.
- `weighted_forwarding`: Forwards the layer 4 packets across backend pools proportionally to configured member weights. Supported by `network` family load balancers with an `asymmetric_routing_supported` value of `true`.
client_authentication
LoadBalancerPoolClientAuthenticationPrototype
The client authentication to use for this pool.
Supported by load balancers with `mtls_supported` set to `true`. The pool must have a `protocol` of `https`.
certificate_instance
Required *
object
The backend certificate instance to use for client certificate verification.
Supported by load balancers with `mtls_supported` set to `true`. The pool must have a `protocol` of `https`.
failsafe_policy
object
The failsafe policy to use for this pool.
If unspecified, the default failsafe policy action from the profile will be used.
action
string
A load balancer failsafe policy action:
- `bypass`: Bypasses the members and sends requests directly to their destination IPs. If specified, this load balancer must have `route_mode` enabled.
- `drop`: Drops requests. If specified, the pool protocol must be `tcp`.
- `fail`: Fails requests with an HTTP `503` status code. If specified, the pool protocol must be `http` or `https`.
- `forward`: Forwards requests to the `target` pool. If specified, the pool protocol must be `http` or `https`.
The specified value must be listed in the `failsafe_policy_actions` for this pool's load balancer.
target
object
Identifies a load balancer pool by a unique property.
health_monitor
Required *
object
The health monitor of this pool.
If this pool has a member targeting a load balancer then:
- If the targeted load balancer has multiple subnets, this health monitor will be used to direct traffic to the available subnets.
- The health checks spawned by this health monitor will be handled as any other traffic (that is, subject to the configuration of listeners and pools on the target load balancer).
- This health monitor does not affect how pool member health is determined within the target load balancer.
For more information, see Private Path network load balancer frequently asked questions.
delay
Required *
integer
The seconds to wait between health checks. Must be greater than `timeout`.
max_retries
Required *
integer
The health check max retries.
port
object
The health check port.
If specified, this overrides the pool member port values.
timeout
Required *
integer
The seconds to wait for a response to a health check. Must be less than `delay`.
type
Required *
string
The protocol type to use for health checks.
members
array
The members for this load balancer pool. For load balancers in the `network` family, the same `port` and `target` tuple cannot be shared by a pool member of any other load balancer in the same VPC.
name
string
The name for this load balancer pool. The name must not be used by another pool for the load balancer. If unspecified, the name will be a hyphenated list of randomly-selected words.
protocol
Required *
string
The protocol used for this load balancer pool. Load balancers in the `network` family support `tcp` and `udp` (if `udp_supported` is `true`). Load balancers in the `application` family support `tcp`, `http`, and `https`.
NOTE: HTTP sends data in plain text, making it vulnerable to eavesdropping and tampering. Additionally, HTTP has no built-in mechanism to verify the identity of the server you are connecting to. It is recommended to choose `https` instead of `http`. For more details, see: https://www.cloudflare.com/learning/ssl/why-is-http-not-secure
proxy_protocol
string
The PROXY protocol setting for this pool:
- `v1`: Enabled with version 1 (human-readable header format)
- `v2`: Enabled with version 2 (binary header format)
- `disabled`: Disabled
For load balancers in the `network` family, this property must be `disabled`.
server_authentication
LoadBalancerPoolServerAuthenticationPrototype
The server authentication to use for this pool.
Supported by load balancers with `mtls_supported` set to `true`. The pool must have a `protocol` of `https`.
certificate_authority
object
The backend server certificate authority instance to use for server certificate verification.
Supported by load balancers with `mtls_supported` set to `true`. The pool must have a `protocol` of `https`.
If specified, `verify_certificate` must be `true`.
verify_certificate
boolean
Indicates whether server certificate verification is enabled.
If set to `true`, the backend server certificate is verified by:
- `certificate_authority`, if specified.
- the system default certificate authorities, if `certificate_authority` is not specified.
session_persistence
object
The session persistence of this pool. If specified, the load balancer must have `source_ip_session_persistence_supported` set to `true` in its profile.
If unspecified, session persistence will be disabled, and traffic will be distributed across members of the pool.
cookie_name
string
The session persistence cookie name. Names starting with `IBM` are not allowed.
If specified, the session persistence type must be `app_cookie`.
type
Required *
string
The session persistence type.
If `http_cookie` or `app_cookie` is specified, the pool protocol must be `http` or `https`.
Response
201 - The pool was created successfully.
algorithm
string
The load balancing algorithm.
The enumerated values for this property may expand in the future.
client_authentication
LoadBalancerPoolClientAuthentication
The client authentication used for this pool.
created_at
string
The date and time that this pool was created
failsafe_policy
LoadBalancerPoolFailsafePolicy
health_monitor
object
The health monitor of this pool.
If this pool has a member targeting a load balancer then:
- If the targeted load balancer has multiple subnets, this health monitor is used to direct traffic to the available subnets.
- The health checks spawned by this health monitor is handled as any other traffic (that is, subject to the configuration of listeners and pools on the target load balancer).
- This health monitor does not affect how pool member health is determined within the target load balancer.
For more information, see Private Path network load balancer frequently asked questions.
href
string
The URL for this load balancer pool
id
string
The unique identifier for this load balancer pool
instance_group
object
The instance group that is managing this pool.
members
array
The backend server members of the pool
name
string
The name for this load balancer pool. The name is unique across all pools for the load balancer.
protocol
string
The protocol for this load balancer pool.
The enumerated values for this property may expand in the future.
provisioning_status
string
The provisioning status of this pool
The enumerated values for this property may expand in the future.
proxy_protocol
string
The PROXY protocol setting for this pool:
- `v1`: Enabled with version 1 (human-readable header format)
- `v2`: Enabled with version 2 (binary header format)
- `disabled`: Disabled
The enumerated values for this property may expand in the future.
server_authentication
LoadBalancerPoolServerAuthentication
The server authentication used for this pool.
This property will be absent if the `pool.protocol` is not `https`.
session_persistence
object
The session persistence of this pool.
If absent, session persistence will be disabled, and traffic will be distributed across backend server members of the pool.
400 - An invalid pool prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A load balancer with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - A load balancer pool prototype object conflicts with other load balancer pool
for the load balancer.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a load balancer pool
DELETE /load_balancers/{load_balancer_id}/pools/{id}
This request deletes a load balancer pool. This operation cannot be reversed. The pool must not currently be the default pool for any listener in the load balancer, nor be the target pool in the failsafe policy for any other pool.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-pool.deleteis.load-balancer.pool-member.detachis.load-balancer.load-balancer.detach
Request
Response
202 - The pool deletion request was accepted.
404 - A load balancer or pool with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The pool is currently the default pool for one or more listeners, or the pool is
the target for a listener policy, or the pool is the target for a pool failsafe policy.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a load balancer pool
GET /load_balancers/{load_balancer_id}/pools/{id}
This request retrieves a single pool specified by the identifier in the URL path.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.view
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-pool.read
Request
Response
200 - The pool was retrieved successfully.
algorithm
string
The load balancing algorithm.
The enumerated values for this property may expand in the future.
client_authentication
LoadBalancerPoolClientAuthentication
The client authentication used for this pool.
created_at
string
The date and time that this pool was created
failsafe_policy
LoadBalancerPoolFailsafePolicy
health_monitor
object
The health monitor of this pool.
If this pool has a member targeting a load balancer then:
- If the targeted load balancer has multiple subnets, this health monitor is used to direct traffic to the available subnets.
- The health checks spawned by this health monitor is handled as any other traffic (that is, subject to the configuration of listeners and pools on the target load balancer).
- This health monitor does not affect how pool member health is determined within the target load balancer.
For more information, see Private Path network load balancer frequently asked questions.
href
string
The URL for this load balancer pool
id
string
The unique identifier for this load balancer pool
instance_group
object
The instance group that is managing this pool.
members
array
The backend server members of the pool
name
string
The name for this load balancer pool. The name is unique across all pools for the load balancer.
protocol
string
The protocol for this load balancer pool.
The enumerated values for this property may expand in the future.
provisioning_status
string
The provisioning status of this pool
The enumerated values for this property may expand in the future.
proxy_protocol
string
The PROXY protocol setting for this pool:
- `v1`: Enabled with version 1 (human-readable header format)
- `v2`: Enabled with version 2 (binary header format)
- `disabled`: Disabled
The enumerated values for this property may expand in the future.
server_authentication
LoadBalancerPoolServerAuthentication
The server authentication used for this pool.
This property will be absent if the `pool.protocol` is not `https`.
session_persistence
object
The session persistence of this pool.
If absent, session persistence will be disabled, and traffic will be distributed across backend server members of the pool.
404 - A load balancer with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a load balancer pool
PATCH /load_balancers/{load_balancer_id}/pools/{id}
This request updates a load balancer pool from a pool patch.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-pool.update
Request
Request Body
The load balancer pool patch
Path Parameters
Query Parameters
Response
200 - The load balancer pool was updated successfully.
algorithm
string
The load balancing algorithm.
The enumerated values for this property may expand in the future.
client_authentication
LoadBalancerPoolClientAuthentication
The client authentication used for this pool.
created_at
string
The date and time that this pool was created
failsafe_policy
LoadBalancerPoolFailsafePolicy
health_monitor
object
The health monitor of this pool.
If this pool has a member targeting a load balancer then:
- If the targeted load balancer has multiple subnets, this health monitor is used to direct traffic to the available subnets.
- The health checks spawned by this health monitor is handled as any other traffic (that is, subject to the configuration of listeners and pools on the target load balancer).
- This health monitor does not affect how pool member health is determined within the target load balancer.
For more information, see Private Path network load balancer frequently asked questions.
href
string
The URL for this load balancer pool
id
string
The unique identifier for this load balancer pool
instance_group
object
The instance group that is managing this pool.
members
array
The backend server members of the pool
name
string
The name for this load balancer pool. The name is unique across all pools for the load balancer.
protocol
string
The protocol for this load balancer pool.
The enumerated values for this property may expand in the future.
provisioning_status
string
The provisioning status of this pool
The enumerated values for this property may expand in the future.
proxy_protocol
string
The PROXY protocol setting for this pool:
- `v1`: Enabled with version 1 (human-readable header format)
- `v2`: Enabled with version 2 (binary header format)
- `disabled`: Disabled
The enumerated values for this property may expand in the future.
server_authentication
LoadBalancerPoolServerAuthentication
The server authentication used for this pool.
This property will be absent if the `pool.protocol` is not `https`.
session_persistence
object
The session persistence of this pool.
If absent, session persistence will be disabled, and traffic will be distributed across backend server members of the pool.
400 - An invalid pool patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A pool with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The pool patch conflicts with another pool on the load balancer, or
the requested update conflicts with the current load balancer configuration due to one or more of:
- A `protocol` that is incompatible with the listener's protocol
- A `protocol` that is incompatible with the failsafe target pool's protocol
- A failsafe policy `action` other than `forward` with a failsafe policy `target` set
- A failsafe policy `action` of `forward` without a failsafe policy `target` set
errors
array
The errors that occurred.
trace
string
The unique error identifier
List members of a load balancer pool
GET /load_balancers/{load_balancer_id}/pools/{pool_id}/members
This request lists members of a load balancer pool.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.view
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-pool-member.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The members of the load balancer pool were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
members
array
A page of members for the load balancer pool
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - A load balancer or pool with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
POST /load_balancers/{load_balancer_id}/pools/{pool_id}/members
This request creates a new member and adds the member to the pool.
The pool must not already have a member targeting a load balancer.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-pool-member.createis.load-balancer.pool-member.attachis.load-balancer.load-balancer.attach
Request
Request Body
LoadBalancerPoolMemberPrototype
The load balancer pool member prototype object.
port
Required *
integer
The port the member will receive load balancer traffic on. Applies only to load balancer traffic received on a listener with a single port. (If the traffic is received on a listener with a port range, the member will receive the traffic on the same port the listener received it on.)
This port will also be used for health checks unless the `port` property of `health_monitor` property is specified.
The port must be unique across all members for all pools associated with this pool's listener.
For load balancers in the `network` family, the same `port` and `target` tuple cannot be shared by a pool member of any other load balancer in the same VPC.
target
Required *
LoadBalancerPoolMemberTargetPrototype
The pool member target.
If the load balancer has `route_mode` set to `true`, the member must be in a zone the load balancer has a subnet in.
For load balancers in the `network` family, the same `port` and `target` tuple cannot be shared by a pool member of any other load balancer in the same VPC.
address
Required *
object
The IP address.
This property may expand to support IPv6 addresses in the future.
fqdn
Required *
string
A fully qualified domain name for this resource
weight
integer
The weight of the member.
If specified, the pool algorithm must be `weighted_round_robin` and the load balancer must be in the `application` family.
If unspecified, the weight will be `50` for load balancers in the `application` family
Response
201 - The member was created successfully.
created_at
string
The date and time that this member was created
health
string
The health of the member.
The enumerated values for this property may expand in the future.
href
string
The URL for this load balancer pool member
id
string
The unique identifier for this load balancer pool member
port
integer
The port the member will receive load balancer traffic on. Applies only to load balancer traffic received on a listener with a single port. (If the traffic is received on a listener with a port range, the member will receive the traffic on the same port the listener received it on.)
This port will also be used for health checks unless the `port` property of `health_monitor` property is specified.
provisioning_status
string
The provisioning status of this member
The enumerated values for this property may expand in the future.
target
LoadBalancerPoolMemberTarget
The pool member target.
weight
integer
The weight of the member.
This property will be present if the pool algorithm is `weighted_round_robin`.
400 - An invalid member prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A load balancer or pool with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The load balancer pool member prototype object conflicts with
another load balancer pool member in the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Replace load balancer pool members
PUT /load_balancers/{load_balancer_id}/pools/{pool_id}/members
This request replaces the existing members of the load balancer pool with new members created from the collection of member prototype objects.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
Request
Request Body
LoadBalancerPoolMemberCollectionPrototype
The collection of prototype objects for load balancer pool members.
members
Required *
array
The member prototype objects for this pool.
Response
200 - The load balancer pool member was updated successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
members
array
A page of members for the load balancer pool
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
400 - An invalid member prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A load balancer or pool with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - A load balancer pool member prototype object conflicts with other load balancer pool
members in the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a load balancer pool member
DELETE /load_balancers/{load_balancer_id}/pools/{pool_id}/members/{id}
This request deletes a member from the pool. This operation cannot be reversed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-pool-member.deleteis.load-balancer.pool-member.detachis.load-balancer.load-balancer.detach
Request
Response
202 - The member deletion request was accepted.
404 - A load balancer, pool or member with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The load balancer pool member is managed by an instance group.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a load balancer pool member
GET /load_balancers/{load_balancer_id}/pools/{pool_id}/members/{id}
This request retrieves a single member specified by the identifier in the URL path.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.view
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-pool-member.read
Request
Response
200 - The member was retrieved successfully.
created_at
string
The date and time that this member was created
health
string
The health of the member.
The enumerated values for this property may expand in the future.
href
string
The URL for this load balancer pool member
id
string
The unique identifier for this load balancer pool member
port
integer
The port the member will receive load balancer traffic on. Applies only to load balancer traffic received on a listener with a single port. (If the traffic is received on a listener with a port range, the member will receive the traffic on the same port the listener received it on.)
This port will also be used for health checks unless the `port` property of `health_monitor` property is specified.
provisioning_status
string
The provisioning status of this member
The enumerated values for this property may expand in the future.
target
LoadBalancerPoolMemberTarget
The pool member target.
weight
integer
The weight of the member.
This property will be present if the pool algorithm is `weighted_round_robin`.
404 - A member with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a load balancer pool member
PATCH /load_balancers/{load_balancer_id}/pools/{pool_id}/members/{id}
This request updates an existing member from a member patch.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
is.load-balancer.load-balancer-pool-member.updateis.load-balancer.pool-member.detachis.load-balancer.load-balancer.detachis.load-balancer.pool-member.attachis.load-balancer.load-balancer.attach
Request
Request Body
The load balancer pool member patch
Response
200 - The pool member was updated successfully.
created_at
string
The date and time that this member was created
health
string
The health of the member.
The enumerated values for this property may expand in the future.
href
string
The URL for this load balancer pool member
id
string
The unique identifier for this load balancer pool member
port
integer
The port the member will receive load balancer traffic on. Applies only to load balancer traffic received on a listener with a single port. (If the traffic is received on a listener with a port range, the member will receive the traffic on the same port the listener received it on.)
This port will also be used for health checks unless the `port` property of `health_monitor` property is specified.
provisioning_status
string
The provisioning status of this member
The enumerated values for this property may expand in the future.
target
LoadBalancerPoolMemberTarget
The pool member target.
weight
integer
The weight of the member.
This property will be present if the pool algorithm is `weighted_round_robin`.
400 - An invalid pool member patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A pool member with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The load balancer pool member patch conflicts with
another load balancer pool member in the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List network ACLs
GET /network_acls
This request lists network ACLs in the region. A network ACL defines a set of packet filtering rules for traffic in and out of the subnets the network ACL is attached to. No traffic is allowed by default. Both allow and deny rules can be defined, and rules are stateless so that reverse traffic in response to allowed traffic is not automatically allowed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.network-acl.network-acl.listis.network-acl.network-acl.read
Auditing
Calling this method generates the following auditing event.
is.network-acl.network-acl.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
Response
200 - The network ACLs were retrieved successfully
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
network_acls
array
A page of network ACLs
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
Create a network ACL
POST /network_acls
This request creates a new stateless network ACL from a network ACL prototype object. The prototype object is structured in the same way as a retrieved network ACL, and contains the information necessary to create the new network ACL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.network-acl.network-acl.createis.network-acl.network-acl.readis.vpc.vpc.operate
Auditing
Calling this method generates the following auditing event.
is.network-acl.network-acl.create
Request
Request Body
NetworkACLPrototype
The network ACL prototype object
name
string
The name for this network ACL. The name must not be used by another network ACL for the VPC. If unspecified, the name will be a hyphenated list of randomly-selected words.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
vpc
Required *
object
Identifies a VPC by a unique property.
Response
201 - The network ACL was created successfully
created_at
string
The date and time that the network ACL was created
crn
string
The CRN for this network ACL
href
string
The URL for this network ACL
id
string
The unique identifier for this network ACL
name
string
The name for this network ACL. The name is unique across all network ACLs for the VPC.
resource_group
object
The resource group for this network ACL
rules
array
The ordered rules for this network ACL. If no rules exist, no traffic will be allowed.
subnets
array
The subnets to which this network ACL is attached
vpc
object
The VPC this network ACL resides in
400 - An invalid network ACL prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The network ACL prototype object conflicts with another network ACL
in the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a network ACL
DELETE /network_acls/{id}
This request deletes a network ACL. This operation cannot be reversed. For this request to succeed, the network ACL must not be the default network ACL for any VPCs, and the network ACL must not be attached to any subnets.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.network-acl.network-acl.delete
Auditing
Calling this method generates the following auditing event.
is.network-acl.network-acl.delete
Request
Response
204 - The network ACL was deleted successfully.
403 - A default network ACL is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A network ACL with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The network ACL is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a network ACL
GET /network_acls/{id}
This request retrieves a single network ACL specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.network-acl.network-acl.read
Auditing
Calling this method generates the following auditing event.
is.network-acl.network-acl.read
Request
Response
200 - The network ACL was retrieved successfully
created_at
string
The date and time that the network ACL was created
crn
string
The CRN for this network ACL
href
string
The URL for this network ACL
id
string
The unique identifier for this network ACL
name
string
The name for this network ACL. The name is unique across all network ACLs for the VPC.
resource_group
object
The resource group for this network ACL
rules
array
The ordered rules for this network ACL. If no rules exist, no traffic will be allowed.
subnets
array
The subnets to which this network ACL is attached
vpc
object
The VPC this network ACL resides in
404 - A network ACL with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a network ACL
PATCH /network_acls/{id}
This request updates a network ACL's name.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.network-acl.network-acl.update
Auditing
Calling this method generates the following auditing event.
is.network-acl.network-acl.update
Request
Request Body
The network ACL patch
Response
200 - The network ACL was updated successfully.
created_at
string
The date and time that the network ACL was created
crn
string
The CRN for this network ACL
href
string
The URL for this network ACL
id
string
The unique identifier for this network ACL
name
string
The name for this network ACL. The name is unique across all network ACLs for the VPC.
resource_group
object
The resource group for this network ACL
rules
array
The ordered rules for this network ACL. If no rules exist, no traffic will be allowed.
subnets
array
The subnets to which this network ACL is attached
vpc
object
The VPC this network ACL resides in
400 - An invalid network ACL patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A network ACL with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The network ACL patch conflicts with another network ACL in the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List rules for a network ACL
GET /network_acls/{network_acl_id}/rules
This request lists rules for a network ACL. These rules can allow or deny traffic between a source CIDR block and a destination CIDR block over a particular protocol and port range.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.network-acl.network-acl.read
Auditing
Calling this method generates the following auditing event.
is.network-acl.rule.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
direction
Filters the collection to rules with a `direction` property matching the specified value.
Response
200 - The network ACL rules were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
rules
array
A page of ordered rules (sorted based on the `before` property) for the network ACL.
total_count
integer
The total number of resources across all pages
404 - A network ACL with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a rule for a network ACL
POST /network_acls/{network_acl_id}/rules
This request creates a new rule from a network ACL rule prototype object. The prototype object is structured in the same way as a retrieved rule, and contains the information necessary to create the new rule.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.network-acl.network-acl.update
Auditing
Calling this method generates the following auditing event.
is.network-acl.rule.create
Request
Request Body
NetworkACLRulePrototype
The network ACL rule prototype object
action
Required *
string
The action to perform for a packet matching the rule.
Must not be `deny` if `protocol` is `icmp_tcp_udp`.
before
NetworkACLRuleBeforePrototype
The rule to insert this rule immediately before.
If unspecified, this rule will be inserted after all existing rules
destination
Required *
string
The destination IP address or CIDR block to match. The CIDR block `0.0.0.0/0` (or `::/0` if `ip_version` is `ipv6`) will match all destination addresses.
direction
Required *
string
The direction of traffic to match.
ip_version
string
The IP version to match. The format of `source` and `destination` must match this property.
name
string
The name for this network ACL rule. The name must not be used by another rule for the network ACL. If unspecified, the name will be a hyphenated list of randomly-selected words.
protocol
Required *
string
The network protocol
source
Required *
string
The source IP address or CIDR block to match. The CIDR block `0.0.0.0/0` (or `::/0` if `ip_version` is `ipv6`) will match all source addresses.
Response
201 - The network ACL rule was created successfully.
action
string
The action to perform for a packet matching the rule.
before
object
The rule that this rule is immediately before. If absent, this is the last rule.
created_at
string
The date and time that the rule was created.
destination
string
The destination IP address or CIDR block to match. The CIDR block `0.0.0.0/0` (or `::/0` if `ip_version` is `ipv6`) matches all destination addresses.
direction
string
The direction of traffic to match.
href
string
The URL for this network ACL rule
id
string
The unique identifier for this network ACL rule
ip_version
string
The IP version for this rule.
name
string
The name for this network ACL rule. The name is unique across all rules for the network ACL.
protocol
string
The network protocol.
The enumerated values for this property may expand in the future.
source
string
The source IP address or CIDR block to match. The CIDR block `0.0.0.0/0` (or `::/0` if `ip_version` is `ipv6`) matches all source addresses.
400 - An invalid network ACL rule prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A network ACL with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The network ACL rule prototype object conflicts with another network ACL rule
in the network ACL.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a network ACL rule
DELETE /network_acls/{network_acl_id}/rules/{id}
This request deletes a rule. This operation cannot be reversed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.network-acl.network-acl.update
Auditing
Calling this method generates the following auditing event.
is.network-acl.rule.delete
Request
Response
204 - The network ACL rule was deleted successfully.
404 - A network ACL rule with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a network ACL rule
GET /network_acls/{network_acl_id}/rules/{id}
This request retrieves a single rule specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.network-acl.network-acl.read
Auditing
Calling this method generates the following auditing event.
is.network-acl.rule.read
Request
Response
200 - The network ACL rule was retrieved successfully.
action
string
The action to perform for a packet matching the rule.
before
object
The rule that this rule is immediately before. If absent, this is the last rule.
created_at
string
The date and time that the rule was created.
destination
string
The destination IP address or CIDR block to match. The CIDR block `0.0.0.0/0` (or `::/0` if `ip_version` is `ipv6`) matches all destination addresses.
direction
string
The direction of traffic to match.
href
string
The URL for this network ACL rule
id
string
The unique identifier for this network ACL rule
ip_version
string
The IP version for this rule.
name
string
The name for this network ACL rule. The name is unique across all rules for the network ACL.
protocol
string
The network protocol.
The enumerated values for this property may expand in the future.
source
string
The source IP address or CIDR block to match. The CIDR block `0.0.0.0/0` (or `::/0` if `ip_version` is `ipv6`) matches all source addresses.
404 - A network ACL rule with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a network ACL rule
PATCH /network_acls/{network_acl_id}/rules/{id}
This request updates a rule with the information in a provided rule patch. The rule patch object contains only the information to be updated. The request will fail if the provided patch includes properties that are not used by the rule's protocol.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.network-acl.network-acl.update
Auditing
Calling this method generates the following auditing event.
is.network-acl.rule.update
Request
Request Body
The network ACL rule patch
Response
200 - The network ACL rule was updated successfully.
action
string
The action to perform for a packet matching the rule.
before
object
The rule that this rule is immediately before. If absent, this is the last rule.
created_at
string
The date and time that the rule was created.
destination
string
The destination IP address or CIDR block to match. The CIDR block `0.0.0.0/0` (or `::/0` if `ip_version` is `ipv6`) matches all destination addresses.
direction
string
The direction of traffic to match.
href
string
The URL for this network ACL rule
id
string
The unique identifier for this network ACL rule
ip_version
string
The IP version for this rule.
name
string
The name for this network ACL rule. The name is unique across all rules for the network ACL.
protocol
string
The network protocol.
The enumerated values for this property may expand in the future.
source
string
The source IP address or CIDR block to match. The CIDR block `0.0.0.0/0` (or `::/0` if `ip_version` is `ipv6`) matches all source addresses.
400 - An invalid network ACL rule patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A network ACL rule with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The network ACL rule patch conflicts with another rule for the network ACL.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List operating systems
GET /operating_systems
This request lists operating systems in the region.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
Request
Response
200 - The operating systems were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
operating_systems
array
A page of operating systems
total_count
integer
The total number of resources across all pages
Retrieve an operating system
GET /operating_systems/{name}
This request retrieves a single operating system specified by the name in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
Request
Path Parameters
name
Required *
string
The operating system name
Query Parameters
Response
200 - The operating system was retrieved successfully.
allow_user_image_creation
boolean
Indicates that users may create new images with this operating system
architecture
string
The operating system architecture
dedicated_host_only
boolean
Indicates that images with this operating system can only be used on dedicated hosts and dedicated host groups.
display_name
string
A unique, display-friendly name for the operating system
family
string
The software family for this operating system
href
string
The URL for this operating system
name
string
The globally unique name for this operating system
user_data_format
object
The user data format for this operating system:
- `cloud_init`: `user_data` will be interpreted according to the cloud-init standard
- `esxi_kickstart`: `user_data` will be interpreted as a VMware ESXi installation script
- `ipxe`: `user_data` will be interpreted as a single URL to an iPXE script or as the text of an iPXE script
vendor
string
The vendor of the operating system
version
string
The major release version of this operating system
404 - An operating system with the specified name could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List placement groups
GET /placement_groups
This request lists placement groups in the region.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.placement-group.placement-group.listis.placement-group.placement-group.read
Auditing
Calling this method generates the following auditing event.
is.placement-group.placement-group.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The placement groups were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
placement_groups
array
A page of placement groups
total_count
integer
The total number of resources across all pages
Create a placement group
POST /placement_groups
This request creates a new placement group
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.placement-group.placement-group.create
Auditing
Calling this method generates the following auditing event.
is.placement-group.placement-group.create
Request
Request Body
PlacementGroupPrototype
The placement group prototype object
name
string
The name for this placement group. The name must not be used by another placement group in the region. If unspecified, the name will be a hyphenated list of randomly-selected words.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
strategy
Required *
string
The strategy for this placement group:
- `host_spread`: place on different compute hosts
- `power_spread`: place on compute hosts that use different power sources
Response
201 - The placement group was created successfully.
created_at
string
The date and time that the placement group was created
crn
string
The CRN for this placement group
href
string
The URL for this placement group
id
string
The unique identifier for this placement group
lifecycle_state
object
The lifecycle state of the placement group
name
string
The name for this placement group. The name is unique across all placement groups in the region.
resource_group
object
The resource group for this placement group
resource_type
string
The resource type
strategy
string
The strategy for this placement group:
- `host_spread`: place on different compute hosts
- `power_spread`: place on compute hosts that use different power sources
The enumerated values for this property may expand in the future.
400 - An invalid placement group prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The placement group prototype object conflicts with another placement group in the
region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a placement group
DELETE /placement_groups/{id}
This request deletes a placement group. This operation cannot be reversed. For this request to succeed, the placement group must not be associated with an instance.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.placement-group.placement-group.delete
Auditing
Calling this method generates the following auditing event.
is.placement-group.placement-group.delete
Request
Response
202 - The placement group deletion request was accepted.
404 - A placement group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The placement group is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a placement group
GET /placement_groups/{id}
This request retrieves a single placement group specified by identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.placement-group.placement-group.read
Auditing
Calling this method generates the following auditing event.
is.placement-group.placement-group.read
Request
Response
200 - The placement group was retrieved successfully.
created_at
string
The date and time that the placement group was created
crn
string
The CRN for this placement group
href
string
The URL for this placement group
id
string
The unique identifier for this placement group
lifecycle_state
object
The lifecycle state of the placement group
name
string
The name for this placement group. The name is unique across all placement groups in the region.
resource_group
object
The resource group for this placement group
resource_type
string
The resource type
strategy
string
The strategy for this placement group:
- `host_spread`: place on different compute hosts
- `power_spread`: place on compute hosts that use different power sources
The enumerated values for this property may expand in the future.
404 - A placement group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a placement group
PATCH /placement_groups/{id}
This request updates a placement group with the information provided placement group patch. The placement group patch object is structured in the same way as a retrieved placement group and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.placement-group.placement-group.update
Auditing
Calling this method generates the following auditing event.
is.placement-group.placement-group.update
Request
Request Body
The placement group patch
Response
200 - The placement group was updated successfully.
created_at
string
The date and time that the placement group was created
crn
string
The CRN for this placement group
href
string
The URL for this placement group
id
string
The unique identifier for this placement group
lifecycle_state
object
The lifecycle state of the placement group
name
string
The name for this placement group. The name is unique across all placement groups in the region.
resource_group
object
The resource group for this placement group
resource_type
string
The resource type
strategy
string
The strategy for this placement group:
- `host_spread`: place on different compute hosts
- `power_spread`: place on compute hosts that use different power sources
The enumerated values for this property may expand in the future.
400 - An invalid placement group patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A placement group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The placement group patch conflicts with another placement group in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List private path service gateways
GET /private_path_service_gateways
This request lists private path service gateways in the region. Private path service gateways allow service providers to make their services available using private path connectivity. Private path service gateways are used to facilitate and manage the private path connectivity between private path network load balancers and their associated endpoint gateways.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.private-path-service-gateway.private-path-service-gateway.readis.private-path-service-gateway.private-path-service-gateway.list
Auditing
Calling this method generates the following auditing event.
is.private-path-service-gateway.private-path-service-gateway.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
Response
200 - The private path service gateways were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
private_path_service_gateways
array
A page of private path service gateways
total_count
integer
The total number of resources across all pages
Create a private path service gateway
POST /private_path_service_gateways
This request creates a private path service gateway from a private path service gateway prototype object. The prototype object is structured in the same way as a retrieved private path service gateway, and contains the information necessary to create the new private path service gateway.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.private-path-service-gateway.private-path-service-gateway.createis.vpc.vpc.operateis.load-balancer.load-balancer.manage
Auditing
Calling this method generates the following auditing event.
is.private-path-service-gateway.private-path-service-gateway.createis.private-path-service-gateway.load-balancer.attachis.load-balancer.private-path-service-gateway.attach
Request
Request Body
PrivatePathServiceGatewayPrototype
The private path service gateway prototype
default_access_policy
object
The access policy for the account:
- permit: access will be permitted
- deny: access will be denied
- review: access will be manually reviewed
The enumerated values for this property may expand in the future.
load_balancer
Required *
object
Identifies a load balancer by a unique property.
name
string
The name for this private path service gateway. The name must not be used by another private path service gateway in the VPC. If unspecified, the name will be a hyphenated list of randomly-selected words.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
service_endpoints
Required *
array
The fully qualified domain names for this private path service gateway. Any uppercase letters will be converted to lowercase.
zonal_affinity
boolean
Indicates whether this private path service gateway has zonal affinity.
- `true`: Traffic to the service from a zone the service resides in will remain in that zone.
- `false`: Traffic to the service from a zone will be load balanced across all zones in the region the service resides in.
Response
201 - The private path service gateway was created successfully.
created_at
string
The date and time that the private path service gateway was created
crn
string
The CRN for this private path service gateway
default_access_policy
object
The policy to use for new bindings from accounts without an explicit account policy:
- `permit`: access will be permitted
- `deny`: access will be denied
- `review`: access will be manually reviewed
endpoint_gateway_binding_auto_delete
boolean
Indicates whether endpoint gateway bindings will be automatically deleted after `endpoint_gateway_binding_auto_delete_timeout` hours have passed. At present, this is always `true`, but may be modifiable in the future.
endpoint_gateway_binding_auto_delete_timeout
integer
If `endpoint_gateway_binding_auto_delete` is `true`, the hours after which endpoint gateway bindings will be automatically deleted. If the value is `0`, `abandoned` endpoint gateway bindings will be deleted immediately. At present, this is always set to `0`. This value may be modifiable in the future.
endpoint_gateway_count
integer
The number of active endpoint gateways using this private path service gateway.
href
string
The URL for this private path service gateway
id
string
The unique identifier for this private path service gateway
lifecycle_state
object
The lifecycle state of the private path service gateway
load_balancer
object
The load balancer for this private path service gateway.
name
string
The name for this private path service gateway. The name is unique across all private path service gateways in the VPC.
published
boolean
Indicates the availability of this private path service gateway
- `true`: Any account can request access to this private path service gateway.
- `false`: Access is restricted to the account that created this private path service gateway.
resource_group
object
The resource group for this private path service gateway
resource_type
string
The resource type
service_endpoints
array
The fully qualified domain names for this private path service gateway. The domains are used for endpoint gateways to connect to the service and are configured in the VPC for each endpoint gateway.
vpc
object
The VPC this private path service gateway resides in
zonal_affinity
boolean
Indicates whether this private path service gateway has zonal affinity.
- `true`: Traffic to the service from a zone the service resides in will remain in that zone.
- `false`: Traffic to the service from a zone will be load balanced across all zones in the region the service resides in.
400 - An invalid private path service gateway prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The private path service gateway prototype object conflicts with another private path
service gateway in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a private path service gateway
DELETE /private_path_service_gateways/{id}
This request deletes a private path service gateway. For this request to succeed, the value of `endpoint_gateway_count` must be `0`. This operation cannot be reversed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.private-path-service-gateway.private-path-service-gateway.delete
Auditing
Calling this method generates the following auditing event.
is.private-path-service-gateway.private-path-service-gateway.deleteis.load-balancer.load-balancer.manageis.private-path-service-gateway.load-balancer.detachis.load-balancer.private-path-service-gateway.detach
Request
Response
204 - The private path service gateway deletion request was deleted successfully.
404 - A private path service gateway with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The private path service gateway is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a private path service gateway
GET /private_path_service_gateways/{id}
This request retrieves the private path service gateway specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.private-path-service-gateway.private-path-service-gateway.read
Auditing
Calling this method generates the following auditing event.
is.private-path-service-gateway.private-path-service-gateway.read
Request
Response
200 - The private path service gateway was retrieved successfully.
created_at
string
The date and time that the private path service gateway was created
crn
string
The CRN for this private path service gateway
default_access_policy
object
The policy to use for new bindings from accounts without an explicit account policy:
- `permit`: access will be permitted
- `deny`: access will be denied
- `review`: access will be manually reviewed
endpoint_gateway_binding_auto_delete
boolean
Indicates whether endpoint gateway bindings will be automatically deleted after `endpoint_gateway_binding_auto_delete_timeout` hours have passed. At present, this is always `true`, but may be modifiable in the future.
endpoint_gateway_binding_auto_delete_timeout
integer
If `endpoint_gateway_binding_auto_delete` is `true`, the hours after which endpoint gateway bindings will be automatically deleted. If the value is `0`, `abandoned` endpoint gateway bindings will be deleted immediately. At present, this is always set to `0`. This value may be modifiable in the future.
endpoint_gateway_count
integer
The number of active endpoint gateways using this private path service gateway.
href
string
The URL for this private path service gateway
id
string
The unique identifier for this private path service gateway
lifecycle_state
object
The lifecycle state of the private path service gateway
load_balancer
object
The load balancer for this private path service gateway.
name
string
The name for this private path service gateway. The name is unique across all private path service gateways in the VPC.
published
boolean
Indicates the availability of this private path service gateway
- `true`: Any account can request access to this private path service gateway.
- `false`: Access is restricted to the account that created this private path service gateway.
resource_group
object
The resource group for this private path service gateway
resource_type
string
The resource type
service_endpoints
array
The fully qualified domain names for this private path service gateway. The domains are used for endpoint gateways to connect to the service and are configured in the VPC for each endpoint gateway.
vpc
object
The VPC this private path service gateway resides in
zonal_affinity
boolean
Indicates whether this private path service gateway has zonal affinity.
- `true`: Traffic to the service from a zone the service resides in will remain in that zone.
- `false`: Traffic to the service from a zone will be load balanced across all zones in the region the service resides in.
404 - A private path service gateway with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a private path service gateway
PATCH /private_path_service_gateways/{id}
This request updates a private path service gateway with the information provided in a private path service gateway patch object. The private path service gateway patch object is structured in the same way as a retrieved private path service gateway and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.private-path-service-gateway.private-path-service-gateway.updateis.load-balancer.load-balancer.operate
Auditing
Calling this method generates the following auditing event.
is.private-path-service-gateway.private-path-service-gateway.updateis.private-path-service-gateway.load-balancer.detachis.load-balancer.private-path-service-gateway.detachis.private-path-service-gateway.load-balancer.attachis.load-balancer.private-path-service-gateway.attach
Request
Request Body
The private path service gateway patch.
Response
200 - The private path service gateway was updated successfully.
created_at
string
The date and time that the private path service gateway was created
crn
string
The CRN for this private path service gateway
default_access_policy
object
The policy to use for new bindings from accounts without an explicit account policy:
- `permit`: access will be permitted
- `deny`: access will be denied
- `review`: access will be manually reviewed
endpoint_gateway_binding_auto_delete
boolean
Indicates whether endpoint gateway bindings will be automatically deleted after `endpoint_gateway_binding_auto_delete_timeout` hours have passed. At present, this is always `true`, but may be modifiable in the future.
endpoint_gateway_binding_auto_delete_timeout
integer
If `endpoint_gateway_binding_auto_delete` is `true`, the hours after which endpoint gateway bindings will be automatically deleted. If the value is `0`, `abandoned` endpoint gateway bindings will be deleted immediately. At present, this is always set to `0`. This value may be modifiable in the future.
endpoint_gateway_count
integer
The number of active endpoint gateways using this private path service gateway.
href
string
The URL for this private path service gateway
id
string
The unique identifier for this private path service gateway
lifecycle_state
object
The lifecycle state of the private path service gateway
load_balancer
object
The load balancer for this private path service gateway.
name
string
The name for this private path service gateway. The name is unique across all private path service gateways in the VPC.
published
boolean
Indicates the availability of this private path service gateway
- `true`: Any account can request access to this private path service gateway.
- `false`: Access is restricted to the account that created this private path service gateway.
resource_group
object
The resource group for this private path service gateway
resource_type
string
The resource type
service_endpoints
array
The fully qualified domain names for this private path service gateway. The domains are used for endpoint gateways to connect to the service and are configured in the VPC for each endpoint gateway.
vpc
object
The VPC this private path service gateway resides in
zonal_affinity
boolean
Indicates whether this private path service gateway has zonal affinity.
- `true`: Traffic to the service from a zone the service resides in will remain in that zone.
- `false`: Traffic to the service from a zone will be load balanced across all zones in the region the service resides in.
400 - An invalid private path service gateway patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A private path service gateway with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The private path service gateway patch conflicts with another private path service
gateway in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /private_path_service_gateways/{private_path_service_gateway_id}/account_policies
This request lists account policies for a private path service gateway. Each policy defines how requests to use the private path service gateway from that account will be handled.
The account policies will be sorted by their `created_at` property values, with newest account policies first. Account policies with identical `created_at` property values will in turn be sorted by ascending `id` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.private-path-service-gateway.account-policy.list
Auditing
Calling this method generates the following auditing event.
is.private-path-service-gateway.account-policy.list
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
account.id
Filters the collection to resources with an `account.id` property matching the specified identifier.
Response
200 - The account policies were retrieved successfully.
account_policies
array
A page of account policies for the private path service gateway
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - The specified private path service gateway could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create an account policy for a private path service gateway
POST /private_path_service_gateways/{private_path_service_gateway_id}/account_policies
This request creates an account policy from an account policy prototype object. The prototype object is structured in the same way as a retrieved account policy, and contains the information necessary to create the new account policy.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.private-path-service-gateway.account-policy.manage
Auditing
Calling this method generates the following auditing event.
is.private-path-service-gateway.account-policy.create
Request
Request Body
PrivatePathServiceGatewayAccountPolicyPrototype
The account policy prototype
access_policy
Required *
object
The access policy for the account:
-
`permit`: access will be permitted
-
`deny`: access will be denied
-
`review`: access will be manually reviewed
-
Specifying `review` sets the status of future endpoint gateway bindings from this account to `pending`.
-
Specifying `permit` updates both the status of `pending` and future endpoint gateway bindings from this account to `permitted`.
-
Specifying `deny` updates both the status of `pending` and future endpoint gateway bindings from this account to `denied`.
account
Required *
object
Identifies an account by a unique property.
Response
201 - The account policy for the private path service gateway was created successfully.
access_policy
string
The access policy for the account:
- permit: access will be permitted
- deny: access will be denied
- review: access will be manually reviewed
The enumerated values for this property may expand in the future.
account
object
The account for this access policy.
created_at
string
The date and time that the account policy was created
href
string
The URL for this account policy
id
string
The unique identifier for this account policy
resource_type
string
The resource type
400 - An invalid account policy prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified private path service gateway could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The account policy prototype object conflicts with another account policy
for the private path service gateway.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete an account policy for a private path service gateway
DELETE /private_path_service_gateways/{private_path_service_gateway_id}/account_policies/{id}
This request deletes an account policy. This operation cannot be reversed and it does not affect the `status` of any existing endpoint gateway bindings.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.private-path-service-gateway.account-policy.manage
Auditing
Calling this method generates the following auditing event.
is.private-path-service-gateway.account-policy.delete
Request
Response
204 - The account policy was deleted successfully.
404 - An account policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve an account policy for a private path service gateway
GET /private_path_service_gateways/{private_path_service_gateway_id}/account_policies/{id}
This request retrieves a single account policy specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.private-path-service-gateway.account-policy.read
Auditing
Calling this method generates the following auditing event.
is.private-path-service-gateway.account-policy.read
Request
Response
200 - The account policy was retrieved successfully.
access_policy
string
The access policy for the account:
- permit: access will be permitted
- deny: access will be denied
- review: access will be manually reviewed
The enumerated values for this property may expand in the future.
account
object
The account for this access policy.
created_at
string
The date and time that the account policy was created
href
string
The URL for this account policy
id
string
The unique identifier for this account policy
resource_type
string
The resource type
404 - An account policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update an account policy for a private path service gateway
PATCH /private_path_service_gateways/{private_path_service_gateway_id}/account_policies/{id}
This request updates an account policy with the information in a provided account policy patch. The account policy patch object is structured in the same way as a retrieved account policy and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.private-path-service-gateway.account-policy.manage
Auditing
Calling this method generates the following auditing event.
is.private-path-service-gateway.account-policy.update
Request
Request Body
The account policy patch
Response
200 - The account policy was updated successfully.
access_policy
string
The access policy for the account:
- permit: access will be permitted
- deny: access will be denied
- review: access will be manually reviewed
The enumerated values for this property may expand in the future.
account
object
The account for this access policy.
created_at
string
The date and time that the account policy was created
href
string
The URL for this account policy
id
string
The unique identifier for this account policy
resource_type
string
The resource type
400 - An invalid account policy patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An account policy with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The account policy patch conflicts with another account policy for the private
path service gateway.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /private_path_service_gateways/{private_path_service_gateway_id}/endpoint_gateway_bindings
This request lists endpoint gateway bindings for a private path service gateway. Each endpoint gateway binding is implicitly created when an endpoint gateway is created targeting the private path service gateway. The associated account policy is applied to all new endpoint gateway bindings. If an associated account policy doesn't exist, the private path service gateway's `default_access_policy` is used.
The endpoint gateway bindings will be sorted by their `created_at` property values, with newest endpoint gateway bindings first. Endpoint gateway bindings with identical `created_at` property values will in turn be sorted by ascending `name` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.private-path-service-gateway.endpoint-gateway-binding.list
Auditing
Calling this method generates the following auditing event.
is.private-path-service-gateway.endpoint-gateway-binding.list
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
status
Filters the collection to endpoint gateway bindings with a `status` property matching the specified value.
account.id
Filters the collection to resources with an `account.id` property matching the specified identifier.
Response
200 - The endpoint gateway bindings were retrieved successfully.
endpoint_gateway_bindings
array
A page of endpoint gateway bindings for the private path service gateway
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - The specified private path service gateway could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve an endpoint gateway binding for a private path service gateway
GET /private_path_service_gateways/{private_path_service_gateway_id}/endpoint_gateway_bindings/{id}
This request retrieves a single endpoint gateway binding specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.private-path-service-gateway.endpoint-gateway-binding.read
Auditing
Calling this method generates the following auditing event.
is.private-path-service-gateway.endpoint-gateway-binding.read
Request
Response
200 - The endpoint gateway binding was retrieved successfully.
account
object
The account that created the endpoint gateway.
created_at
string
The date and time that the endpoint gateway binding was created
expiration_at
string
The expiration date and time for the endpoint gateway binding. At binding creation, this property will be set to 14 days after the creation time, and will remain while the `status` of the binding is `pending`. If the date and time are reached while the binding is still `pending`, the binding will transition to `expired`.
This property will be present if the `status` is `pending` or `expired`.
href
string
The URL for this endpoint gateway binding
id
string
The unique identifier for this endpoint gateway binding
lifecycle_state
object
The lifecycle state of the endpoint gateway binding
resource_type
string
The resource type
status
string
The status of the endpoint gateway binding:
- `abandoned`: endpoint gateway binding is inactive, awaiting deletion.
- `denied`: endpoint gateway binding was denied
- `expired`: endpoint gateway binding has expired
- `pending`: endpoint gateway binding is awaiting review
- `permitted`: endpoint gateway binding was permitted
An endpoint gateway binding will be automatically deleted when its associated endpoint gateway is deleted.
The enumerated values for this property may expand in the future.
404 - An endpoint gateway binding with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Deny an endpoint gateway binding for a private path service gateway
POST /private_path_service_gateways/{private_path_service_gateway_id}/endpoint_gateway_bindings/{id}/deny
This request denies a `pending` endpoint gateway request, and optionally sets the policy to deny future requests from the same account.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.private-path-service-gateway.endpoint-gateway-binding.manage
Auditing
Calling this method generates the following auditing event.
is.private-path-service-gateway.endpoint-gateway-binding.deny
Request
Request Body
PrivatePathServiceGatewayEndpointGatewayBindingDenyOptions
Options to control the deny operation.
set_account_policy
boolean
Indicates whether this will become the access policy for any `pending` and future endpoint gateway bindings from the same account.
If set to `true`:
- If the account has an existing access policy, that policy will be updated to `deny`. Otherwise, a new `deny` access policy will be created for the account.
- All `pending` endpoint gateway bindings for the account will be denied.
If set to `false`:
- No access policies will be created or updated
- All `pending` endpoint gateway bindings for the account will remain `pending`
Response
204 - The private path service gateway endpoint gateway binding was denied
400 - An invalid options object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An endpoint gateway binding with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Permit an endpoint gateway binding for a private path service gateway
POST /private_path_service_gateways/{private_path_service_gateway_id}/endpoint_gateway_bindings/{id}/permit
This request permits a `pending` endpoint gateway request, and optionally sets the policy to permit future requests from the same account.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.private-path-service-gateway.endpoint-gateway-binding.manage
Auditing
Calling this method generates the following auditing event.
is.private-path-service-gateway.endpoint-gateway-binding.permit
Request
Request Body
PrivatePathServiceGatewayEndpointGatewayBindingPermitOptions
Options to control the permit operation.
set_account_policy
boolean
Indicates whether this will become the access policy for any `pending` and future endpoint gateway bindings from the same account.
If set to `true`:
- If the account has an existing access policy, that policy will be updated to `permit`. Otherwise, a new `permit` access policy will be created for the account.
- All `pending` endpoint gateway bindings for the account will be permitted.
If set to `false`:
- No access policies will be created or updated
- All `pending` endpoint gateway bindings for the account will remain `pending`
Response
204 - The endpoint gateway binding for the private path service gateway was permitted
400 - An invalid options object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An endpoint gateway binding with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Publish a private path service gateway
POST /private_path_service_gateways/{private_path_service_gateway_id}/publish
This request publishes a private path service gateway, allowing any account to request access to it.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.private-path-service-gateway.private-path-service-gateway.updateis.private-path-service-gateway.private-path-service-gateway.publish
Auditing
Calling this method generates the following auditing event.
is.private-path-service-gateway.private-path-service-gateway.updateis.private-path-service-gateway.private-path-service-gateway.publish
Request
Response
204 - The private path service gateway was published successfully.
404 - A private path service gateway with the specified identifier could not be found
errors
array
The errors that occurred.
trace
string
The unique error identifier
Revoke access to a private path service gateway for an account
POST /private_path_service_gateways/{private_path_service_gateway_id}/revoke_account
This request revokes a consumer account. This operation cannot be reversed. The `status` of all endpoint gateway bindings associated with the specified private path service gateway become `denied`. If the specified account has an existing access policy, that policy will be updated to `denied`. Otherwise, a new `deny` access policy will be created for the account.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.private-path-service-gateway.account-policy.manage
Auditing
Calling this method generates the following auditing event.
is.private-path-service-gateway.private-path-service-gateway.revoke-accountis.private-path-service-gateway.endpoint-gateway-binding.denyis.private-path-service-gateway.account-policy.updateis.private-path-service-gateway.account-policy.create
Request
Request Body
PrivatePathServiceGatewayRevokeAccountOptions
Options to control the revoke operation.
account
Required *
object
Identifies an account by a unique property.
Response
204 - The account's access to the private path service gateway was revoked successfully.
400 - An invalid options object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A private path service gateway with the specified identifier could not be found
errors
array
The errors that occurred.
trace
string
The unique error identifier
Unpublish a private path service gateway
POST /private_path_service_gateways/{private_path_service_gateway_id}/unpublish
This request unpublishes a private path service gateway. For this request to succeed, any existing access from other accounts must first be revoked. Once unpublished, access will again be restricted to the account that created this private path service gateway.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.private-path-service-gateway.private-path-service-gateway.updateis.private-path-service-gateway.private-path-service-gateway.unpublish
Auditing
Calling this method generates the following auditing event.
is.private-path-service-gateway.private-path-service-gateway.updateis.private-path-service-gateway.private-path-service-gateway.unpublishis.private-path-service-gateway.endpoint-gateway-binding.deny
Request
Response
204 - The private path service gateway was unpublished successfully.
404 - A private path service gateway with the specified identifier could not be found
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The private path service gateway allows access from other accounts.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List public address range profiles
GET /public_address_range/profiles
This request lists public address range profiles available in the region. A public address range profile specifies the characteristics and capabilities for a public address range.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The public address range profiles were retrieved successfully
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
profiles
array
A page of public address range profiles
total_count
integer
The total number of resources across all pages
Retrieve a public address range profile
GET /public_address_range/profiles/{name}
This request retrieves a single public address range profile specified by the name in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
Request
Path Parameters
name
Required *
string
The public address range profile name
Query Parameters
Response
200 - The public address range profile was retrieved successfully
family
string
The product family this public address range profile belongs to.
- `provider`: The public IP addresses in the public address range with this profile are owned by the provider.
- `user`: The public IP addresses in the public address range with this profile are owned by the user.
The enumerated values for this property may expand in the future.
href
string
The URL for this public address range profile
ip_version
string
The IP version for public address ranges with this profile:
- `ipv4`: An IPv4 public address range.
- `ipv6`: An IPv6 public address range.
name
string
The globally unique name for this public address range profile
resource_type
string
The resource type
targetable_resource_types
PublicAddressRangeProfileTargetableResourceTypes
404 - A public address range profile with the specified name could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /public_address_ranges
This request lists public address ranges in the region. A public address range is a contiguous block of public IP addresses that can be bound to a `target` that specifies a `vpc` and a `zone`. Incoming traffic for these IP addresses will be routed according to the VPC's ingress routing table.
The public address ranges will be sorted by their `created_at` property values, with newest public address ranges first. Public address ranges with identical `created_at` property values will in turn be sorted by ascending `id` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.public-address-range.public-address-range.listis.public-address-range.public-address-range.read
Auditing
Calling this method generates the following auditing event.
is.public-address-range.public-address-range.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
profile.name
string
Filters the collection to resources with a `profile.name` property matching the specified value.
Response
200 - The public address ranges were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
public_address_ranges
array
A page of public address ranges
total_count
integer
The total number of resources across all pages
Create a public address range
POST /public_address_ranges
This request creates a new public address range from a public address range prototype object. The prototype object is structured in the same way as a retrieved public address range, and contains the information necessary to create the new public address range.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.public-address-range.public-address-range.createis.vpc.vpc.operateis.virtual-network-interface.virtual-network-interface.operateis.public-address-range-authorized-cidr.authorized-cidr.operate
Auditing
Calling this method generates the following auditing event.
is.public-address-range.public-address-range.createis.public-address-range.public-address-range.attachis.vpc.vpc.attachis.virtual-network-interface.virtual-network-interface.attachis.public-address-range-authorized-cidr.authorized-cidr.update
Request
Request Body
PublicAddressRangePrototype
The public address range prototype
name
string
The name for this public address range. The name must not be used by another public address range in the region. Names starting with `ibm-` are reserved for provider-managed resources, and are not allowed. If unspecified, the name will be a hyphenated list of randomly-selected words.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
target
PublicAddressRangeTargetPrototype
The target to bind this public address range to. If unspecified, the public address range will not be bound to a target at creation.
Response
201 - The public address range was created successfully.
authorized_cidr
object
The public address range authorized CIDR this public address range is allocated from.
cidr
string
The public IP address block for this public address range, expressed in CIDR format.
created_at
string
The date and time that the public address range was created.
crn
string
The CRN for this public address range
href
string
The URL for this public address range
id
object
The unique identifier for this public address range
ip_version
string
The IP version for this public address range.
ipv4_address_count
integer
The number of IPv4 addresses in this public address range.
lifecycle_state
object
The lifecycle state of the public address range.
name
string
The name for this public address range. The name is unique across all public address ranges in the region.
network_prefix_length
integer
The network prefix length for this public address range.
profile
object
The profile for this public address range.
resource_group
object
The resource group for this public address range
resource_type
string
The resource type
target
PublicAddressRangeTarget
The target this public address range is bound to.
If absent, this pubic address range is not bound to a target.
The target resources supported by this property is expected to expand in the future. Future targets may omit the `vpc` property.
400 - An invalid public address range prototype object was provided or the specified `target`
could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The public address range prototype object conflicts with another public address range
in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a public address range
DELETE /public_address_ranges/{id}
This request deletes a public address range. If the public address range is bound to a `target`, it will be unbound. This operation cannot be reversed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.public-address-range.public-address-range.deleteis.vpc.vpc.operateis.virtual-network-interface.virtual-network-interface.operateis.public-address-range-authorized-cidr.authorized-cidr.operate
Auditing
Calling this method generates the following auditing event.
is.public-address-range.public-address-range.deleteis.public-address-range.public-address-range.detachis.vpc.vpc.detachis.virtual-network-interface.virtual-network-interface.detachis.public-address-range-authorized-cidr.authorized-cidr.update
Request
Response
202 - The public address range deletion request was accepted.
authorized_cidr
object
The public address range authorized CIDR this public address range is allocated from.
cidr
string
The public IP address block for this public address range, expressed in CIDR format.
created_at
string
The date and time that the public address range was created.
crn
string
The CRN for this public address range
href
string
The URL for this public address range
id
object
The unique identifier for this public address range
ip_version
string
The IP version for this public address range.
ipv4_address_count
integer
The number of IPv4 addresses in this public address range.
lifecycle_state
object
The lifecycle state of the public address range.
name
string
The name for this public address range. The name is unique across all public address ranges in the region.
network_prefix_length
integer
The network prefix length for this public address range.
profile
object
The profile for this public address range.
resource_group
object
The resource group for this public address range
resource_type
string
The resource type
target
PublicAddressRangeTarget
The target this public address range is bound to.
If absent, this pubic address range is not bound to a target.
The target resources supported by this property is expected to expand in the future. Future targets may omit the `vpc` property.
404 - A public address range with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a public address range
GET /public_address_ranges/{id}
This request retrieves a single public address range specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.public-address-range.public-address-range.read
Auditing
Calling this method generates the following auditing event.
is.public-address-range.public-address-range.read
Request
Response
200 - The public address range was retrieved successfully.
authorized_cidr
object
The public address range authorized CIDR this public address range is allocated from.
cidr
string
The public IP address block for this public address range, expressed in CIDR format.
created_at
string
The date and time that the public address range was created.
crn
string
The CRN for this public address range
href
string
The URL for this public address range
id
object
The unique identifier for this public address range
ip_version
string
The IP version for this public address range.
ipv4_address_count
integer
The number of IPv4 addresses in this public address range.
lifecycle_state
object
The lifecycle state of the public address range.
name
string
The name for this public address range. The name is unique across all public address ranges in the region.
network_prefix_length
integer
The network prefix length for this public address range.
profile
object
The profile for this public address range.
resource_group
object
The resource group for this public address range
resource_type
string
The resource type
target
PublicAddressRangeTarget
The target this public address range is bound to.
If absent, this pubic address range is not bound to a target.
The target resources supported by this property is expected to expand in the future. Future targets may omit the `vpc` property.
404 - A public address range with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a public address range
PATCH /public_address_ranges/{id}
This request updates a public address range with the information in a provided public address range patch. The public address range patch object is structured in the same way as a retrieved public address range and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.public-address-range.public-address-range.updateis.vpc.vpc.operateis.virtual-network-interface.virtual-network-interface.operate
Auditing
Calling this method generates the following auditing event.
is.public-address-range.public-address-range.updateis.public-address-range.public-address-range.attachis.public-address-range.public-address-range.detachis.vpc.vpc.attachis.vpc.vpc.detachis.virtual-network-interface.virtual-network-interface.attachis.virtual-network-interface.virtual-network-interface.detach
Request
Request Body
The public address range patch
Response
200 - The public address range was updated successfully.
authorized_cidr
object
The public address range authorized CIDR this public address range is allocated from.
cidr
string
The public IP address block for this public address range, expressed in CIDR format.
created_at
string
The date and time that the public address range was created.
crn
string
The CRN for this public address range
href
string
The URL for this public address range
id
object
The unique identifier for this public address range
ip_version
string
The IP version for this public address range.
ipv4_address_count
integer
The number of IPv4 addresses in this public address range.
lifecycle_state
object
The lifecycle state of the public address range.
name
string
The name for this public address range. The name is unique across all public address ranges in the region.
network_prefix_length
integer
The network prefix length for this public address range.
profile
object
The profile for this public address range.
resource_group
object
The resource group for this public address range
resource_type
string
The resource type
target
PublicAddressRangeTarget
The target this public address range is bound to.
If absent, this pubic address range is not bound to a target.
The target resources supported by this property is expected to expand in the future. Future targets may omit the `vpc` property.
400 - An invalid public address range patch was provided, or the public address range
is being deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A public address range with the specified identifier could not be found
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The public address range patch either:
- conflicts with another public address range in the region, or
- specifies a virtual network interface that cannot be targeted in its current state.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List public gateways
GET /public_gateways
This request lists public gateways in the region. A public gateway is a virtual network device associated with a VPC, which allows access to the Internet. A public gateway resides in a zone and can be connected to subnets in the same zone only.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.public-gateway.public-gateway.listis.public-gateway.public-gateway.read
Auditing
Calling this method generates the following auditing event.
is.public-gateway.public-gateway.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
Response
200 - The public gateways were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
public_gateways
array
A page of public gateways
total_count
integer
The total number of resources across all pages
POST /public_gateways
This request creates a new public gateway from a public gateway prototype object. For this to succeed, the VPC must not already have a public gateway in the specified zone.
If a floating IP is provided, it must be unbound. If a floating IP is not provided, one will be created and bound to the public gateway. Once a public gateway has been created, its floating IP cannot be unbound. A public gateway must be explicitly attached to each subnet it will provide connectivity for.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.public-gateway.public-gateway.createis.vpc.vpc.operateis.floating-ip.floating-ip.createis.floating-ip.floating-ip.operate
Auditing
Calling this method generates the following auditing event.
is.public-gateway.public-gateway.create
Request
Request Body
PublicGatewayPrototype
The public gateway prototype object
floating_ip
PublicGatewayFloatingIPPrototype
name
string
The name for this public gateway. The name must not be used by another public gateway in the VPC. If unspecified, the name will be a hyphenated list of randomly-selected words.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
vpc
Required *
object
Identifies a VPC by a unique property.
zone
Required *
object
Identifies a zone by a unique property.
Response
201 - The public gateway was created successfully.
created_at
string
The date and time that the public gateway was created
crn
string
The CRN for this public gateway
floating_ip
object
The floating IP bound to this public gateway.
href
string
The URL for this public gateway
id
string
The unique identifier for this public gateway
name
string
The name for this public gateway. The name is unique across all public gateways in the VPC.
resource_group
object
The resource group for this public gateway
resource_type
string
The resource type
status
string
The status of this public gateway
vpc
object
The VPC this public gateway resides in
zone
object
The zone this public gateway resides in
400 - An invalid public gateway prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The public gateway prototype object conflicts with another public gateway in the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a public gateway
DELETE /public_gateways/{id}
This request deletes a public gateway. This operation cannot be reversed. For this request to succeed, the public gateway must not be attached to any subnets. The public gateway's floating IP will be automatically unbound. If the floating IP was created when the public gateway was created, it will be deleted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.public-gateway.public-gateway.delete
Auditing
Calling this method generates the following auditing event.
is.public-gateway.public-gateway.delete
Request
Response
204 - The public gateway was deleted successfully.
404 - A public gateway with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The public gateway is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a public gateway
GET /public_gateways/{id}
This request retrieves a single public gateway specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.public-gateway.public-gateway.read
Auditing
Calling this method generates the following auditing event.
is.public-gateway.public-gateway.read
Request
Response
200 - The public gateway was retrieved successfully.
created_at
string
The date and time that the public gateway was created
crn
string
The CRN for this public gateway
floating_ip
object
The floating IP bound to this public gateway.
href
string
The URL for this public gateway
id
string
The unique identifier for this public gateway
name
string
The name for this public gateway. The name is unique across all public gateways in the VPC.
resource_group
object
The resource group for this public gateway
resource_type
string
The resource type
status
string
The status of this public gateway
vpc
object
The VPC this public gateway resides in
zone
object
The zone this public gateway resides in
404 - A public gateway with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a public gateway
PATCH /public_gateways/{id}
This request updates a public gateway's name.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.public-gateway.public-gateway.update
Auditing
Calling this method generates the following auditing event.
is.public-gateway.public-gateway.update
Request
Request Body
The public gateway patch
Response
200 - The public gateway was updated successfully.
created_at
string
The date and time that the public gateway was created
crn
string
The CRN for this public gateway
floating_ip
object
The floating IP bound to this public gateway.
href
string
The URL for this public gateway
id
string
The unique identifier for this public gateway
name
string
The name for this public gateway. The name is unique across all public gateways in the VPC.
resource_group
object
The resource group for this public gateway
resource_type
string
The resource type
status
string
The status of this public gateway
vpc
object
The VPC this public gateway resides in
zone
object
The zone this public gateway resides in
400 - An invalid public gateway patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A public gateway with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The public gateway patch conflicts with another public gateway in the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List regions
GET /regions
This request lists regions. Each region is a separate geographic area that contains multiple isolated zones. Resources can be provisioned into one or more zones in a region. Each zone is isolated, but connected to other zones in the same region with low-latency and high-bandwidth links. Regions represent the top-level of fault isolation available. Resources deployed within a single region also benefit from the low latency afforded by geographic proximity.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
Request
Response
200 - The regions were retrieved successfully.
regions
array
The regions for the account
Retrieve a region
GET /regions/{name}
This request retrieves a single region specified by the name in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
Request
Response
200 - The region was retrieved successfully.
endpoint
string
The API endpoint for this region.
href
string
The URL for this region
name
string
The globally unique name for this region
status
string
The availability status of this region.
The enumerated values for this property may expand in the future.
404 - A region with the specified name could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List zones in a region
GET /regions/{region_name}/zones
This request lists zones in a region. Zones represent logically-isolated data centers with high-bandwidth and low-latency interconnects to other zones in the same region. Faults in a zone do not affect other zones.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
Request
Response
200 - The zones were retrieved successfully.
zones
array
The zones for the region
404 - A region with the specified name could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a zone
GET /regions/{region_name}/zones/{name}
This request retrieves a single zone specified by the region and zone names in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
Request
Response
200 - The zone was retrieved successfully.
data_center
string
The physical data center assigned to this logical zone.
If absent, no physical data center has been assigned.
href
string
The URL for this zone
name
string
The globally unique name for this zone
region
ZoneRegion
The region this zone resides in
status
string
The status of the zone.
- `available`: The zone is available to create and manage resources.
- `impaired`: The zone's availability and performance to create and manage resources may be impaired.
- `unavailable`: The zone is unavailable to create and manage resources.
- `unassigned`: The zone has not been assigned to a physical zone.
The enumerated values for this property may expand in the future.
universal_name
string
The universal name for this zone. Will be absent if this zone has a `status` of `unassigned`.
404 - A zone with the specified name could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /reservations
This request lists reservations in the region. A reservation provides reserved capacity for a specified profile in a specified zone. A reservation can also include a long-term committed use discount.
The reservations will be sorted by their `created_at` property values, with newest reservations first. Reservations with identical `created_at` property values will in turn be sorted by ascending `name` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.reservation.reservation.listis.reservation.reservation.read
Auditing
Calling this method generates the following auditing event.
is.reservation.reservation.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
name
string
Filters the collection to resources with a `name` property matching the exact specified name.
profile.resource_type
Filters the collection of resources with a `profile.resource_type` property matching the specified value.
affinity_policy
string
Filters the collection to reservations with an `affinity_policy` property matching the specified value.
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
zone.name
string
Filters the collection to resources with a `zone.name` property matching the exact specified name.
Response
200 - The reservations were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
reservations
array
A page of reservations
total_count
integer
The total number of resources across all pages
Create a reservation
POST /reservations
This request creates a new reservation from a reservation prototype object. The prototype object is structured in the same way as a retrieved reservation, and contains the information necessary to create the new reservation.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.reservation.reservation.create
Auditing
Calling this method generates the following auditing event.
is.reservation.reservation.create
Request
Request Body
ReservationPrototype
The reservation prototype object
affinity_policy
string
The affinity policy to use for this reservation:
- `automatic`: The reservation will be automatically selected
- `restricted`: The reservation must be manually requested
capacity
Required *
ReservationCapacityPrototype
The capacity reservation configuration to use.
total
Required *
integer
The total amount to use for this capacity reservation.
committed_use
Required *
object
The committed use configuration to use for this reservation.
expiration_policy
string
The policy to apply when the committed use term expires:
- `release`: Release any available capacity and let the reservation expire.
- `renew`: Renew for another term, provided the term remains listed in the `reservation_terms` for the profile. Otherwise, let the reservation expire.
term
Required *
string
The term for this committed use reservation:
- `one_year`: 1 year
- `three_year`: 3 years
The specified value must be listed in the `reservation_terms` in the profile for this reservation.
name
string
The name for this reservation. The name must not be used by another reservation in the region. If unspecified, the name will be a hyphenated list of randomly-selected words.
profile
Required *
ReservationProfilePrototype
The instance profile or bare metal server profile to use for this reservation.
name
Required *
string
The globally unique name of the profile
resource_type
Required *
string
The resource type of the profile.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
zone
Required *
object
Identifies a zone by a unique property.
Response
201 - The reservation was created successfully.
affinity_policy
string
The affinity policy to use for this reservation:
- `automatic`: The reservation will be automatically selected
- `restricted`: The reservation must be manually requested
The enumerated values for this property may expand in the future.
capacity
ReservationCapacity
The capacity configuration for this reservation
If absent, this reservation has no assigned capacity.
committed_use
object
The committed use reservation configuration.
created_at
string
The date and time that the reservation was created
crn
string
The CRN for this reservation
href
string
The URL for this reservation
id
string
The unique identifier for this reservation
lifecycle_state
object
The lifecycle state of this reservation
name
string
The name for this reservation. The name is unique across all reservations in the region.
profile
ReservationProfile
The instance profile or bare metal server profile for this reservation.
resource_group
object
The resource group for this reservation
resource_type
string
The resource type
status
string
The status of the reservation.
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
zone
object
The zone for this reservation.
400 - An invalid reservation prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The reservation prototype object conflicts with another reservation in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a reservation
DELETE /reservations/{id}
This request deletes a reservation. This operation cannot be reversed. Reservations with a `status` of `active` are not allowed to be deleted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.reservation.reservation.delete
Auditing
Calling this method generates the following auditing event.
is.reservation.reservation.delete
Request
Response
202 - The reservation deletion request was accepted.
affinity_policy
string
The affinity policy to use for this reservation:
- `automatic`: The reservation will be automatically selected
- `restricted`: The reservation must be manually requested
The enumerated values for this property may expand in the future.
capacity
ReservationCapacity
The capacity configuration for this reservation
If absent, this reservation has no assigned capacity.
committed_use
object
The committed use reservation configuration.
created_at
string
The date and time that the reservation was created
crn
string
The CRN for this reservation
href
string
The URL for this reservation
id
string
The unique identifier for this reservation
lifecycle_state
object
The lifecycle state of this reservation
name
string
The name for this reservation. The name is unique across all reservations in the region.
profile
ReservationProfile
The instance profile or bare metal server profile for this reservation.
resource_group
object
The resource group for this reservation
resource_type
string
The resource type
status
string
The status of the reservation.
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
zone
object
The zone for this reservation.
403 - The reservation is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A reservation with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a reservation
GET /reservations/{id}
This request retrieves a single reservation specified by identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.reservation.reservation.read
Auditing
Calling this method generates the following auditing event.
is.reservation.reservation.read
Request
Response
200 - The reservation was retrieved successfully.
affinity_policy
string
The affinity policy to use for this reservation:
- `automatic`: The reservation will be automatically selected
- `restricted`: The reservation must be manually requested
The enumerated values for this property may expand in the future.
capacity
ReservationCapacity
The capacity configuration for this reservation
If absent, this reservation has no assigned capacity.
committed_use
object
The committed use reservation configuration.
created_at
string
The date and time that the reservation was created
crn
string
The CRN for this reservation
href
string
The URL for this reservation
id
string
The unique identifier for this reservation
lifecycle_state
object
The lifecycle state of this reservation
name
string
The name for this reservation. The name is unique across all reservations in the region.
profile
ReservationProfile
The instance profile or bare metal server profile for this reservation.
resource_group
object
The resource group for this reservation
resource_type
string
The resource type
status
string
The status of the reservation.
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
zone
object
The zone for this reservation.
404 - A reservation with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a reservation
PATCH /reservations/{id}
This request updates a reservation with the information provided in a reservation patch object. The patch object is structured in the same way as a retrieved reservation and needs to contain only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.reservation.reservation.update
Auditing
Calling this method generates the following auditing event.
is.reservation.reservation.update
Request
Request Body
The reservation patch
Response
200 - The reservation was updated successfully.
affinity_policy
string
The affinity policy to use for this reservation:
- `automatic`: The reservation will be automatically selected
- `restricted`: The reservation must be manually requested
The enumerated values for this property may expand in the future.
capacity
ReservationCapacity
The capacity configuration for this reservation
If absent, this reservation has no assigned capacity.
committed_use
object
The committed use reservation configuration.
created_at
string
The date and time that the reservation was created
crn
string
The CRN for this reservation
href
string
The URL for this reservation
id
string
The unique identifier for this reservation
lifecycle_state
object
The lifecycle state of this reservation
name
string
The name for this reservation. The name is unique across all reservations in the region.
profile
ReservationProfile
The instance profile or bare metal server profile for this reservation.
resource_group
object
The resource group for this reservation
resource_type
string
The resource type
status
string
The status of the reservation.
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
zone
object
The zone for this reservation.
400 - An invalid reservation patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A reservation with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The reservation patch conflicts with another reservation in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Activate a reservation
POST /reservations/{id}/activate
This request activates a reservation. For this request to succeed, the reservation status must be `inactive`.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.reservation.reservation.activate
Auditing
Calling this method generates the following auditing event.
is.reservation.reservation.activate
Request
Response
202 - The reservation activation request was accepted.
404 - A reservation with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The reservation cannot be activated in its current state.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List security groups
GET /security_groups
This request lists security groups in the region. A security group defines a set of packet filtering rules to allow traffic in and out of the resources targeted by the security group. No traffic is allowed by default. Security group rules are stateful so that reverse traffic in response to allowed traffic is automatically allowed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.security-group.security-group.listis.security-group.security-group.read
Auditing
Calling this method generates the following auditing event.
is.security-group.security-group.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
vpc.id
Filters the collection to resources with a `vpc.id` property matching the specified identifier.
vpc.crn
string
Filters the collection to resources with a `vpc.crn` property matching the specified CRN.
vpc.name
string
Filters the collection to resources with a `vpc.name` property matching the exact specified name.
Response
200 - The security groups were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
security_groups
array
A page of security groups
total_count
integer
The total number of resources across all pages
Create a security group
POST /security_groups
This request creates a new security group from a security group prototype object. The prototype object is structured in the same way as a retrieved security group, and contains the information necessary to create the new security group. If security group rules are included in the prototype object, those rules will be added to the security group. Each security group is scoped to one VPC. Only resources in that VPC can be added to the security group.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.security-group.security-group.createis.vpc.vpc.operate
Auditing
Calling this method generates the following auditing event.
is.security-group.security-group.create
Request
Request Body
SecurityGroupPrototype
The security group prototype object
name
string
The name for this security group. The name must not be used by another security group for the VPC. If unspecified, the name will be a hyphenated list of randomly-selected words.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
rules
array
The prototype objects for rules to be created for this security group. If unspecified, no rules will be created, resulting in no traffic being allowed.
vpc
Required *
object
Identifies a VPC by a unique property.
Response
201 - The security group was created successfully.
created_at
string
The date and time that this security group was created
crn
string
The CRN for this security group
href
string
The URL for this security group
id
string
The unique identifier for this security group
name
string
The name for this security group. The name is unique across all security groups for the VPC.
resource_group
object
The resource group for this security group
rules
array
The rules for this security group. If no rules exist, no traffic will be allowed.
targets
array
The targets for this security group.
vpc
object
The VPC this security group resides in
400 - An invalid security group prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The security group prototype object conflicts with another security group in the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a security group
DELETE /security_groups/{id}
This request deletes a security group. A security group cannot be deleted if it is referenced by any security group targets or rules. Additionally, a VPC's default security group cannot be deleted. This operation cannot be reversed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.security-group.security-group.delete
Auditing
Calling this method generates the following auditing event.
is.security-group.security-group.delete
Request
Response
204 - The security group was deleted successfully.
403 - The VPC's default security group is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A security group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The security group is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a security group
GET /security_groups/{id}
This request retrieves a single security group specified by the identifier in the URL path.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.security-group.security-group.read
Auditing
Calling this method generates the following auditing event.
is.security-group.security-group.read
Request
Response
200 - The security group was retrieved successfully.
created_at
string
The date and time that this security group was created
crn
string
The CRN for this security group
href
string
The URL for this security group
id
string
The unique identifier for this security group
name
string
The name for this security group. The name is unique across all security groups for the VPC.
resource_group
object
The resource group for this security group
rules
array
The rules for this security group. If no rules exist, no traffic will be allowed.
targets
array
The targets for this security group.
vpc
object
The VPC this security group resides in
404 - A security group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a security group
PATCH /security_groups/{id}
This request updates a security group with the information provided in a security group patch object. The security group patch object is structured in the same way as a retrieved security group and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.security-group.security-group.update
Auditing
Calling this method generates the following auditing event.
is.security-group.security-group.update
Request
Request Body
The security group patch.
Response
200 - The security group was updated successfully.
created_at
string
The date and time that this security group was created
crn
string
The CRN for this security group
href
string
The URL for this security group
id
string
The unique identifier for this security group
name
string
The name for this security group. The name is unique across all security groups for the VPC.
resource_group
object
The resource group for this security group
rules
array
The rules for this security group. If no rules exist, no traffic will be allowed.
targets
array
The targets for this security group.
vpc
object
The VPC this security group resides in
400 - An invalid security group patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A security group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The security group patch conflicts with another security group in the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List rules in a security group
GET /security_groups/{security_group_id}/rules
This request lists rules in a security group. These rules define what traffic the security group permits. Security group rules are stateful, such that reverse traffic in response to allowed traffic is automatically permitted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.security-group.security-group.read
Auditing
Calling this method generates the following auditing event.
is.security-group.security-group-rule.read
Request
Response
200 - The security group rules were retrieved successfully.
rules
array
The rules for the security group
404 - A security group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a rule for a security group
POST /security_groups/{security_group_id}/rules
This request creates a new security group rule from a security group rule prototype object. The prototype object is structured in the same way as a retrieved security group rule and contains the information necessary to create the rule. As part of creating a new rule in a security group, the rule is applied to all the networking interfaces in the security group. Rules specify which IP traffic a security group will allow. Security group rules are stateful, such that reverse traffic in response to allowed traffic is automatically permitted. A rule allowing inbound TCP traffic on port 80 also allows outbound TCP traffic on port 80 without the need for an additional rule.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.security-group.security-group.update
Auditing
Calling this method generates the following auditing event.
is.security-group.security-group-rule.create
Request
Request Body
SecurityGroupRulePrototype
The properties of the security group rule to be created.
direction
Required *
string
The direction of traffic to allow.
ip_version
string
The IP version to allow. If specified, `ip_version` must match the current address version, and `ip_version` cannot change. The format of `local.address`, `remote.address`, `local.cidr_block` or `remote.cidr_block` must match this property, if they are used.
If `remote` references a security group, then this rule will only apply to IP addresses in that group matching this IP version.
local
SecurityGroupRuleLocalPrototype
The local IP address or range of local IP addresses to which this rule will allow inbound traffic (or from which, for outbound traffic).
If unspecified, a CIDR block of `0.0.0.0/0` (or `::/0`, if `ip_version` is `ipv6`) will be used to allow traffic to all local IP addresses (or from all local IP addresses, for outbound rules).
name
string
The name for this security group rule. The name must not be used by another rule in the security group. If unspecified, the name will be a hyphenated list of randomly-selected words.
protocol
Required *
string
The network protocol
remote
SecurityGroupRuleRemotePrototype
The remote IP addresses or security groups from which this rule will allow traffic (or to which, for outbound rules). Can be specified as an IP address, a CIDR block, or a security group within the VPC.
If unspecified, a CIDR block of `0.0.0.0/0` (or `::/0`, if `ip_version` is `ipv6`) will be used to allow traffic from any source (or to any destination, for outbound rules).
Response
201 - The security group rule was created successfully.
direction
string
The direction of traffic to allow.
href
string
The URL for this security group rule
id
string
The unique identifier for this security group rule
ip_version
string
The IP version to allow.
If `remote` references a security group, then this rule only applies to IP addresses in that group matching this IP version.
local
SecurityGroupRuleLocal
The local IP address or range of local IP addresses to which this rule will allow inbound traffic (or from which, for outbound traffic). A CIDR block of `0.0.0.0/0` (or `::/0`, if `ip_version` is `ipv6`) allows traffic to all local IP addresses (or from all local IP addresses, for outbound rules).
name
string
The name for this security group rule. The name is unique across all rules in the security group.
protocol
string
The network protocol.
The enumerated values for this property may expand in the future.
remote
SecurityGroupRuleRemote
The remote IP addresses or security groups from which this rule allows traffic (or to which, for outbound rules). A CIDR block of `0.0.0.0/0` (or `::/0`, if `ip_version` is `ipv6`) allows traffic from any source (or to any destination, for outbound rules).
resource_type
string
The resource type
400 - An invalid security group rule prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A security group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The security group rule prototype object conflicts with another security group rule
for the security group.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a security group rule
DELETE /security_groups/{security_group_id}/rules/{id}
This request deletes a security group rule. This operation cannot be reversed. Removing a security group rule will not end existing connections allowed by that rule.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.security-group.security-group.update
Auditing
Calling this method generates the following auditing event.
is.security-group.security-group-rule.delete
Request
Response
204 - The security group rule was deleted successfully.
404 - A rule with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a security group rule
GET /security_groups/{security_group_id}/rules/{id}
This request retrieves a single security group rule specified by the identifier in the URL path.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.security-group.security-group.read
Auditing
Calling this method generates the following auditing event.
is.security-group.security-group-rule.read
Request
Response
200 - The rule was retrieved successfully.
direction
string
The direction of traffic to allow.
href
string
The URL for this security group rule
id
string
The unique identifier for this security group rule
ip_version
string
The IP version to allow.
If `remote` references a security group, then this rule only applies to IP addresses in that group matching this IP version.
local
SecurityGroupRuleLocal
The local IP address or range of local IP addresses to which this rule will allow inbound traffic (or from which, for outbound traffic). A CIDR block of `0.0.0.0/0` (or `::/0`, if `ip_version` is `ipv6`) allows traffic to all local IP addresses (or from all local IP addresses, for outbound rules).
name
string
The name for this security group rule. The name is unique across all rules in the security group.
protocol
string
The network protocol.
The enumerated values for this property may expand in the future.
remote
SecurityGroupRuleRemote
The remote IP addresses or security groups from which this rule allows traffic (or to which, for outbound rules). A CIDR block of `0.0.0.0/0` (or `::/0`, if `ip_version` is `ipv6`) allows traffic from any source (or to any destination, for outbound rules).
resource_type
string
The resource type
404 - A rule with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a security group rule
PATCH /security_groups/{security_group_id}/rules/{id}
This request updates a security group rule with the information in a provided rule patch object. The rule patch object contains only the information to be updated. The request will fail if the provided patch includes properties that are not used by the rule's protocol.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.security-group.security-group.update
Auditing
Calling this method generates the following auditing event.
is.security-group.security-group-rule.update
Request
Request Body
The security group rule patch.
Response
200 - The security group rule was updated successfully.
direction
string
The direction of traffic to allow.
href
string
The URL for this security group rule
id
string
The unique identifier for this security group rule
ip_version
string
The IP version to allow.
If `remote` references a security group, then this rule only applies to IP addresses in that group matching this IP version.
local
SecurityGroupRuleLocal
The local IP address or range of local IP addresses to which this rule will allow inbound traffic (or from which, for outbound traffic). A CIDR block of `0.0.0.0/0` (or `::/0`, if `ip_version` is `ipv6`) allows traffic to all local IP addresses (or from all local IP addresses, for outbound rules).
name
string
The name for this security group rule. The name is unique across all rules in the security group.
protocol
string
The network protocol.
The enumerated values for this property may expand in the future.
remote
SecurityGroupRuleRemote
The remote IP addresses or security groups from which this rule allows traffic (or to which, for outbound rules). A CIDR block of `0.0.0.0/0` (or `::/0`, if `ip_version` is `ipv6`) allows traffic from any source (or to any destination, for outbound rules).
resource_type
string
The resource type
400 - An invalid security group rule patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A rule with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The security group rule patch conflicts with another security group rule
for the security group.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List targets associated with a security group
GET /security_groups/{security_group_id}/targets
This request lists targets associated with a security group, to which the rules in the security group are applied.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.security-group.security-group.read
Auditing
Calling this method generates the following auditing event.
is.security-group.security-group.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The targets were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
targets
array
A page of targets for the security group.
total_count
integer
The total number of resources across all pages
404 - A security group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
DELETE /security_groups/{security_group_id}/targets/{id}
This request removes a target from a security group. For this request to succeed, the target must be attached to at least one other security group. The specified target identifier can be:
- A bare metal server network interface identifier
- A dynamic route server identifier
- A virtual network interface identifier
- A VPN server identifier
- A load balancer identifier
- An endpoint gateway identifier
- An instance network interface identifier
Security groups are stateful, so any changes to a target's security groups are applied to new connections. Existing connections are not affected.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.security-group.security-group.operateis.instance.instance.operateis.bare-metal-server.bare-metal-server.operateis.virtual-network-interface.virtual-network-interface.operateis.load-balancer.load-balancer.manageis.endpoint-gateway.endpoint-gateway.operateis.vpn-server.vpn-server.operateis.dynamic-route-server.dynamic-route-server.operate
Auditing
Calling this method generates the following auditing event.
is.endpoint-gateway.endpoint-gateway.updateis.instance.network-interface.updateis.bare-metal-server.network-interface.updateis.load-balancer.load-balancer.updateis.vpn-server.vpn-server.updateis.security-group.security-group.detachis.virtual-network-interface.virtual-network-interface.detachis.dynamic-route-server.dynamic-route-server.detach
Request
Response
204 - The target was successfully removed from the security group.
404 - The specified target was not in the specified security group.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The specified target is not attached to any other security groups.
The specified target cannot be removed from the security group in its current state. (Applies to application load balancer targets that do not have an `active` provisioning status.)
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a security group target
GET /security_groups/{security_group_id}/targets/{id}
This request retrieves a single target specified by the identifier in the URL path. The target must be an existing target of the security group.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.security-group.security-group.read
Auditing
Calling this method generates the following auditing event.
is.security-group.security-group.read
Request
Response
200 - The target was retrieved successfully.
404 - The specified target or security group could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
PUT /security_groups/{security_group_id}/targets/{id}
This request adds a resource to an existing security group. The specified target identifier can be:
- A bare metal server network interface identifier
- A dynamic route server identifier
- A virtual network interface identifier
- A VPN server identifier
- A load balancer identifier
- An endpoint gateway identifier
- An instance network interface identifier
When a target is added to a security group, the security group rules are applied to the target. A request body is not required, and if provided, is ignored.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.security-group.security-group.operateis.instance.instance.operateis.bare-metal-server.bare-metal-server.operateis.virtual-network-interface.virtual-network-interface.operateis.load-balancer.load-balancer.manageis.endpoint-gateway.endpoint-gateway.operateis.vpn-server.vpn-server.operateis.dynamic-route-server.dynamic-route-server.operate
Auditing
Calling this method generates the following auditing event.
is.endpoint-gateway.endpoint-gateway.updateis.instance.network-interface.updateis.bare-metal-server.network-interface.updateis.load-balancer.load-balancer.updateis.vpn-server.vpn-server.updateis.security-group.security-group.attachis.virtual-network-interface.virtual-network-interface.attachis.dynamic-route-server.dynamic-route-server.attach
Request
Response
200 - The specified target is already in the security group.
201 - The target was successfully added to the security group
400 - The specified target is not in the same VPC, or has reached its security group limit.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified target or security group could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The specified target cannot be updated in its current state.
Applies to application load balancer targets that do not have an `active` provisioning status.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List snapshot consistency groups
GET /snapshot_consistency_groups
This request lists snapshot consistency groups in the region. A snapshot consistency group is a collection of individual snapshots taken at the same time.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.snapshot-consistency-group.snapshot-consistency-group.listis.snapshot-consistency-group.snapshot-consistency-group.read
Auditing
Calling this method generates the following auditing event.
is.snapshot-consistency-group.snapshot-consistency-group.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
name
string
Filters the collection to resources with a `name` property matching the exact specified name.
sort
string
Sorts the returned collection by the specified property name in ascending order. A `-` may be prepended to the name to sort in descending order. For example, the value `-created_at` sorts the collection by the `created_at` property in descending order, and the value `name` sorts it by the `name` property in ascending order.
backup_policy_plan.id
Filters the collection to backup policy jobs with a `backup_policy_plan.id` property matching the specified identifier.
backup_policy_job.id
Filters the collection to snapshot consistency groups with a `backup_policy_job.id` property matching the specified identifier.
Response
200 - The snapshot consistency groups were retrieved successfully
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
snapshot_consistency_groups
array
A page of snapshot consistency groups
total_count
integer
The total number of resources across all pages
Create a snapshot consistency group
POST /snapshot_consistency_groups
This request creates a new snapshot consistency group from a snapshot consistency group object. The prototype object is structured in the same way as a retrieved consistency group, and contains the information necessary to provision the new snapshot consistency group.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.snapshot-consistency-group.snapshot-consistency-group.createis.volume.volume.operateis.instance.instance.operateis.bare-metal-server.bare-metal-server.operateis.snapshot.snapshot.create
Auditing
Calling this method generates the following auditing event.
is.snapshot-consistency-group.snapshot-consistency-group.createis.snapshot.snapshot.create
Request
Request Body
SnapshotConsistencyGroupPrototype
The snapshot consistency group prototype object
delete_snapshots_on_delete
boolean
Indicates whether deleting the snapshot consistency group will also delete the snapshots in the group.
name
string
The name for this snapshot consistency group. The name must be unique across all snapshot consistency groups in the region.
If unspecified, the name will be a hyphenated list of randomly-selected words.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
Response
201 - The snapshot consistency group was created successfully.
backup_policy_job
object
If present, the backup policy job that created this snapshot consistency group. Snapshot consistency groups with the same backup policy job identifier represent snapshots of the same instance across different storage generations.
backup_policy_plan
object
If present, the backup policy plan which created this snapshot consistency group.
created_at
string
The date and time that this snapshot consistency group was created
crn
string
The CRN of this snapshot consistency group
delete_snapshots_on_delete
boolean
Indicates whether deleting the snapshot consistency group will also delete the snapshots in the group.
href
string
The URL for this snapshot consistency group
id
string
The unique identifier for this snapshot consistency group
lifecycle_state
object
The lifecycle state of this snapshot consistency group
name
string
The name for this snapshot consistency group. The name is unique across all snapshot consistency groups in the region.
resource_group
object
The resource group for this snapshot consistency group.
resource_type
string
The resource type
service_tags
array
The service tags associated with this snapshot consistency group. Each tag is prefixed with `is.instance:` or `is.bare-metal-server:`. For more information, see the service tag prefixes.
snapshots
array
The member snapshots that are data-consistent with respect to captured time. (may be deleted).
400 - An invalid snapshot consistency group prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The snapshot consistency group prototype object conflicts with another snapshot
consistency group in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a snapshot consistency group
DELETE /snapshot_consistency_groups/{id}
This request deletes snapshot consistency group. This operation cannot be reversed. If the `delete_snapshots_on_delete` property is `true`, all snapshots in the consistency group will also be deleted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.snapshot-consistency-group.snapshot-consistency-group.deleteis.snapshot.snapshot.delete
Auditing
Calling this method generates the following auditing event.
is.snapshot-consistency-group.snapshot-consistency-group.deleteis.snapshot.snapshot.delete
Request
Response
202 - The snapshot consistency group deletion request was accepted.
backup_policy_job
object
If present, the backup policy job that created this snapshot consistency group. Snapshot consistency groups with the same backup policy job identifier represent snapshots of the same instance across different storage generations.
backup_policy_plan
object
If present, the backup policy plan which created this snapshot consistency group.
created_at
string
The date and time that this snapshot consistency group was created
crn
string
The CRN of this snapshot consistency group
delete_snapshots_on_delete
boolean
Indicates whether deleting the snapshot consistency group will also delete the snapshots in the group.
href
string
The URL for this snapshot consistency group
id
string
The unique identifier for this snapshot consistency group
lifecycle_state
object
The lifecycle state of this snapshot consistency group
name
string
The name for this snapshot consistency group. The name is unique across all snapshot consistency groups in the region.
resource_group
object
The resource group for this snapshot consistency group.
resource_type
string
The resource type
service_tags
array
The service tags associated with this snapshot consistency group. Each tag is prefixed with `is.instance:` or `is.bare-metal-server:`. For more information, see the service tag prefixes.
snapshots
array
The member snapshots that are data-consistent with respect to captured time. (may be deleted).
400 - A snapshot consistency group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a snapshot consistency group
GET /snapshot_consistency_groups/{id}
This request retrieves a single snapshot consistency group specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.snapshot-consistency-group.snapshot-consistency-group.read
Auditing
Calling this method generates the following auditing event.
is.snapshot-consistency-group.snapshot-consistency-group.read
Request
Response
200 - The snapshot consistency group was retrieved successfully
backup_policy_job
object
If present, the backup policy job that created this snapshot consistency group. Snapshot consistency groups with the same backup policy job identifier represent snapshots of the same instance across different storage generations.
backup_policy_plan
object
If present, the backup policy plan which created this snapshot consistency group.
created_at
string
The date and time that this snapshot consistency group was created
crn
string
The CRN of this snapshot consistency group
delete_snapshots_on_delete
boolean
Indicates whether deleting the snapshot consistency group will also delete the snapshots in the group.
href
string
The URL for this snapshot consistency group
id
string
The unique identifier for this snapshot consistency group
lifecycle_state
object
The lifecycle state of this snapshot consistency group
name
string
The name for this snapshot consistency group. The name is unique across all snapshot consistency groups in the region.
resource_group
object
The resource group for this snapshot consistency group.
resource_type
string
The resource type
service_tags
array
The service tags associated with this snapshot consistency group. Each tag is prefixed with `is.instance:` or `is.bare-metal-server:`. For more information, see the service tag prefixes.
snapshots
array
The member snapshots that are data-consistent with respect to captured time. (may be deleted).
404 - A snapshot consistency group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a snapshot consistency group
PATCH /snapshot_consistency_groups/{id}
This request updates a snapshot consistency group with the information in a provided snapshot consistency group patch. The snapshot consistency group patch object is structured in the same way as a retrieved snapshot consistency group and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.snapshot-consistency-group.snapshot-consistency-group.update
Auditing
Calling this method generates the following auditing event.
is.snapshot-consistency-group.snapshot-consistency-group.update
Request
Request Body
The snapshot consistency group patch
Path Parameters
Query Parameters
Response
200 - The snapshot consistency group was updated successfully.
backup_policy_job
object
If present, the backup policy job that created this snapshot consistency group. Snapshot consistency groups with the same backup policy job identifier represent snapshots of the same instance across different storage generations.
backup_policy_plan
object
If present, the backup policy plan which created this snapshot consistency group.
created_at
string
The date and time that this snapshot consistency group was created
crn
string
The CRN of this snapshot consistency group
delete_snapshots_on_delete
boolean
Indicates whether deleting the snapshot consistency group will also delete the snapshots in the group.
href
string
The URL for this snapshot consistency group
id
string
The unique identifier for this snapshot consistency group
lifecycle_state
object
The lifecycle state of this snapshot consistency group
name
string
The name for this snapshot consistency group. The name is unique across all snapshot consistency groups in the region.
resource_group
object
The resource group for this snapshot consistency group.
resource_type
string
The resource type
service_tags
array
The service tags associated with this snapshot consistency group. Each tag is prefixed with `is.instance:` or `is.bare-metal-server:`. For more information, see the service tag prefixes.
snapshots
array
The member snapshots that are data-consistent with respect to captured time. (may be deleted).
400 - An invalid snapshot consistency group patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A snapshot consistency group with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The snapshot consistency group patch conflicts with another snapshot consistency group
in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the snapshot
consistency group
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a filtered collection of snapshots
DELETE /snapshots
This request deletes snapshots that match the specified filter. This operation cannot be reversed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.snapshot.snapshot.delete
Auditing
Calling this method generates the following auditing event.
is.snapshot.snapshot.deleteis.snapshot.snapshot-clone.delete
Request
Path Parameters
Query Parameters
source_volume.id
Required *
Filters the collection to resources with a `source_volume.id` property matching the specified identifier.
Response
202 - The snapshots deletion request was accepted.
400 - An invalid query parameter or header was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List snapshots
GET /snapshots
This request lists snapshots in the region. A snapshot preserves the data of a volume at the time the snapshot is created.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.snapshot.snapshot.listis.snapshot.snapshot.read
Auditing
Calling this method generates the following auditing event.
is.snapshot.snapshot.readis.snapshot.snapshot-clone.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
tag
Filters the collection to resources with an item in the `tags` property matching the exact specified tag.
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
name
string
Filters the collection to resources with a `name` property matching the exact specified name.
source_volume.id
Filters the collection to resources with a `source_volume.id` property matching the specified identifier.
source_volume.crn
string
Filters the collection to resources with a `source_volume.crn` property matching the specified CRN.
source_image.id
Filters the collection to resources with a `source_image.id` property matching the specified identifier.
This parameter also supports the values `null` and `not:null` which filter the collection to resources which have no source image or any existent source image, respectively.
source_image.crn
string
Filters the collection to resources with a `source_image.crn` property matching the specified CRN.
This parameter also supports the values `null` and `not:null` which filter the collection to resources which have no source image or any existent source image, respectively.
sort
string
Sorts the returned collection by the specified property name in ascending order. A `-` may be prepended to the name to sort in descending order. For example, the value `-created_at` sorts the collection by the `created_at` property in descending order, and the value `name` sorts it by the `name` property in ascending order.
backup_policy_plan.id
Filters the collection to backup policy jobs with a `backup_policy_plan.id` property matching the specified identifier.
copies[].id
Filters the collection to snapshots with an item in the `copies` property with an `id` property matching the specified identifier.
copies[].name
string
Filters the collection to snapshots with an item in the `copies` property with a `name` property matching the exact specified name.
copies[].crn
string
Filters the collection to snapshots with an item in the `copies` property with a `crn` property matching the specified CRN.
copies[].remote.region.name
string
Filters the collection to snapshots with an item in the `copies` property with a `remote.region.name` property matching the exact specified name.
source_snapshot.id
Filters the collection to resources with a `source_snapshot.id` property matching the specified identifier.
source_snapshot.remote.region.name
string
Filters the collection to resources with a `source_snapshot.remote.region.name` property matching the exact specified name.
source_volume.remote.region.name
string
Filters the collection to resources with a `source_volume.remote.region.name` property matching the exact specified name.
source_image.remote.region.name
string
Filters the collection to resources with a `source_image.remote.region.name` property matching the exact specified name.
clones[].zone.name
string
Filters the collection to snapshots with an item in the `clones` property with a `zone.name` property matching the exact specified name.
snapshot_consistency_group.id
Filters the collection to resources with a `snapshot_consistency_group.id` property matching the specified identifier.
snapshot_consistency_group.crn
string
Filters the collection to resources with a `snapshot_consistency_group.crn` property matching the specified identifier.
Response
200 - The snapshots were retrieved successfully
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
snapshots
array
A page of snapshots
total_count
integer
The total number of resources across all pages
Create a snapshot
POST /snapshots
This request creates a new snapshot from a snapshot prototype object. The prototype object is structured in the same way as a retrieved snapshot, and contains the information necessary to provision the new snapshot.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.snapshot.snapshot.createis.snapshot.snapshot-clone.createis.volume.volume.operateis.instance.instance.operateis.snapshot.snapshot.manage-allowed-use
Auditing
Calling this method generates the following auditing event.
is.snapshot.snapshot.createis.snapshot.snapshot.captureis.snapshot.snapshot-clone.create
Request
Request Body
SnapshotPrototype
The snapshot prototype object
allowed_use
object
The usage constraints to match against the requested instance or bare metal server properties to determine compatibility.
Can only be specified for bootable snapshots.
api_version
string
The API version with which to evaluate the expressions.
If specified, the value must be between `2019-01-01` and today's date (in UTC). If unspecified, the `version` query parameter value will be used.
bare_metal_server
string
The expression that must be satisfied by the properties of a bare metal server provisioned using the image data in this snapshot.
If unspecified, the expression will be set to `true`.
The expression follows Common Expression Language, but does not support built-in functions and macros. In addition, the following variable is supported, corresponding to the `BareMetalServer` property:
- `enable_secure_boot` (boolean): Whether secure boot is enabled
instance
string
The expression that must be satisfied by the properties of a virtual server instance provisioned using this snapshot.
If unspecified, the expression will be set to `true`.
The expression follows Common Expression Language, but does not support built-in functions and macros. In addition, the following variables are supported, corresponding to `Instance` properties:
- `enable_secure_boot` (boolean): Whether secure boot is enabled
- `gpu.count` (integer): The number of GPUs
- `gpu.manufacturer` (string): The GPU manufacturer
- `gpu.memory` (integer): The overall amount of GPU memory in GiB (gibibytes)
- `gpu.model` (string): The GPU model
- `metadata_service.enabled` (boolean): Whether the metadata service is enabled
- `metadata_service.protocol` (string): The communication protocol used for the metadata service endpoint.
- `vcpu.count` (integer): The number of virtual CPUs
clones
array
The clones to create for this snapshot
name
string
The name for this snapshot. The name must not be used by another snapshot in the region. If unspecified, the name will be a hyphenated list of randomly-selected words.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
user_tags
array
The user tags associated with this snapshot.
Response
201 - The snapshot was created successfully.
allowed_use
object
The usage constraints to be matched against the requested instance properties to determine compatibility. While bare metal servers cannot be provisioned from snapshots, an image or volume created from this snapshot will inherit its `allowed_use` value.
Only present on bootable snapshots. The value of this property will be inherited from the source volume or source snapshot at snapshot creation, but can be changed.
backup_policy_plan
object
If present, the backup policy plan which created this snapshot.
bootable
boolean
Indicates if a boot volume attachment can be created with a volume created from this snapshot.
captured_at
string
The date and time the data capture for this snapshot was completed.
If absent, this snapshot's data has not yet been captured. Additionally, this property may be absent for snapshots created before 1 January 2022.
catalog_offering
object
The catalog offering inherited from the snapshot's source. If a virtual server instance is provisioned with a `source_snapshot` specifying this snapshot, the virtual server instance will use this snapshot's catalog offering, including its pricing plan.
If absent, this snapshot is not associated with a catalog offering.
clones
array
The clones for this snapshot
copies
array
The copies of this snapshot.
created_at
string
The date and time that this snapshot was created
crn
string
The CRN of this snapshot
deletable
boolean
Indicates whether this snapshot can be deleted. This value will always be `true`.
encryption
string
The type of encryption used on the source volume
encryption_key
object
The root key used to wrap the data encryption key for the source volume.
This property will be present for volumes with an `encryption` type of `user_managed`.
href
string
The URL for this snapshot
id
string
The unique identifier for this snapshot
lifecycle_state
object
The lifecycle state of this snapshot
minimum_capacity
integer
The minimum capacity of a volume created from this snapshot. When a snapshot is created, this will be set to the capacity of the `source_volume`.
name
string
The name for this snapshot. The name is unique across all snapshots in the region.
operating_system
object
The operating system included in this snapshot.
progress
integer
Indicates the progress (as a percentage) of storing this snapshot. Only stored snapshots can be used for restoration.
resource_group
object
The resource group for this snapshot
resource_type
string
The resource type
service_tags
array
The service tags prefixed with `is.snapshot:` associated with this snapshot.
size
integer
The size of this snapshot rounded up to the next gigabyte
snapshot_consistency_group
object
If present, the snapshot consistency group which created this snapshot.
software_attachments
SnapshotSoftwareAttachments
The software attachments for this snapshot.
source_image
object
If present, the image from which the data on this snapshot was most directly provisioned.
source_snapshot
object
If present, the source snapshot this snapshot was created from.
source_volume
object
The source volume this snapshot was created from (may be deleted).
storage_generation
integer
The storage generation:
- `1`: The first storage generation
- `2`: The second storage generation
The enumerated values for this property may expand in the future.
user_tags
array
The user tags associated with this snapshot.
400 - An invalid snapshot prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The snapshot prototype object conflicts with another snapshot patch in the region,
or the snapshot prototype object specified one or more of:
- An encryption key that cannot be used in its current state.
- A snapshot that is already the source of another snapshot in this region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a snapshot
DELETE /snapshots/{id}
This request deletes a snapshot. This operation cannot be reversed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.snapshot.snapshot.delete
Auditing
Calling this method generates the following auditing event.
is.snapshot.snapshot.deleteis.snapshot.snapshot-clone.delete
Request
Path Parameters
Query Parameters
Response
202 - The snapshot deletion request was accepted.
404 - A snapshot with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the snapshot
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a snapshot
GET /snapshots/{id}
This request retrieves a single snapshot specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.snapshot.snapshot.read
Auditing
Calling this method generates the following auditing event.
is.snapshot.snapshot.readis.snapshot.snapshot-clone.read
Request
Response
200 - The snapshot was retrieved successfully
allowed_use
object
The usage constraints to be matched against the requested instance properties to determine compatibility. While bare metal servers cannot be provisioned from snapshots, an image or volume created from this snapshot will inherit its `allowed_use` value.
Only present on bootable snapshots. The value of this property will be inherited from the source volume or source snapshot at snapshot creation, but can be changed.
backup_policy_plan
object
If present, the backup policy plan which created this snapshot.
bootable
boolean
Indicates if a boot volume attachment can be created with a volume created from this snapshot.
captured_at
string
The date and time the data capture for this snapshot was completed.
If absent, this snapshot's data has not yet been captured. Additionally, this property may be absent for snapshots created before 1 January 2022.
catalog_offering
object
The catalog offering inherited from the snapshot's source. If a virtual server instance is provisioned with a `source_snapshot` specifying this snapshot, the virtual server instance will use this snapshot's catalog offering, including its pricing plan.
If absent, this snapshot is not associated with a catalog offering.
clones
array
The clones for this snapshot
copies
array
The copies of this snapshot.
created_at
string
The date and time that this snapshot was created
crn
string
The CRN of this snapshot
deletable
boolean
Indicates whether this snapshot can be deleted. This value will always be `true`.
encryption
string
The type of encryption used on the source volume
encryption_key
object
The root key used to wrap the data encryption key for the source volume.
This property will be present for volumes with an `encryption` type of `user_managed`.
href
string
The URL for this snapshot
id
string
The unique identifier for this snapshot
lifecycle_state
object
The lifecycle state of this snapshot
minimum_capacity
integer
The minimum capacity of a volume created from this snapshot. When a snapshot is created, this will be set to the capacity of the `source_volume`.
name
string
The name for this snapshot. The name is unique across all snapshots in the region.
operating_system
object
The operating system included in this snapshot.
progress
integer
Indicates the progress (as a percentage) of storing this snapshot. Only stored snapshots can be used for restoration.
resource_group
object
The resource group for this snapshot
resource_type
string
The resource type
service_tags
array
The service tags prefixed with `is.snapshot:` associated with this snapshot.
size
integer
The size of this snapshot rounded up to the next gigabyte
snapshot_consistency_group
object
If present, the snapshot consistency group which created this snapshot.
software_attachments
SnapshotSoftwareAttachments
The software attachments for this snapshot.
source_image
object
If present, the image from which the data on this snapshot was most directly provisioned.
source_snapshot
object
If present, the source snapshot this snapshot was created from.
source_volume
object
The source volume this snapshot was created from (may be deleted).
storage_generation
integer
The storage generation:
- `1`: The first storage generation
- `2`: The second storage generation
The enumerated values for this property may expand in the future.
user_tags
array
The user tags associated with this snapshot.
404 - A snapshot with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a snapshot
PATCH /snapshots/{id}
This request updates a snapshot with the information in a provided snapshot patch. The snapshot consistency group patch object is structured in the same way as a retrieved snapshot and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.snapshot.snapshot.updateis.snapshot.snapshot.manage-allowed-use
Auditing
Calling this method generates the following auditing event.
is.snapshot.snapshot.update
Request
Request Body
The snapshot patch
Path Parameters
Query Parameters
Response
200 - The snapshot was updated successfully.
allowed_use
object
The usage constraints to be matched against the requested instance properties to determine compatibility. While bare metal servers cannot be provisioned from snapshots, an image or volume created from this snapshot will inherit its `allowed_use` value.
Only present on bootable snapshots. The value of this property will be inherited from the source volume or source snapshot at snapshot creation, but can be changed.
backup_policy_plan
object
If present, the backup policy plan which created this snapshot.
bootable
boolean
Indicates if a boot volume attachment can be created with a volume created from this snapshot.
captured_at
string
The date and time the data capture for this snapshot was completed.
If absent, this snapshot's data has not yet been captured. Additionally, this property may be absent for snapshots created before 1 January 2022.
catalog_offering
object
The catalog offering inherited from the snapshot's source. If a virtual server instance is provisioned with a `source_snapshot` specifying this snapshot, the virtual server instance will use this snapshot's catalog offering, including its pricing plan.
If absent, this snapshot is not associated with a catalog offering.
clones
array
The clones for this snapshot
copies
array
The copies of this snapshot.
created_at
string
The date and time that this snapshot was created
crn
string
The CRN of this snapshot
deletable
boolean
Indicates whether this snapshot can be deleted. This value will always be `true`.
encryption
string
The type of encryption used on the source volume
encryption_key
object
The root key used to wrap the data encryption key for the source volume.
This property will be present for volumes with an `encryption` type of `user_managed`.
href
string
The URL for this snapshot
id
string
The unique identifier for this snapshot
lifecycle_state
object
The lifecycle state of this snapshot
minimum_capacity
integer
The minimum capacity of a volume created from this snapshot. When a snapshot is created, this will be set to the capacity of the `source_volume`.
name
string
The name for this snapshot. The name is unique across all snapshots in the region.
operating_system
object
The operating system included in this snapshot.
progress
integer
Indicates the progress (as a percentage) of storing this snapshot. Only stored snapshots can be used for restoration.
resource_group
object
The resource group for this snapshot
resource_type
string
The resource type
service_tags
array
The service tags prefixed with `is.snapshot:` associated with this snapshot.
size
integer
The size of this snapshot rounded up to the next gigabyte
snapshot_consistency_group
object
If present, the snapshot consistency group which created this snapshot.
software_attachments
SnapshotSoftwareAttachments
The software attachments for this snapshot.
source_image
object
If present, the image from which the data on this snapshot was most directly provisioned.
source_snapshot
object
If present, the source snapshot this snapshot was created from.
source_volume
object
The source volume this snapshot was created from (may be deleted).
storage_generation
integer
The storage generation:
- `1`: The first storage generation
- `2`: The second storage generation
The enumerated values for this property may expand in the future.
user_tags
array
The user tags associated with this snapshot.
400 - An invalid snapshot patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A snapshot with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The snapshot patch conflicts with another snapshot patch in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the snapshot
errors
array
The errors that occurred.
trace
string
The unique error identifier
List clones for a snapshot
GET /snapshots/{id}/clones
This request lists clones for a snapshot. Use a clone to quickly restore a snapshot within the clone's zone.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.snapshot.snapshot.read
Auditing
Calling this method generates the following auditing event.
is.snapshot.snapshot-clone.read
Request
Response
200 - The snapshot clones were retrieved successfully.
clones
array
The clones for the snapshot
404 - A snapshot with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a snapshot clone
DELETE /snapshots/{id}/clones/{zone_name}
This request deletes a snapshot clone. This operation cannot be reversed, but an equivalent clone may be recreated from the snapshot.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.snapshot.snapshot-clone.deleteis.snapshot.snapshot.update
Auditing
Calling this method generates the following auditing event.
is.snapshot.snapshot-clone.deleteis.snapshot.snapshot.update
Request
Response
202 - The snapshot clone deletion request was accepted.
404 - A snapshot clone with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a snapshot clone
GET /snapshots/{id}/clones/{zone_name}
This request retrieves a single clone specified by the snapshot identifier and zone name in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.snapshot.snapshot.read
Auditing
Calling this method generates the following auditing event.
is.snapshot.snapshot-clone.read
Request
Response
200 - The snapshot clone was retrieved successfully.
available
boolean
Indicates whether this snapshot clone is available for use.
created_at
string
The date and time that this snapshot clone was created.
zone
object
The zone this snapshot clone resides in.
404 - A snapshot clone with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a clone for a snapshot
PUT /snapshots/{id}/clones/{zone_name}
This request creates a new clone for a snapshot in the specified zone. A request body is not required, and if provided, is ignored. If the snapshot already has a clone in the zone, it is returned.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.snapshot.snapshot-clone.createis.snapshot.snapshot.update
Auditing
Calling this method generates the following auditing event.
is.snapshot.snapshot-clone.createis.snapshot.snapshot.update
Request
Response
200 - The snapshot clone was retrieved successfully.
available
boolean
Indicates whether this snapshot clone is available for use.
created_at
string
The date and time that this snapshot clone was created.
zone
object
The zone this snapshot clone resides in.
201 - The snapshot clone was created successfully.
available
boolean
Indicates whether this snapshot clone is available for use.
created_at
string
The date and time that this snapshot clone was created.
zone
object
The zone this snapshot clone resides in.
404 - A snapshot or zone with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List instance profiles compatible with a snapshot
GET /snapshots/{id}/instance_profiles
This request lists instance profiles compatible with a snapshot's `allowed_use.instance`, `operating_system.architecture` and `operating_system.user_data_format` properties, sorted by ascending `name` property values. The specified snapshot must be bootable.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.snapshot.snapshot.read
Auditing
Calling this method generates the following auditing event.
is.snapshot.snapshot.read
Request
Response
200 - The instance profiles were retrieved successfully
first
object
A link to the first page of resources
instance_profiles
array
A page of instance profiles compatible with the snapshot
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
400 - The snapshot with the specified identifier is not bootable.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A snapshot with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /snapshots/{snapshot_id}/software_attachments
This request lists software attachments associated with a snapshot.
The snapshot software attachments will be sorted by their `created_at` property values, with newest snapshot software attachments first. Software attachments with identical `created_at` property values will in turn be sorted by ascending `name` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.snapshot.snapshot.readis.snapshot.snapshot.list
Auditing
Calling this method generates the following auditing event.
is.snapshot.software-attachment.read
Request
Response
200 - The snapshot software attachments were retrieved successfully.
software_attachments
array
The software attachments for the snapshot
404 - A snapshot with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a snapshot software attachment
GET /snapshots/{snapshot_id}/software_attachments/{id}
This request retrieves a single snapshot software attachment specified by identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.snapshot.snapshot.read
Auditing
Calling this method generates the following auditing event.
is.snapshot.software-attachment.read
Request
Response
200 - The snapshot software attachment was retrieved successfully.
catalog_offering
SnapshotSoftwareAttachmentCatalogOffering
The catalog offering for this snapshot software attachment. May be absent if `software_attachment.lifecycle_state` is not `stable`.
created_at
string
The date and time that the snapshot software attachment was created.
entitlement
SnapshotSoftwareAttachmentEntitlement
The entitlement for the snapshot software attachment's licensable software.
href
string
The URL for this snapshot software attachment.
id
string
The unique identifier for this snapshot software attachment.
name
string
The name for this snapshot software attachment. The name is unique across all software attachments for the snapshot.
resource_type
string
The resource type
404 - A snapshot software attachment with the specified identifier could not be found for
the specified snapshot.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a snapshot software attachment
PATCH /snapshots/{snapshot_id}/software_attachments/{id}
This request updates a snapshot software attachment with the information provided in a snapshot software attachment patch object. The snapshot software attachment patch object is structured in the same way as a retrieved snapshot software attachment and needs to contain only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.snapshot.snapshot.update
Auditing
Calling this method generates the following auditing event.
is.snapshot.software-attachment.update
Request
Request Body
The snapshot software attachment patch
Response
200 - The snapshot software attachment was updated successfully.
catalog_offering
SnapshotSoftwareAttachmentCatalogOffering
The catalog offering for this snapshot software attachment. May be absent if `software_attachment.lifecycle_state` is not `stable`.
created_at
string
The date and time that the snapshot software attachment was created.
entitlement
SnapshotSoftwareAttachmentEntitlement
The entitlement for the snapshot software attachment's licensable software.
href
string
The URL for this snapshot software attachment.
id
string
The unique identifier for this snapshot software attachment.
name
string
The name for this snapshot software attachment. The name is unique across all software attachments for the snapshot.
resource_type
string
The resource type
400 - An invalid snapshot software attachment patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The snapshot software attachment is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A snapshot software attachment with the specified identifier could not be found for
the specified snapshot.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The snapshot software attachment patch conflicts with another snapshot software
attachment on the snapshot.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List subnets
GET /subnets
This request lists subnets in the region. Subnets are contiguous ranges of IP addresses specified in CIDR block notation. Each subnet is within a particular zone and cannot span multiple zones or regions.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.subnet.subnet.listis.subnet.subnet.read
Auditing
Calling this method generates the following auditing event.
is.subnet.subnet.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
zone.name
string
Filters the collection to resources with a `zone.name` property matching the exact specified name.
vpc.id
Filters the collection to resources with a `vpc.id` property matching the specified identifier.
vpc.crn
string
Filters the collection to resources with a `vpc.crn` property matching the specified CRN.
vpc.name
string
Filters the collection to resources with a `vpc.name` property matching the exact specified name.
routing_table.id
Filters the collection to subnets with a `routing_table.id` property matching the specified identifier.
routing_table.name
string
Filters the collection to subnets with a `routing_table.name` property matching the exact specified name.
Response
200 - The subnets were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
subnets
array
A page of subnets
total_count
integer
The total number of resources across all pages
Create a subnet
POST /subnets
This request creates a new subnet from a subnet prototype object. The prototype object is structured in the same way as a retrieved subnet, and contains the information necessary to create the new subnet. For this request to succeed, the prototype's CIDR block must not overlap with an existing subnet in the VPC.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.subnet.subnet.createis.vpc.vpc.operateis.public-gateway.public-gateway.operateis.network-acl.network-acl.operateis.vpc.routing-table.operate
Auditing
Calling this method generates the following auditing event.
is.subnet.subnet.create
Request
Request Body
SubnetPrototype
The subnet prototype object
ip_version
string
The IP version(s) to support for this subnet.
name
string
The name for this subnet. The name must not be used by another subnet in the VPC. If unspecified, the name will be a hyphenated list of randomly-selected words.
network_acl
object
The network ACL to use for this subnet. If unspecified, the default network ACL for the VPC is used
public_gateway
object
Identifies a public gateway by a unique property.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
routing_table
object
The routing table to use for this subnet. If unspecified, the default routing table for the VPC is used. The routing table properties `route_direct_link_ingress`, `route_internet_ingress`, `route_transit_gateway_ingress`, and `route_vpc_zone_ingress` must be `false`.
vpc
Required *
object
Identifies a VPC by a unique property.
Response
201 - The subnet was created successfully.
available_ipv4_address_count
integer
The number of IPv4 addresses in this subnet that are not in-use, and have not been reserved by the user or the provider.
created_at
string
The date and time that the subnet was created
crn
string
The CRN for this subnet
href
string
The URL for this subnet
id
string
The unique identifier for this subnet
ip_version
string
The IP version(s) supported by this subnet
ipv4_cidr_block
string
The IPv4 range of the subnet, expressed in CIDR format
name
string
The name for this subnet. The name is unique across all subnets in the VPC.
network_acl
object
The network ACL for this subnet
public_gateway
object
The public gateway to use for internet-bound traffic for this subnet.
resource_group
object
The resource group for this subnet
resource_type
string
The resource type
routing_table
object
The routing table for this subnet
status
string
The status of the subnet.
The enumerated values for this property may expand in the future.
total_ipv4_address_count
integer
The total number of IPv4 addresses in this subnet.
Note: This is calculated as 2<sup>(32 - prefix length)</sup>. For example, the prefix length `/24` gives:<br> 2<sup>(32 - 24)</sup> = 2<sup>8</sup> = 256 addresses.
vpc
object
The VPC this subnet resides in
zone
object
The zone this subnet resides in
400 - An invalid subnet prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The subnet prototype object conflicts with another subnet in the VPC, or specifies
a CIDR block outside of the VPC's address prefixes.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a subnet
DELETE /subnets/{id}
This request deletes a subnet. This operation cannot be reversed. For this request to succeed, the subnet must not be referenced by any bare metal server network interfaces, instance network interfaces, virtual network interfaces, VPN gateways, or load balancers. A delete operation automatically detaches the subnet from any network ACLs, public gateways, or endpoint gateways. All flow log collectors with `auto_delete` set to `true` targeting the subnet or any resource in the subnet are automatically deleted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.subnet.subnet.delete
Auditing
Calling this method generates the following auditing event.
is.subnet.subnet.detachis.public-gateway.public-gateway.detachis.network-acl.network-acl.detachis.vpc.routing-table.detachis.flow-log-collector.flow-log-collector.deleteis.flow-log-collector.flow-log-collector.detachis.subnet.subnet.delete
Request
Response
204 - The subnet was deleted successfully.
404 - A subnet with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The subnet is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a subnet
GET /subnets/{id}
This request retrieves a single subnet specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.subnet.subnet.read
Auditing
Calling this method generates the following auditing event.
is.subnet.subnet.read
Request
Response
200 - The subnet was retrieved successfully.
available_ipv4_address_count
integer
The number of IPv4 addresses in this subnet that are not in-use, and have not been reserved by the user or the provider.
created_at
string
The date and time that the subnet was created
crn
string
The CRN for this subnet
href
string
The URL for this subnet
id
string
The unique identifier for this subnet
ip_version
string
The IP version(s) supported by this subnet
ipv4_cidr_block
string
The IPv4 range of the subnet, expressed in CIDR format
name
string
The name for this subnet. The name is unique across all subnets in the VPC.
network_acl
object
The network ACL for this subnet
public_gateway
object
The public gateway to use for internet-bound traffic for this subnet.
resource_group
object
The resource group for this subnet
resource_type
string
The resource type
routing_table
object
The routing table for this subnet
status
string
The status of the subnet.
The enumerated values for this property may expand in the future.
total_ipv4_address_count
integer
The total number of IPv4 addresses in this subnet.
Note: This is calculated as 2<sup>(32 - prefix length)</sup>. For example, the prefix length `/24` gives:<br> 2<sup>(32 - 24)</sup> = 2<sup>8</sup> = 256 addresses.
vpc
object
The VPC this subnet resides in
zone
object
The zone this subnet resides in
404 - A subnet with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a subnet
PATCH /subnets/{id}
This request updates a subnet with the information in a provided subnet patch. The subnet patch object is structured in the same way as a retrieved subnet and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.subnet.subnet.updateis.public-gateway.public-gateway.operateis.network-acl.network-acl.operateis.vpc.routing-table.operate
Auditing
Calling this method generates the following auditing event.
is.subnet.subnet.update
Request
Request Body
The subnet patch
Response
200 - The subnet was updated successfully.
available_ipv4_address_count
integer
The number of IPv4 addresses in this subnet that are not in-use, and have not been reserved by the user or the provider.
created_at
string
The date and time that the subnet was created
crn
string
The CRN for this subnet
href
string
The URL for this subnet
id
string
The unique identifier for this subnet
ip_version
string
The IP version(s) supported by this subnet
ipv4_cidr_block
string
The IPv4 range of the subnet, expressed in CIDR format
name
string
The name for this subnet. The name is unique across all subnets in the VPC.
network_acl
object
The network ACL for this subnet
public_gateway
object
The public gateway to use for internet-bound traffic for this subnet.
resource_group
object
The resource group for this subnet
resource_type
string
The resource type
routing_table
object
The routing table for this subnet
status
string
The status of the subnet.
The enumerated values for this property may expand in the future.
total_ipv4_address_count
integer
The total number of IPv4 addresses in this subnet.
Note: This is calculated as 2<sup>(32 - prefix length)</sup>. For example, the prefix length `/24` gives:<br> 2<sup>(32 - 24)</sup> = 2<sup>8</sup> = 256 addresses.
vpc
object
The VPC this subnet resides in
zone
object
The zone this subnet resides in
400 - An invalid subnet patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A subnet with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The subnet patch conflicts with another subnet in the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a subnet's attached network ACL
GET /subnets/{id}/network_acl
This request retrieves the network ACL attached to the subnet specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.subnet.subnet.readis.network-acl.network-acl.read
Auditing
Calling this method generates the following auditing event.
is.subnet.subnet.read
Request
Response
200 - The attached network ACL was retrieved successfully.
created_at
string
The date and time that the network ACL was created
crn
string
The CRN for this network ACL
href
string
The URL for this network ACL
id
string
The unique identifier for this network ACL
name
string
The name for this network ACL. The name is unique across all network ACLs for the VPC.
resource_group
object
The resource group for this network ACL
rules
array
The ordered rules for this network ACL. If no rules exist, no traffic will be allowed.
subnets
array
The subnets to which this network ACL is attached
vpc
object
The VPC this network ACL resides in
404 - The specified subnet could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Replace the network ACL for a subnet
PUT /subnets/{id}/network_acl
This request replaces the existing network ACL for a subnet with the network ACL specified in the request body.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.subnet.subnet.operateis.network-acl.network-acl.operate
Auditing
Calling this method generates the following auditing event.
is.subnet.network-acl.update
Request
Request Body
NetworkACLIdentity
The network ACL identity
Response
201 - The network ACL was attached successfully.
created_at
string
The date and time that the network ACL was created
crn
string
The CRN for this network ACL
href
string
The URL for this network ACL
id
string
The unique identifier for this network ACL
name
string
The name for this network ACL. The name is unique across all network ACLs for the VPC.
resource_group
object
The resource group for this network ACL
rules
array
The ordered rules for this network ACL. If no rules exist, no traffic will be allowed.
subnets
array
The subnets to which this network ACL is attached
vpc
object
The VPC this network ACL resides in
400 - An invalid request body was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A subnet with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Detach a public gateway from a subnet
DELETE /subnets/{id}/public_gateway
This request detaches the public gateway from the subnet specified by the subnet identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.subnet.subnet.operateis.public-gateway.public-gateway.operate
Auditing
Calling this method generates the following auditing event.
is.subnet.subnet.detachis.public-gateway.public-gateway.detach
Request
Response
204 - The public gateway was detached successfully.
404 - The specified subnet could not be found or has no public gateway.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a subnet's attached public gateway
GET /subnets/{id}/public_gateway
This request retrieves the public gateway attached to the subnet specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.subnet.subnet.readis.public-gateway.public-gateway.read
Auditing
Calling this method generates the following auditing event.
is.subnet.public-gateway.read
Request
Response
200 - The attached public gateway was retrieved successfully.
created_at
string
The date and time that the public gateway was created
crn
string
The CRN for this public gateway
floating_ip
object
The floating IP bound to this public gateway.
href
string
The URL for this public gateway
id
string
The unique identifier for this public gateway
name
string
The name for this public gateway. The name is unique across all public gateways in the VPC.
resource_group
object
The resource group for this public gateway
resource_type
string
The resource type
status
string
The status of this public gateway
vpc
object
The VPC this public gateway resides in
zone
object
The zone this public gateway resides in
404 - The specified subnet could not be found or has no public gateway.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Attach a public gateway to a subnet
PUT /subnets/{id}/public_gateway
This request attaches the public gateway, specified in the request body, to the subnet specified by the subnet identifier in the URL. The public gateway must have the same VPC and zone as the subnet.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.subnet.subnet.operateis.public-gateway.public-gateway.operate
Auditing
Calling this method generates the following auditing event.
is.subnet.subnet.attachis.subnet.subnet.detachis.public-gateway.public-gateway.detachis.public-gateway.public-gateway.attach
Request
Request Body
PublicGatewayIdentity
The public gateway identity
Response
201 - The public gateway was attached successfully.
created_at
string
The date and time that the public gateway was created
crn
string
The CRN for this public gateway
floating_ip
object
The floating IP bound to this public gateway.
href
string
The URL for this public gateway
id
string
The unique identifier for this public gateway
name
string
The name for this public gateway. The name is unique across all public gateways in the VPC.
resource_group
object
The resource group for this public gateway
resource_type
string
The resource type
status
string
The status of this public gateway
vpc
object
The VPC this public gateway resides in
zone
object
The zone this public gateway resides in
400 - An invalid request body was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A subnet with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a subnet's attached routing table
GET /subnets/{id}/routing_table
This request retrieves the routing table attached to the subnet specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.subnet.subnet.readis.vpc.routing-table.read
Auditing
Calling this method generates the following auditing event.
is.subnet.routing-table.read
Request
Response
200 - The attached routing table was retrieved successfully.
accept_routes_from
array
The filters specifying the resources that may create routes in this routing table.
The resources and types of filters supported by this property is expected to expand in the future.
advertise_routes_to
array
The ingress sources to advertise routes to. Routes in the table with `advertise` enabled will be advertised to these sources.
The enumerated values for this property may expand in the future.
created_at
string
The date and time that this routing table was created
crn
string
The CRN for this VPC routing table
href
string
The URL for this routing table
id
string
The unique identifier for this routing table
is_default
boolean
Indicates whether this is the default routing table for this VPC
lifecycle_state
object
The lifecycle state of the routing table
name
string
The name for this routing table. The name is unique across all routing tables for the VPC.
resource_group
object
The resource group for this routing table
resource_type
string
The resource type
route_direct_link_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from Direct Link to this VPC.
Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
route_internet_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from the internet.
Incoming traffic will be routed according to the routing table with two exceptions:
- Traffic destined for IP addresses associated with public gateways will not be subject to routes in this routing table.
- Routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
route_transit_gateway_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from from Transit Gateway to this VPC.
Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
route_vpc_zone_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from subnets in other zones in this VPC.
Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
routes
array
The routes for this routing table.
subnets
array
The subnets to which this routing table is attached
404 - The specified subnet could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
PUT /subnets/{id}/routing_table
This request replaces the existing routing table for a subnet with the routing table specified in the request body.
For this request to succeed, the routing table `route_direct_link_ingress`, `route_internet_ingress`, `route_transit_gateway_ingress`, and `route_vpc_zone_ingress` properties must be `false`.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.subnet.subnet.operateis.vpc.routing-table.operate
Auditing
Calling this method generates the following auditing event.
is.subnet.subnet.attachis.subnet.subnet.detachis.vpc.routing-table.detachis.vpc.routing-table.attach
Request
Request Body
RoutingTableIdentity
The routing table identity
Response
201 - The routing table was attached successfully.
accept_routes_from
array
The filters specifying the resources that may create routes in this routing table.
The resources and types of filters supported by this property is expected to expand in the future.
advertise_routes_to
array
The ingress sources to advertise routes to. Routes in the table with `advertise` enabled will be advertised to these sources.
The enumerated values for this property may expand in the future.
created_at
string
The date and time that this routing table was created
crn
string
The CRN for this VPC routing table
href
string
The URL for this routing table
id
string
The unique identifier for this routing table
is_default
boolean
Indicates whether this is the default routing table for this VPC
lifecycle_state
object
The lifecycle state of the routing table
name
string
The name for this routing table. The name is unique across all routing tables for the VPC.
resource_group
object
The resource group for this routing table
resource_type
string
The resource type
route_direct_link_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from Direct Link to this VPC.
Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
route_internet_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from the internet.
Incoming traffic will be routed according to the routing table with two exceptions:
- Traffic destined for IP addresses associated with public gateways will not be subject to routes in this routing table.
- Routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
route_transit_gateway_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from from Transit Gateway to this VPC.
Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
route_vpc_zone_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from subnets in other zones in this VPC.
Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
routes
array
The routes for this routing table.
subnets
array
The subnets to which this routing table is attached
400 - An invalid request body was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A subnet with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List reserved IPs in a subnet
GET /subnets/{subnet_id}/reserved_ips
This request lists reserved IPs in a subnet. A reserved IP resource will exist for every address in the subnet which is not available for use.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.subnet.subnet.read
Auditing
Calling this method generates the following auditing event.
is.subnet.reserved-ip.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
sort
string
Sorts the returned collection by the specified property name in ascending order. A `-` may be prepended to the name to sort in descending order. For example, the value `-created_at` sorts the collection by the `created_at` property in descending order, and the value `name` sorts it by the `name` property in ascending order.
target.id
Filters the collection to resources with a `target.id` property matching the specified identifier.
target.crn
string
Filters the collection to resources with a `target.crn` property matching the specified CRN.
target.name
string
Filters the collection to resources with a `target.name` property matching the exact specified name.
target.resource_type
Filters the collection to resources with a `target.resource_type` property matching the specified value.
Response
200 - The reserved IPs were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
reserved_ips
array
A page of reserved IPs in the subnet
total_count
integer
The total number of resources across all pages
Reserve an IP in a subnet
POST /subnets/{subnet_id}/reserved_ips
This request reserves an IP address in a subnet. If the provided prototype object includes an `address`, the address must not already be reserved.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.subnet.subnet.updateis.endpoint-gateway.endpoint-gateway.operateis.virtual-network-interface.virtual-network-interface.operate
Auditing
Calling this method generates the following auditing event.
is.subnet.reserved-ip.createis.subnet.subnet.updateis.endpoint-gateway.endpoint-gateway.attachis.subnet.reserved-ip.attachis.virtual-network-interface.virtual-network-interface.attach
Request
Request Body
ReservedIPPrototype
The reserved IP prototype object
address
string
The IP address to reserve, which must not already be reserved on the subnet.
If unspecified, an available address on the subnet will automatically be selected.
auto_delete
boolean
Indicates whether this reserved IP member will be automatically deleted when either `target` is deleted, or the reserved IP is unbound. Must be `false` if the reserved IP is unbound.
name
string
The name for this reserved IP. The name must not be used by another reserved IP in the subnet. Names starting with `ibm-` are reserved for provider-owned resources, and are not allowed. If unspecified, the name will be a hyphenated list of randomly-selected words.
target
ReservedIPTargetPrototype
The target to bind this reserved IP to. The target must be in the same VPC.
The following targets are supported:
- An endpoint gateway not already bound to a reserved IP in the subnet's zone.
- A virtual network interface.
If unspecified, the reserved IP will be created unbound.
Response
201 - The reserved IP was created successfully.
address
object
The IP address.
If the address has not yet been selected, the value will be `0.0.0.0`.
This property may expand to support IPv6 addresses in the future.
auto_delete
boolean
Indicates whether this reserved IP member will be automatically deleted when either `target` is deleted, or the reserved IP is unbound.
created_at
string
The date and time that the reserved IP was created
href
string
The URL for this reserved IP
id
string
The unique identifier for this reserved IP
lifecycle_state
object
The lifecycle state of the reserved IP
name
string
The name for this reserved IP. The name is unique across all reserved IPs in a subnet.
owner
string
The owner of the reserved IP.
The enumerated values for this property may expand in the future.
resource_type
string
The resource type
target
ReservedIPTarget
The target this reserved IP is bound to.
If absent, this reserved IP is provider-owned or unbound.
The resources supported by this property may expand in the future.
400 - An invalid reserved IP prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The subnet has no available IP addresses, or the reserved IP prototype object
specifies an address that is already in use, or specifies a target that is already bound to a reserved IP in the subnet's zone.
errors
array
The errors that occurred.
trace
string
The unique error identifier
DELETE /subnets/{subnet_id}/reserved_ips/{id}
This request releases a reserved IP. This operation cannot be reversed.
For this request to succeed, the reserved IP must not be required by another resource, such as a bare metal server network interface, instance network interface or virtual network interface for which it is the primary IP. A provider-owned reserved IP is not allowed to be deleted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.subnet.subnet.update
Auditing
Calling this method generates the following auditing event.
is.subnet.subnet.updateis.subnet.reserved-ip.deleteis.subnet.reserved-ip.detachis.endpoint-gateway.endpoint-gateway.detachis.virtual-network-interface.virtual-network-interface.detach
Request
Response
204 - The reserved IP was deleted successfully.
403 - The specified reserved IP is owned by the provider.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified reserved IP could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The reserved IP is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a reserved IP
GET /subnets/{subnet_id}/reserved_ips/{id}
This request retrieves a single reserved IP specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.subnet.subnet.read
Auditing
Calling this method generates the following auditing event.
is.subnet.reserved-ip.read
Request
Response
200 - The reserved IP was retrieved successfully.
address
object
The IP address.
If the address has not yet been selected, the value will be `0.0.0.0`.
This property may expand to support IPv6 addresses in the future.
auto_delete
boolean
Indicates whether this reserved IP member will be automatically deleted when either `target` is deleted, or the reserved IP is unbound.
created_at
string
The date and time that the reserved IP was created
href
string
The URL for this reserved IP
id
string
The unique identifier for this reserved IP
lifecycle_state
object
The lifecycle state of the reserved IP
name
string
The name for this reserved IP. The name is unique across all reserved IPs in a subnet.
owner
string
The owner of the reserved IP.
The enumerated values for this property may expand in the future.
resource_type
string
The resource type
target
ReservedIPTarget
The target this reserved IP is bound to.
If absent, this reserved IP is provider-owned or unbound.
The resources supported by this property may expand in the future.
404 - The specified reserved IP could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
PATCH /subnets/{subnet_id}/reserved_ips/{id}
This request updates a reserved IP with the information in a provided reserved IP patch. The reserved IP patch object is structured in the same way as a retrieved reserved IP and contains only the information to be updated.
A provider-owned reserved IP is not allowed to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.subnet.subnet.update
Auditing
Calling this method generates the following auditing event.
is.subnet.reserved-ip.update
Request
Request Body
The reserved IP patch
Response
200 - The reserved IP was updated successfully.
address
object
The IP address.
If the address has not yet been selected, the value will be `0.0.0.0`.
This property may expand to support IPv6 addresses in the future.
auto_delete
boolean
Indicates whether this reserved IP member will be automatically deleted when either `target` is deleted, or the reserved IP is unbound.
created_at
string
The date and time that the reserved IP was created
href
string
The URL for this reserved IP
id
string
The unique identifier for this reserved IP
lifecycle_state
object
The lifecycle state of the reserved IP
name
string
The name for this reserved IP. The name is unique across all reserved IPs in a subnet.
owner
string
The owner of the reserved IP.
The enumerated values for this property may expand in the future.
resource_type
string
The resource type
target
ReservedIPTarget
The target this reserved IP is bound to.
If absent, this reserved IP is provider-owned or unbound.
The resources supported by this property may expand in the future.
400 - An invalid reserved IP patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The specified reserved IP is owned by the provider.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified reserved IP could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The specified reserved IP is unbound and would be automatically deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /virtual_network_interfaces
This request lists virtual network interfaces in the region. A virtual network interface is a logical abstraction of a virtual network interface in a subnet, and may be attached to a target resource.
The virtual network interfaces will be sorted by their `created_at` property values, with newest virtual network interfaces first. Virtual network interfaces with identical `created_at` property values will in turn be sorted by ascending `name` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.virtual-network-interface.virtual-network-interface.listis.virtual-network-interface.virtual-network-interface.read
Auditing
Calling this method generates the following auditing event.
is.virtual-network-interface.virtual-network-interface.list
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
Response
200 - The virtual network interfaces were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
virtual_network_interfaces
array
A page of virtual network interfaces
Create a virtual network interface
POST /virtual_network_interfaces
This request creates a new virtual network interface from a virtual network interface prototype object. The prototype object is structured in the same way as a retrieved virtual network interface, and contains the information necessary to create the new virtual network interface.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.virtual-network-interface.virtual-network-interface.createis.virtual-network-interface.virtual-network-interface.manage-ip-spoofingis.virtual-network-interface.virtual-network-interface.manage-infrastructure-natis.virtual-network-interface.virtual-network-interface.manage-protocol-state-filtering-modeis.security-group.security-group.operateis.subnet.subnet.operateis.subnet.subnet.update
Auditing
Calling this method generates the following auditing event.
is.virtual-network-interface.virtual-network-interface.createis.virtual-network-interface.virtual-network-interface.attachis.subnet.reserved-ip.createis.subnet.subnet.updateis.subnet.reserved-ip.attachis.security-group.security-group.attach
Request
Request Body
VirtualNetworkInterfacePrototype
The virtual network interface prototype object
allow_ip_spoofing
boolean
Indicates whether source IP spoofing is allowed on this interface. If `false`, source IP spoofing is prevented on this interface. If `true`, source IP spoofing is allowed on this interface.
auto_delete
boolean
Indicates whether this virtual network interface will be automatically deleted when `target` is deleted. Must be `false` if the virtual network interface is unbound.
enable_infrastructure_nat
boolean
If `true`:
- The VPC infrastructure performs any needed NAT operations.
- `floating_ips` must not have more than one floating IP.
If `false`:
- Packets are passed unchanged to/from the virtual network interface, allowing the workload to perform any needed NAT operations.
- `allow_ip_spoofing` must be `false`.
- Can only be attached to a `target` with a `resource_type` of `bare_metal_server_network_attachment`.
ips
array
The additional IP addresses to bind to the virtual network interface. Each item may be either a reserved IP identity, or a reserved IP prototype object which will be used to create a new reserved IP. All IP addresses must be in the primary IP's subnet.
If reserved IP identities are provided, the specified reserved IPs must be unbound.
If reserved IP prototype objects with addresses are provided, the addresses must be available on the virtual network interface's subnet. For any prototype objects that do not specify an address, an available address on the subnet will be automatically selected and reserved.
name
string
The name for this virtual network interface. The name must not be used by another virtual network interface in the VPC. If unspecified, the name will be a hyphenated list of randomly-selected words. Names beginning with `ibm-` are reserved for provider-owned resources, and are not allowed.
primary_ip
object
The primary IP address to bind to the virtual network interface. May be either a reserved IP identity, or a reserved IP prototype object which will be used to create a new reserved IP.
If a reserved IP identity is provided, the specified reserved IP must be unbound.
If a reserved IP prototype object with an address is provided, the address must be available on the virtual network interface's subnet. If no address is specified, an available address on the subnet will be automatically selected and reserved.
protocol_state_filtering_mode
string
The protocol state filtering mode to use for this virtual network interface. If `auto`, protocol state packet filtering is enabled or disabled based on the virtual network interface's `target` resource type:
- `bare_metal_server_network_attachment`: disabled
- `instance_network_attachment`: enabled
- `share_mount_target`: enabled
- `dynamic_route_server_member_network_attachment`: enabled
Protocol state filtering monitors each network connection flowing over this virtual network interface, and drops any packets that are invalid based on the current connection state and protocol. See Protocol state filtering mode for more information.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
security_groups
array
The security groups to use for this virtual network interface. If unspecified, the default security group of the VPC for the subnet is used.
subnet
object
Identifies a subnet by a unique property.
Response
201 - The virtual network interface was created successfully.
allow_ip_spoofing
boolean
Indicates whether source IP spoofing is allowed on this interface. If `false`, source IP spoofing is prevented on this interface. If `true`, source IP spoofing is allowed on this interface.
auto_delete
boolean
Indicates whether this virtual network interface will be automatically deleted when `target` is deleted
created_at
string
The date and time that the virtual network interface was created
crn
string
The CRN for this virtual network interface
enable_infrastructure_nat
boolean
If `true`:
- The VPC infrastructure performs any needed NAT operations.
- `floating_ips` must not have more than one floating IP.
If `false`:
- Packets are passed unchanged to/from the virtual network interface, allowing the workload to perform any needed NAT operations.
- `allow_ip_spoofing` must be `false`.
- Can only be attached to a `target` with a `resource_type` of `bare_metal_server_network_attachment`.
href
string
The URL for this virtual network interface
id
string
The unique identifier for this virtual network interface
ips
array
The reserved IPs bound to this virtual network interface.
May be empty when `lifecycle_state` is `pending`.
lifecycle_state
object
The lifecycle state of the virtual network interface
mac_address
string
The MAC address of the virtual network interface. May be absent if `lifecycle_state` is `pending`.
name
string
The name for this virtual network interface. The name is unique across all virtual network interfaces in the VPC.
primary_ip
object
The reserved IP for this virtual network interface.
protocol_state_filtering_mode
string
The protocol state filtering mode used for this virtual network interface. If `auto`, protocol state packet filtering is enabled or disabled based on the virtual network interface's `target` resource type:
- `bare_metal_server_network_attachment`: disabled
- `instance_network_attachment`: enabled
- `share_mount_target`: enabled
Protocol state filtering monitors each network connection flowing over this virtual network interface, and drops any packets that are invalid based on the current connection state and protocol. See Protocol state filtering mode) for more information.
public_address_ranges
array
The public address ranges attached to this virtual network interface.
resource_group
object
The resource group for this virtual network interface
resource_type
string
The resource type
security_groups
array
The security groups for this virtual network interface.
subnet
object
The associated subnet
target
object
The target of this virtual network interface.
If absent, this virtual network interface is not attached to a target.
vpc
object
The VPC this virtual network interface resides in.
zone
object
The zone this virtual network interface resides in.
400 - An invalid virtual network interface prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The virtual network interface prototype object conflicts with another virtual
network interface in the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a virtual network interface
DELETE /virtual_network_interfaces/{id}
This request deletes a virtual network interface. This operation cannot be reversed. For this request to succeed, the virtual network interface must not be required by another resource, such as the primary network attachment for an instance.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.virtual-network-interface.virtual-network-interface.delete
Auditing
Calling this method generates the following auditing event.
is.virtual-network-interface.virtual-network-interface.deleteis.virtual-network-interface.virtual-network-interface.detachis.subnet.reserved-ip.deleteis.subnet.subnet.updateis.floating-ip.floating-ip.detachis.subnet.reserved-ip.detachis.security-group.security-group.detachis.flow-log-collector.flow-log-collector.deleteis.flow-log-collector.flow-log-collector.detachis.public-address-range.public-address-range.detach
Request
Path Parameters
Query Parameters
Response
202 - The virtual network interface deletion request was accepted.
allow_ip_spoofing
boolean
Indicates whether source IP spoofing is allowed on this interface. If `false`, source IP spoofing is prevented on this interface. If `true`, source IP spoofing is allowed on this interface.
auto_delete
boolean
Indicates whether this virtual network interface will be automatically deleted when `target` is deleted
created_at
string
The date and time that the virtual network interface was created
crn
string
The CRN for this virtual network interface
enable_infrastructure_nat
boolean
If `true`:
- The VPC infrastructure performs any needed NAT operations.
- `floating_ips` must not have more than one floating IP.
If `false`:
- Packets are passed unchanged to/from the virtual network interface, allowing the workload to perform any needed NAT operations.
- `allow_ip_spoofing` must be `false`.
- Can only be attached to a `target` with a `resource_type` of `bare_metal_server_network_attachment`.
href
string
The URL for this virtual network interface
id
string
The unique identifier for this virtual network interface
ips
array
The reserved IPs bound to this virtual network interface.
May be empty when `lifecycle_state` is `pending`.
lifecycle_state
object
The lifecycle state of the virtual network interface
mac_address
string
The MAC address of the virtual network interface. May be absent if `lifecycle_state` is `pending`.
name
string
The name for this virtual network interface. The name is unique across all virtual network interfaces in the VPC.
primary_ip
object
The reserved IP for this virtual network interface.
protocol_state_filtering_mode
string
The protocol state filtering mode used for this virtual network interface. If `auto`, protocol state packet filtering is enabled or disabled based on the virtual network interface's `target` resource type:
- `bare_metal_server_network_attachment`: disabled
- `instance_network_attachment`: enabled
- `share_mount_target`: enabled
Protocol state filtering monitors each network connection flowing over this virtual network interface, and drops any packets that are invalid based on the current connection state and protocol. See Protocol state filtering mode) for more information.
public_address_ranges
array
The public address ranges attached to this virtual network interface.
resource_group
object
The resource group for this virtual network interface
resource_type
string
The resource type
security_groups
array
The security groups for this virtual network interface.
subnet
object
The associated subnet
target
object
The target of this virtual network interface.
If absent, this virtual network interface is not attached to a target.
vpc
object
The VPC this virtual network interface resides in.
zone
object
The zone this virtual network interface resides in.
403 - The specified virtual network interface is owned by the provider.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified virtual network interface could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The virtual network interface is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the virtual
network interface.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a virtual network interface
GET /virtual_network_interfaces/{id}
This request retrieves a single virtual network interface specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.virtual-network-interface.virtual-network-interface.read
Auditing
Calling this method generates the following auditing event.
is.virtual-network-interface.virtual-network-interface.read
Request
Response
200 - The virtual network interface was retrieved successfully.
allow_ip_spoofing
boolean
Indicates whether source IP spoofing is allowed on this interface. If `false`, source IP spoofing is prevented on this interface. If `true`, source IP spoofing is allowed on this interface.
auto_delete
boolean
Indicates whether this virtual network interface will be automatically deleted when `target` is deleted
created_at
string
The date and time that the virtual network interface was created
crn
string
The CRN for this virtual network interface
enable_infrastructure_nat
boolean
If `true`:
- The VPC infrastructure performs any needed NAT operations.
- `floating_ips` must not have more than one floating IP.
If `false`:
- Packets are passed unchanged to/from the virtual network interface, allowing the workload to perform any needed NAT operations.
- `allow_ip_spoofing` must be `false`.
- Can only be attached to a `target` with a `resource_type` of `bare_metal_server_network_attachment`.
href
string
The URL for this virtual network interface
id
string
The unique identifier for this virtual network interface
ips
array
The reserved IPs bound to this virtual network interface.
May be empty when `lifecycle_state` is `pending`.
lifecycle_state
object
The lifecycle state of the virtual network interface
mac_address
string
The MAC address of the virtual network interface. May be absent if `lifecycle_state` is `pending`.
name
string
The name for this virtual network interface. The name is unique across all virtual network interfaces in the VPC.
primary_ip
object
The reserved IP for this virtual network interface.
protocol_state_filtering_mode
string
The protocol state filtering mode used for this virtual network interface. If `auto`, protocol state packet filtering is enabled or disabled based on the virtual network interface's `target` resource type:
- `bare_metal_server_network_attachment`: disabled
- `instance_network_attachment`: enabled
- `share_mount_target`: enabled
Protocol state filtering monitors each network connection flowing over this virtual network interface, and drops any packets that are invalid based on the current connection state and protocol. See Protocol state filtering mode) for more information.
public_address_ranges
array
The public address ranges attached to this virtual network interface.
resource_group
object
The resource group for this virtual network interface
resource_type
string
The resource type
security_groups
array
The security groups for this virtual network interface.
subnet
object
The associated subnet
target
object
The target of this virtual network interface.
If absent, this virtual network interface is not attached to a target.
vpc
object
The VPC this virtual network interface resides in.
zone
object
The zone this virtual network interface resides in.
404 - The specified virtual network interface could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a virtual network interface
PATCH /virtual_network_interfaces/{id}
This request updates a virtual network interface with the information in a provided virtual network interface patch. The virtual network interface patch object is structured in the same way as a retrieved virtual network interface and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.virtual-network-interface.virtual-network-interface.updateis.virtual-network-interface.virtual-network-interface.manage-ip-spoofingis.virtual-network-interface.virtual-network-interface.manage-infrastructure-natis.virtual-network-interface.virtual-network-interface.manage-protocol-state-filtering-mode
Auditing
Calling this method generates the following auditing event.
is.virtual-network-interface.virtual-network-interface.update
Request
Request Body
The virtual network interface patch
Path Parameters
Query Parameters
Response
200 - The virtual network interface was updated successfully.
allow_ip_spoofing
boolean
Indicates whether source IP spoofing is allowed on this interface. If `false`, source IP spoofing is prevented on this interface. If `true`, source IP spoofing is allowed on this interface.
auto_delete
boolean
Indicates whether this virtual network interface will be automatically deleted when `target` is deleted
created_at
string
The date and time that the virtual network interface was created
crn
string
The CRN for this virtual network interface
enable_infrastructure_nat
boolean
If `true`:
- The VPC infrastructure performs any needed NAT operations.
- `floating_ips` must not have more than one floating IP.
If `false`:
- Packets are passed unchanged to/from the virtual network interface, allowing the workload to perform any needed NAT operations.
- `allow_ip_spoofing` must be `false`.
- Can only be attached to a `target` with a `resource_type` of `bare_metal_server_network_attachment`.
href
string
The URL for this virtual network interface
id
string
The unique identifier for this virtual network interface
ips
array
The reserved IPs bound to this virtual network interface.
May be empty when `lifecycle_state` is `pending`.
lifecycle_state
object
The lifecycle state of the virtual network interface
mac_address
string
The MAC address of the virtual network interface. May be absent if `lifecycle_state` is `pending`.
name
string
The name for this virtual network interface. The name is unique across all virtual network interfaces in the VPC.
primary_ip
object
The reserved IP for this virtual network interface.
protocol_state_filtering_mode
string
The protocol state filtering mode used for this virtual network interface. If `auto`, protocol state packet filtering is enabled or disabled based on the virtual network interface's `target` resource type:
- `bare_metal_server_network_attachment`: disabled
- `instance_network_attachment`: enabled
- `share_mount_target`: enabled
Protocol state filtering monitors each network connection flowing over this virtual network interface, and drops any packets that are invalid based on the current connection state and protocol. See Protocol state filtering mode) for more information.
public_address_ranges
array
The public address ranges attached to this virtual network interface.
resource_group
object
The resource group for this virtual network interface
resource_type
string
The resource type
security_groups
array
The security groups for this virtual network interface.
subnet
object
The associated subnet
target
object
The target of this virtual network interface.
If absent, this virtual network interface is not attached to a target.
vpc
object
The VPC this virtual network interface resides in.
zone
object
The zone this virtual network interface resides in.
400 - An invalid virtual network interface patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The specified virtual network interface is owned by the provider.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A virtual network interface with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The virtual network interface patch conflicts with another virtual network interface
in the VPC, or following:
- The virtual network interface's `allow_ip_spoofing` property cannot be `true` when `target` specifies a share mount target.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the virtual
network interface.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List floating IPs associated with a virtual network interface
GET /virtual_network_interfaces/{virtual_network_interface_id}/floating_ips
This request lists floating IPs associated with a virtual network interface.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.virtual-network-interface.virtual-network-interface.read
Auditing
Calling this method generates the following auditing event.
is.virtual-network-interface.virtual-network-interface.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
sort
string
Sorts the returned collection by the specified property name in ascending order. A `-` may be prepended to the name to sort in descending order. For example, the value `-name` sorts the collection by the `name` property in descending order, and the value `name` sorts it by the `name` property in ascending order.
Response
200 - The associated floating IPs were retrieved successfully.
first
object
A link to the first page of resources
floating_ips
array
A page of floating IPs bound to the virtual network interface specified by the identifier in the URL
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - A virtual network interface with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Disassociate a floating IP from a virtual network interface
DELETE /virtual_network_interfaces/{virtual_network_interface_id}/floating_ips/{id}
This request disassociates the specified floating IP from the specified virtual network interface
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.virtual-network-interface.virtual-network-interface.operateis.floating-ip.floating-ip.operate
Auditing
Calling this method generates the following auditing event.
is.virtual-network-interface.virtual-network-interface.detachis.floating-ip.floating-ip.detach
Request
Response
204 - The floating IP was disassociated successfully.
400 - The specified floating IP could not be disassociated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified floating IP is not associated with the virtual network interface
with the specified identifier
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve associated floating IP
GET /virtual_network_interfaces/{virtual_network_interface_id}/floating_ips/{id}
This request retrieves a specified floating IP if it is associated with the virtual network interface specified in the URL
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.virtual-network-interface.virtual-network-interface.read
Auditing
Calling this method generates the following auditing event.
is.virtual-network-interface.virtual-network-interface.read
Request
Response
200 - The associated floating IP was retrieved successfully.
address
string
The globally unique IP address
crn
string
The CRN for this floating IP
deleted
Deleted
If present, this property indicates the referenced resource has been deleted, and provides some supplementary information.
href
string
The URL for this floating IP
id
string
The unique identifier for this floating IP
name
string
The name for this floating IP. The name is unique across all floating IPs in the region.
resource_type
string
The resource type
404 - The floating IP is not associated with a virtual network interface with the
specified identifier
errors
array
The errors that occurred.
trace
string
The unique error identifier
PUT /virtual_network_interfaces/{virtual_network_interface_id}/floating_ips/{id}
This request adds an association between the specified floating IP and the specified virtual network interface.
The virtual network interface must have `enable_infrastructure_nat` set to `false`.
The floating IP must:
- be in the same `zone` as the virtual network interface
- not currently be associated with another resource
The virtual network interface's `target` must not currently be:
- a file share mount target.
- a dynamic route server member target.
A request body is not required, and if provided, is ignored.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.virtual-network-interface.virtual-network-interface.operateis.floating-ip.floating-ip.operate
Auditing
Calling this method generates the following auditing event.
is.virtual-network-interface.virtual-network-interface.attachis.floating-ip.floating-ip.attachis.virtual-network-interface.virtual-network-interface.detachis.instance.network-interface.detachis.bare-metal-server.network-interface.detachis.floating-ip.floating-ip.detach
Request
Response
200 - The specified floating IP is already associated with the virtual network interface.
address
string
The globally unique IP address
crn
string
The CRN for this floating IP
deleted
Deleted
If present, this property indicates the referenced resource has been deleted, and provides some supplementary information.
href
string
The URL for this floating IP
id
string
The unique identifier for this floating IP
name
string
The name for this floating IP. The name is unique across all floating IPs in the region.
resource_type
string
The resource type
201 - The floating IP was successfully associated with the virtual network interface.
address
string
The globally unique IP address
crn
string
The CRN for this floating IP
deleted
Deleted
If present, this property indicates the referenced resource has been deleted, and provides some supplementary information.
href
string
The URL for this floating IP
id
string
The unique identifier for this floating IP
name
string
The name for this floating IP. The name is unique across all floating IPs in the region.
resource_type
string
The resource type
400 - The specified floating IP could not be associated with the specified virtual network
interface.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified virtual network interface or floating IP could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The request specified one or more of:
- a floating IP associated with another resource
- a virtual network interface that has `enable_infrastructure_nat` set to `true` and another floating IP associated with it
- a virtual network interface whose `target` is a file share mount target
errors
array
The errors that occurred.
trace
string
The unique error identifier
List reserved IPs bound to a virtual network interface
GET /virtual_network_interfaces/{virtual_network_interface_id}/ips
This request lists reserved IPs bound to a virtual network interface.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.virtual-network-interface.virtual-network-interface.read
Auditing
Calling this method generates the following auditing event.
is.virtual-network-interface.virtual-network-interface.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
sort
string
Sorts the returned collection by the specified property name in ascending order. A `-` may be prepended to the name to sort in descending order. For example, the value `-name` sorts the collection by the `name` property in descending order, and the value `name` sorts it by the `name` property in ascending order.
Response
200 - The reserved IPs were retrieved successfully.
first
object
A link to the first page of resources
ips
array
A page of reserved IPs bound to the virtual network interface specified by the identifier in the URL
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - A virtual network interface with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
DELETE /virtual_network_interfaces/{virtual_network_interface_id}/ips/{id}
This request unbinds the specified reserved IP from the specified virtual network interface. If the reserved IP has `auto_delete` set to `true`, the reserved IP will be deleted.
The reserved IP for the `primary_ip` cannot be unbound.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.virtual-network-interface.virtual-network-interface.operateis.subnet.subnet.operate
Auditing
Calling this method generates the following auditing event.
is.virtual-network-interface.virtual-network-interface.detachis.subnet.reserved-ip.detach
Request
Response
204 - The reserved IP was unbound successfully.
400 - The primary reserved IP address cannot be unbound.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified reserved IP address is not associated with the virtual network interface
with the specified identifier
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve bound reserved IP
GET /virtual_network_interfaces/{virtual_network_interface_id}/ips/{id}
This request retrieves the specified reserved IP address if it is bound to the virtual network interface specified in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.virtual-network-interface.virtual-network-interface.read
Auditing
Calling this method generates the following auditing event.
is.virtual-network-interface.virtual-network-interface.read
Request
Response
200 - The associated reserved IP was retrieved successfully.
address
object
The IP address.
If the address has not yet been selected, the value will be `0.0.0.0`.
This property may expand to support IPv6 addresses in the future.
deleted
Deleted
If present, this property indicates the referenced resource has been deleted, and provides some supplementary information.
href
string
The URL for this reserved IP
id
string
The unique identifier for this reserved IP
name
string
The name for this reserved IP. The name is unique across all reserved IPs in a subnet.
resource_type
string
The resource type
404 - The reserved IP address with the specified identifier could not be found
errors
array
The errors that occurred.
trace
string
The unique error identifier
PUT /virtual_network_interfaces/{virtual_network_interface_id}/ips/{id}
This request binds the specified reserved IP to the specified virtual network interface.
The reserved IP must currently be unbound and in the primary IP's subnet.
The virtual network interface's `target` must not currently be:
- a file share mount target
- a dynamic route server member target.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.virtual-network-interface.virtual-network-interface.operateis.subnet.subnet.operate
Auditing
Calling this method generates the following auditing event.
is.virtual-network-interface.virtual-network-interface.attachis.subnet.reserved-ip.attach
Request
Response
200 - The specified reserved IP is already bound to the virtual network interface.
address
object
The IP address.
If the address has not yet been selected, the value will be `0.0.0.0`.
This property may expand to support IPv6 addresses in the future.
deleted
Deleted
If present, this property indicates the referenced resource has been deleted, and provides some supplementary information.
href
string
The URL for this reserved IP
id
string
The unique identifier for this reserved IP
name
string
The name for this reserved IP. The name is unique across all reserved IPs in a subnet.
resource_type
string
The resource type
201 - The reserved IP was successfully bound to the virtual network interface.
address
object
The IP address.
If the address has not yet been selected, the value will be `0.0.0.0`.
This property may expand to support IPv6 addresses in the future.
deleted
Deleted
If present, this property indicates the referenced resource has been deleted, and provides some supplementary information.
href
string
The URL for this reserved IP
id
string
The unique identifier for this reserved IP
name
string
The name for this reserved IP. The name is unique across all reserved IPs in a subnet.
resource_type
string
The resource type
400 - The specified reserved IP is not in the primary IP's subnet.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A virtual network interface with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The request specified one or more of:
- a bound reserved IP
- a virtual network interface for a file share mount target and a reserved IP that is not the primary IP address
- a virtual network interface for a dynamic route server target and a reserved IP that is not the primary IP address
errors
array
The errors that occurred.
trace
string
The unique error identifier
List volume profiles
GET /volume/profiles
This request lists volume profiles available in the region. A volume profile specifies the performance characteristics and pricing model for a volume.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The volume profiles were retrieved successfully
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
profiles
array
A page of volume profiles
total_count
integer
The total number of resources across all pages
Retrieve a volume profile
GET /volume/profiles/{name}
This request retrieves a single volume profile specified by the name in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
Auditing
Calling this method generates the following auditing event.
Request
Path Parameters
name
Required *
string
The volume profile name
Query Parameters
Response
200 - The volume profile was retrieved successfully
adjustable_capacity_states
VolumeProfileAdjustableCapacityStates
adjustable_iops_states
VolumeProfileAdjustableIOPSStates
bandwidth
VolumeProfileBandwidth
boot_capacity
VolumeProfileBootCapacity
capacity
VolumeProfileCapacity
family
string
The product family this volume profile belongs to.
The enumerated values for this property may expand in the future.
href
string
The URL for this volume profile
iops
VolumeProfileIOPS
name
string
The globally unique name for this volume profile
storage_generation
VolumeProfileStorageGenerationFixed
The storage generation value of volumes of this profile
supported_attachment_modes
array
The supported attachment modes for a volume with this profile:
- `single`: volume can only be attached to a single bare metal server or instance concurrently.
- `multiple`: volume can be attached to multiple bare metal servers concurrently. Each bare metal server has full read write access to the volume. To maintain data consistency, the application using the volume must use volume reservations or use a data partitioning scheme.
Boot volumes must be `single`. Data volumes can be either `single` or `multiple`.
To attach to a volume with an `attachment_mode` of `single`, the `attachment_protocol` of the instance or bare metal server's volume attachment resource can be either `virtio_blk` or `nvme_tcp`.
To attach to a volume with an `attachment_mode` of `multiple`, the `attachment_protocol` of the instance or bare metal server's volume attachment resource must be `nvme_tcp`.
The enumerated values for this property may expand in the future.
supported_attachment_protocols
array
The supported attachment protocols for a volume with this profile:
- `virtio_blk`: VirtIO block device. This para-virtualized storage protocol provides block device access for virtual server instances.
- `nvme_tcp`: Non-Volatile Memory Express (NVMe) over TCP/IP. This protocol allows bare metal servers to connect to volumes over the network using the NVMe protocol.
The `attachment_protocol` is specified during the creation of an instance or bare metal server's volume attachment resource.
The enumerated values for this property may expand in the future.
404 - A volume profile with the specified name could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List volumes
GET /volumes
This request lists volumes in the region. Volumes are network-connected block storage devices that may be attached to one or more instances in the same region.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.volume.volume.read
Auditing
Calling this method generates the following auditing event.
is.volume.volume.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
attachment_state
Filters the collection to volumes with an `attachment_state` property matching the specified value.
encryption
Filters the collection to resources with an `encryption` property matching the specified value.
name
string
Filters the collection to resources with a `name` property matching the exact specified name.
operating_system.family
Filters the collection to resources with an `operating_system.family` property matching the specified operating system family.
This parameter also supports the values `null` and `not:null` which filter the collection to resources which have no operating system or any operating system, respectively.
operating_system.architecture
Filters the collection to resources with an `operating_system.architecture` property matching the specified operating system architecture.
This parameter also supports the values `null` and `not:null` which filter the collection to resources which have no operating system or any operating system, respectively.
profile.name
string
Filters the collection to volumes with a `profile.name` property matching the specified value.
storage_generation
Filters the collection to volumes with a `storage_generation` property matching the specified value.
tag
Filters the collection to resources with an item in the `tags` property matching the exact specified tag.
zone.name
string
Filters the collection to resources with a `zone.name` property matching the exact specified name.
Response
200 - The volumes were retrieved successfully
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
volumes
array
A page of volumes
Create a volume
POST /volumes
This request creates a new volume from a volume prototype object. The prototype object is structured in the same way as a retrieved volume, and contains the information necessary to create the new volume.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.volume.volume.createis.snapshot.snapshot.operateis.volume.volume.allow-remote-account-snapshot-restoreis.volume.volume.manage-allowed-useis.volume.volume.manage-attachment-mode
Auditing
Calling this method generates the following auditing event.
is.volume.volume.createis.snapshot.snapshot.operate
Request
Request Body
VolumePrototype
The volume prototype object
capacity
Required *
integer
The capacity to use for the volume (in gigabytes). The specified value must be at least the snapshot's `minimum_capacity`, and must be within the `capacity` range of the volume's profile.
If unspecified, the capacity will be the source snapshot's `minimum_capacity`.
encryption_key
object
The root key to use to wrap the data encryption key for the volume.
If unspecified, the snapshot's `encryption_key` will be used.
allowed_use
object
The usage constraints to be matched against requested instance or bare metal server properties to determine compatibility.
Can only be specified if `source_snapshot` is bootable. If not specified, the value of this property will be inherited from the `source_snapshot`
api_version
string
The API version with which to evaluate the expressions.
If specified, the value must be between `2019-01-01` and today's date (in UTC). If unspecified, the `version` query parameter value will be used.
bare_metal_server
string
The expression that must be satisfied by the properties of a bare metal server provisioned using the image data in this volume.
If unspecified, the expression will be set to `true`.
The expression follows Common Expression Language, but does not support built-in functions and macros. In addition, the following variable is supported, corresponding to the `BareMetalServer` property:
- `enable_secure_boot` (boolean): Whether secure boot is enabled
instance
string
The expression that must be satisfied by the properties of a virtual server instance provisioned using this volume.
If unspecified, the expression will be set to `true`.
The expression follows Common Expression Language, but does not support built-in functions and macros. In addition, the following variables are supported, corresponding to `Instance` properties:
- `enable_secure_boot` (boolean): Whether secure boot is enabled
- `gpu.count` (integer): The number of GPUs
- `gpu.manufacturer` (string): The GPU manufacturer
- `gpu.memory` (integer): The overall amount of GPU memory in GiB (gibibytes)
- `gpu.model` (string): The GPU model
- `metadata_service.enabled` (boolean): Whether the metadata service is enabled
- `metadata_service.protocol` (string): The communication protocol used for the metadata service endpoint
- `vcpu.count` (integer): The number of virtual CPUs
source_snapshot
Required *
object
Identifies a snapshot by a unique property.
attachment_mode
object
The attachment mode of the volume:
- `single`: volume can only be attached to a single bare metal server or instance concurrently.
- `multiple`: volume can be attached to multiple bare metal servers concurrently. Each bare metal server has full read write access to the volume. To maintain data consistency, the application using the volume must use volume reservations or use a data partitioning scheme.
Boot volumes must be `single`. Data volumes can be either `single` or `multiple`.
To attach to a volume with an `attachment_mode` of `single`, the `attachment_protocol` of the instance or bare metal server's volume attachment resource can be either `virtio_blk` or `nvme_tcp`.
To attach to a volume with an `attachment_mode` of `multiple`, the `attachment_protocol` of the instance or bare metal server's volume attachment resource must must be `nvme_tcp`.
Can only be changed when the `attachment_state` of the volume is `unattached`.
bandwidth
integer
The maximum bandwidth (in megabits per second) for the volume.
If the volume profile has a `bandwidth.type` of `dependent`, this property is system-managed and must not be specified.
Provided the property is user-managed, if it is unspecified, its value will be set based on the specified `iops` and `capacity`.
iops
integer
The maximum I/O operations per second (IOPS) to use for this volume.
If the volume profile has a `iops.type` of `dependent`, this property is system-managed and must not be specified.
Provided the property is user-managed, if it is unspecified, its value will be set based on the specified `capacity`.
name
string
The name for this volume. The name must not be used by another volume in the region. If unspecified, the name will be a hyphenated list of randomly-selected words.
profile
Required *
object
The profile for this volume.
To create a volume from a `source_snapshot`, the volume profile and the source snapshot must have the same `storage_generation` value.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
user_tags
array
The user tags associated with this volume.
zone
Required *
object
Identifies a zone by a unique property.
Response
201 - The volume was created successfully
active
boolean
Indicates whether a running virtual server instance has an attachment to this volume.
adjustable_capacity_states
array
The attachment states that support adjustable capacity for this volume.
adjustable_iops_states
array
The attachment states that support adjustable IOPS for this volume.
allowed_use
object
The usage constraints to be matched against the requested instance or bare metal server properties to determine compatibility.
Only present for boot volumes.
attachment_mode
string
The attachment mode of the volume:
- `single`: volume can only be attached to a single bare metal server or instance concurrently.
- `multiple`: volume can be attached to multiple bare metal servers concurrently. Each bare metal server has full read write access to the volume. To maintain data consistency, the application using the volume must use volume reservations or use a data partitioning scheme.
Boot volumes must be `single`. Data volumes can be either `single` or `multiple`.
To attach to a volume with an `attachment_mode` of `single`, the `attachment_protocol` of the instance or bare metal server's volume attachment resource can be either `virtio_blk` or `nvme_tcp`.
To attach to a volume with an `attachment_mode` of `multiple`, the `attachment_protocol` of the instance or bare metal server's volume attachment resource must must be `nvme_tcp`.
Can only be changed when the `attachment_state` of the volume is `unattached`.
attachment_state
string
The attachment state of the volume
- `unattached`: Not attached to any virtual server instances or bare metal servers
- `attached`: At least one volume attachment to a virtual server instance or bare metal server exists. (even if the instance or server is stopped, or the server's operating system hasn't connected to the volume)
- `unusable`: Not able to be attached to any virtual server instances or bare metal servers
bandwidth
integer
The maximum bandwidth (in megabits per second) for the volume.
If the volume profile has a `bandwidth.type` of `dependent`, the bandwidth is calculated from the `iops` value.
The minimum and maximum limits for this property may expand in the future.
busy
boolean
Indicates whether this volume is performing an operation that must be serialized. This must be `false` to perform an operation that is specified to require serialization.
capacity
integer
The capacity to use for the volume (in gigabytes).
The minimum and maximum limits for this property may expand in the future.
catalog_offering
object
The catalog offering this volume was created from. If a virtual server instance is provisioned with a `boot_volume_attachment` specifying this volume, the virtual server instance will use this volume's catalog offering, including its pricing plan.
If absent, this volume was not created from a catalog offering.
created_at
string
The date and time that the volume was created
crn
string
The CRN for this volume
encryption
string
The type of encryption used on the volume
encryption_key
object
The root key used to wrap the data encryption key for the volume.
This property will be present for volumes with an `encryption` type of `user_managed`.
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this volume
id
string
The unique identifier for this volume
iops
integer
The maximum I/O operations per second (IOPS) for this volume.
name
string
The name for this volume. The name is unique across all volumes in the region.
operating_system
object
The operating system associated with this volume. If absent, this volume was not created from an image, or the image did not include an operating system.
profile
object
The profile for this volume.
resource_group
object
The resource group for this volume
resource_type
string
The resource type
software_attachments
VolumeSoftwareAttachments
The software attachments for this volume.
source_image
object
The image from which this volume was created (this may be deleted). If absent, this volume was not created from an image.
source_snapshot
object
The snapshot from which this volume was cloned
status
string
The status of the volume.
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
storage_generation
integer
The storage generation:
- `1`: The first storage generation
- `2`: The second storage generation
The enumerated values for this property may expand in the future.
user_tags
array
The user tags associated with this volume.
volume_attachments
array
The volume attachments for this volume.
zone
object
The zone this volume resides in
400 - An invalid volume prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The volume prototype object conflicts with another volume in the region, or
the volume prototype object specified an encryption key that cannot be used in its current state.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a volume
DELETE /volumes/{id}
This request deletes a volume. This operation cannot be reversed. For this request to succeed, the volume must not be attached to any instances.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.volume.volume.delete
Auditing
Calling this method generates the following auditing event.
is.volume.volume.delete
Request
Path Parameters
Query Parameters
Response
204 - The volume was deleted successfully.
404 - A volume with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The volume is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the volume
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a volume
GET /volumes/{id}
This request retrieves a single volume specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.volume.volume.read
Auditing
Calling this method generates the following auditing event.
is.volume.volume.read
Request
Response
200 - The volume was retrieved successfully
active
boolean
Indicates whether a running virtual server instance has an attachment to this volume.
adjustable_capacity_states
array
The attachment states that support adjustable capacity for this volume.
adjustable_iops_states
array
The attachment states that support adjustable IOPS for this volume.
allowed_use
object
The usage constraints to be matched against the requested instance or bare metal server properties to determine compatibility.
Only present for boot volumes.
attachment_mode
string
The attachment mode of the volume:
- `single`: volume can only be attached to a single bare metal server or instance concurrently.
- `multiple`: volume can be attached to multiple bare metal servers concurrently. Each bare metal server has full read write access to the volume. To maintain data consistency, the application using the volume must use volume reservations or use a data partitioning scheme.
Boot volumes must be `single`. Data volumes can be either `single` or `multiple`.
To attach to a volume with an `attachment_mode` of `single`, the `attachment_protocol` of the instance or bare metal server's volume attachment resource can be either `virtio_blk` or `nvme_tcp`.
To attach to a volume with an `attachment_mode` of `multiple`, the `attachment_protocol` of the instance or bare metal server's volume attachment resource must must be `nvme_tcp`.
Can only be changed when the `attachment_state` of the volume is `unattached`.
attachment_state
string
The attachment state of the volume
- `unattached`: Not attached to any virtual server instances or bare metal servers
- `attached`: At least one volume attachment to a virtual server instance or bare metal server exists. (even if the instance or server is stopped, or the server's operating system hasn't connected to the volume)
- `unusable`: Not able to be attached to any virtual server instances or bare metal servers
bandwidth
integer
The maximum bandwidth (in megabits per second) for the volume.
If the volume profile has a `bandwidth.type` of `dependent`, the bandwidth is calculated from the `iops` value.
The minimum and maximum limits for this property may expand in the future.
busy
boolean
Indicates whether this volume is performing an operation that must be serialized. This must be `false` to perform an operation that is specified to require serialization.
capacity
integer
The capacity to use for the volume (in gigabytes).
The minimum and maximum limits for this property may expand in the future.
catalog_offering
object
The catalog offering this volume was created from. If a virtual server instance is provisioned with a `boot_volume_attachment` specifying this volume, the virtual server instance will use this volume's catalog offering, including its pricing plan.
If absent, this volume was not created from a catalog offering.
created_at
string
The date and time that the volume was created
crn
string
The CRN for this volume
encryption
string
The type of encryption used on the volume
encryption_key
object
The root key used to wrap the data encryption key for the volume.
This property will be present for volumes with an `encryption` type of `user_managed`.
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this volume
id
string
The unique identifier for this volume
iops
integer
The maximum I/O operations per second (IOPS) for this volume.
name
string
The name for this volume. The name is unique across all volumes in the region.
operating_system
object
The operating system associated with this volume. If absent, this volume was not created from an image, or the image did not include an operating system.
profile
object
The profile for this volume.
resource_group
object
The resource group for this volume
resource_type
string
The resource type
software_attachments
VolumeSoftwareAttachments
The software attachments for this volume.
source_image
object
The image from which this volume was created (this may be deleted). If absent, this volume was not created from an image.
source_snapshot
object
The snapshot from which this volume was cloned
status
string
The status of the volume.
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
storage_generation
integer
The storage generation:
- `1`: The first storage generation
- `2`: The second storage generation
The enumerated values for this property may expand in the future.
user_tags
array
The user tags associated with this volume.
volume_attachments
array
The volume attachments for this volume.
zone
object
The zone this volume resides in
404 - A volume with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a volume
PATCH /volumes/{id}
This request updates a volume with the information in a provided volume patch. The volume patch object is structured in the same way as a retrieved volume and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.volume.volume.updateis.volume.volume.manage-allowed-useis.volume.volume.manage-attachment-mode
Auditing
Calling this method generates the following auditing event.
is.volume.volume.update
Request
Request Body
The volume patch
Path Parameters
Query Parameters
Response
200 - The volume was updated successfully
active
boolean
Indicates whether a running virtual server instance has an attachment to this volume.
adjustable_capacity_states
array
The attachment states that support adjustable capacity for this volume.
adjustable_iops_states
array
The attachment states that support adjustable IOPS for this volume.
allowed_use
object
The usage constraints to be matched against the requested instance or bare metal server properties to determine compatibility.
Only present for boot volumes.
attachment_mode
string
The attachment mode of the volume:
- `single`: volume can only be attached to a single bare metal server or instance concurrently.
- `multiple`: volume can be attached to multiple bare metal servers concurrently. Each bare metal server has full read write access to the volume. To maintain data consistency, the application using the volume must use volume reservations or use a data partitioning scheme.
Boot volumes must be `single`. Data volumes can be either `single` or `multiple`.
To attach to a volume with an `attachment_mode` of `single`, the `attachment_protocol` of the instance or bare metal server's volume attachment resource can be either `virtio_blk` or `nvme_tcp`.
To attach to a volume with an `attachment_mode` of `multiple`, the `attachment_protocol` of the instance or bare metal server's volume attachment resource must must be `nvme_tcp`.
Can only be changed when the `attachment_state` of the volume is `unattached`.
attachment_state
string
The attachment state of the volume
- `unattached`: Not attached to any virtual server instances or bare metal servers
- `attached`: At least one volume attachment to a virtual server instance or bare metal server exists. (even if the instance or server is stopped, or the server's operating system hasn't connected to the volume)
- `unusable`: Not able to be attached to any virtual server instances or bare metal servers
bandwidth
integer
The maximum bandwidth (in megabits per second) for the volume.
If the volume profile has a `bandwidth.type` of `dependent`, the bandwidth is calculated from the `iops` value.
The minimum and maximum limits for this property may expand in the future.
busy
boolean
Indicates whether this volume is performing an operation that must be serialized. This must be `false` to perform an operation that is specified to require serialization.
capacity
integer
The capacity to use for the volume (in gigabytes).
The minimum and maximum limits for this property may expand in the future.
catalog_offering
object
The catalog offering this volume was created from. If a virtual server instance is provisioned with a `boot_volume_attachment` specifying this volume, the virtual server instance will use this volume's catalog offering, including its pricing plan.
If absent, this volume was not created from a catalog offering.
created_at
string
The date and time that the volume was created
crn
string
The CRN for this volume
encryption
string
The type of encryption used on the volume
encryption_key
object
The root key used to wrap the data encryption key for the volume.
This property will be present for volumes with an `encryption` type of `user_managed`.
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this volume
id
string
The unique identifier for this volume
iops
integer
The maximum I/O operations per second (IOPS) for this volume.
name
string
The name for this volume. The name is unique across all volumes in the region.
operating_system
object
The operating system associated with this volume. If absent, this volume was not created from an image, or the image did not include an operating system.
profile
object
The profile for this volume.
resource_group
object
The resource group for this volume
resource_type
string
The resource type
software_attachments
VolumeSoftwareAttachments
The software attachments for this volume.
source_image
object
The image from which this volume was created (this may be deleted). If absent, this volume was not created from an image.
source_snapshot
object
The snapshot from which this volume was cloned
status
string
The status of the volume.
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
storage_generation
integer
The storage generation:
- `1`: The first storage generation
- `2`: The second storage generation
The enumerated values for this property may expand in the future.
user_tags
array
The user tags associated with this volume.
volume_attachments
array
The volume attachments for this volume.
zone
object
The zone this volume resides in
400 - An invalid volume patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A volume with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The volume patch conflicts with another volume in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the volume
errors
array
The errors that occurred.
trace
string
The unique error identifier
List instance profiles compatible with a volume
GET /volumes/{id}/instance_profiles
This request lists instance profiles compatible with a volume's `allowed_use.instance`, `operating_system.architecture` and `operating_system.user_data_format` properties, sorted by ascending `name` property values. The specified volume must be bootable (have an `operating_system` property).
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.volume.volume.read
Auditing
Calling this method generates the following auditing event.
is.volume.volume.read
Request
Response
200 - The instance profiles were retrieved successfully
first
object
A link to the first page of resources
instance_profiles
array
A page of instance profiles compatible with the volume
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
400 - The volume with the specified identifier is not bootable.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A volume with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /volumes/{volume_id}/jobs
This request lists jobs for a volume. Each job represents an action performed on the volume and includes metadata such as:
- `job_type`: Currently, only the `migrate` job type is supported.
- `status`: Indicates the current state of the job (e.g., queued, running, succeeded, failed).
The jobs will be sorted by their `created_at` property values, with newest jobs first.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.volume.volume.read
Auditing
Calling this method generates the following auditing event.
is.volume.volume-job.list
Request
Response
200 - The volume jobs were retrieved successfully.
first
object
A link to the first page of resources
jobs
array
The jobs for this volume.
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
Create a job for a volume
POST /volumes/{volume_id}/jobs
This request creates and queues a new job for the volume specified in the URL using the volume job prototype object.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.volume.volume.updateis.volume.volume-job.create
Auditing
Calling this method generates the following auditing event.
is.volume.volume.updateis.volume.volume-job.create
Request
Request Body
VolumeJobPrototype
The volume job prototype object
job_type
Required *
string
The type of job this volume job will perform.
- `migrate`: Migrates a volume to a new `storage_generation` profile. During the migration process, the volume will be `busy`.
name
string
The name for this volume job. The name must not be used by another job for this volume. If unspecified, the name will be a hyphenated list of randomly-selected words.
Response
201 - The volume job was created successfully.
auto_delete
boolean
Indicates whether this volume job will be automatically deleted after it completes. At present, this is always `false`, but may be modifiable in the future.
completed_at
string
The date and time that the volume job was completed.
If absent, the volume job has not yet completed.
created_at
string
The date and time that the volume job was created.
estimated_completion_at
string
The date and time that the volume job is estimated to complete.
If absent, the volume job is still queued and has not yet started.
href
string
The URL for this volume job
id
string
The unique identifier for this volume job
job_type
string
The type of volume job.
- `migrate`: Migrates a volume to a new `storage_generation` profile. During the migration process, the volume will be `busy`.
The enumerated values for this property may expand in the future.
name
string
The name for this volume job. The name must not be used by another job for this volume.
resource_type
string
The resource type
started_at
string
The date and time that the volume job was started.
If absent, the volume job has not yet started.
status
string
The status of this volume job:
- `canceled`: the job is canceled
- `canceling`: the job is being canceled
- `deleting`: the job is being deleted
- `failed`: the job could not be completed successfully
- `queued`: the job is queued
- `running`: the job is in progress
- `succeeded`: the job completed successfully
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
400 - An invalid volume job prototype object was provided, or the volume has a profile that
cannot be migrated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The job is not allowed to be created for this volume.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The volume job conflicts with another job for the volume, or the specified volume
cannot be migrated in its current state.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a volume job
DELETE /volumes/{volume_id}/jobs/{id}
This request deletes a volume job. This operation cannot be reversed. If the job has not completed, the job will be canceled, and the incomplete volume job will be deleted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.volume.volume.updateis.volume.volume-job.delete
Auditing
Calling this method generates the following auditing event.
is.volume.volume-job.delete
Request
Response
202 - The volume job deletion request was accepted.
404 - The specified volume job could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The volume job cannot be deleted while in `running` state.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a volume job
GET /volumes/{volume_id}/jobs/{id}
This request retrieves a single volume job specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.volume.volume.read
Auditing
Calling this method generates the following auditing event.
is.volume.volume-job.read
Request
Response
200 - The volume job was retrieved successfully.
auto_delete
boolean
Indicates whether this volume job will be automatically deleted after it completes. At present, this is always `false`, but may be modifiable in the future.
completed_at
string
The date and time that the volume job was completed.
If absent, the volume job has not yet completed.
created_at
string
The date and time that the volume job was created.
estimated_completion_at
string
The date and time that the volume job is estimated to complete.
If absent, the volume job is still queued and has not yet started.
href
string
The URL for this volume job
id
string
The unique identifier for this volume job
job_type
string
The type of volume job.
- `migrate`: Migrates a volume to a new `storage_generation` profile. During the migration process, the volume will be `busy`.
The enumerated values for this property may expand in the future.
name
string
The name for this volume job. The name must not be used by another job for this volume.
resource_type
string
The resource type
started_at
string
The date and time that the volume job was started.
If absent, the volume job has not yet started.
status
string
The status of this volume job:
- `canceled`: the job is canceled
- `canceling`: the job is being canceled
- `deleting`: the job is being deleted
- `failed`: the job could not be completed successfully
- `queued`: the job is queued
- `running`: the job is in progress
- `succeeded`: the job completed successfully
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
404 - The specified volume job could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a volume job
PATCH /volumes/{volume_id}/jobs/{id}
This request updates an volume job with the information in a provided volume job patch. The volume job patch object is structured in the same way as a retrieved volume job and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.volume.volume-job.update
Auditing
Calling this method generates the following auditing event.
is.volume.volume-job.update
Request
Request Body
The volume job patch
Response
200 - The volume job was updated successfully.
auto_delete
boolean
Indicates whether this volume job will be automatically deleted after it completes. At present, this is always `false`, but may be modifiable in the future.
completed_at
string
The date and time that the volume job was completed.
If absent, the volume job has not yet completed.
created_at
string
The date and time that the volume job was created.
estimated_completion_at
string
The date and time that the volume job is estimated to complete.
If absent, the volume job is still queued and has not yet started.
href
string
The URL for this volume job
id
string
The unique identifier for this volume job
job_type
string
The type of volume job.
- `migrate`: Migrates a volume to a new `storage_generation` profile. During the migration process, the volume will be `busy`.
The enumerated values for this property may expand in the future.
name
string
The name for this volume job. The name must not be used by another job for this volume.
resource_type
string
The resource type
started_at
string
The date and time that the volume job was started.
If absent, the volume job has not yet started.
status
string
The status of this volume job:
- `canceled`: the job is canceled
- `canceling`: the job is being canceled
- `deleting`: the job is being deleted
- `failed`: the job could not be completed successfully
- `queued`: the job is queued
- `running`: the job is in progress
- `succeeded`: the job completed successfully
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
400 - An invalid volume job patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - An volume job with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The volume job patch conflicts with another job for this volume.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Cancel a queued or running volume job
POST /volumes/{volume_id}/jobs/{id}/cancel
This request cancels a `queued` or `running` volume job.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.volume.volume.updateis.volume.volume-job.update
Auditing
Calling this method generates the following auditing event.
is.volume.volume-job.cancel
Request
Response
202 - The volume job cancellation request was accepted.
auto_delete
boolean
Indicates whether this volume job will be automatically deleted after it completes. At present, this is always `false`, but may be modifiable in the future.
completed_at
string
The date and time that the volume job was completed.
If absent, the volume job has not yet completed.
created_at
string
The date and time that the volume job was created.
estimated_completion_at
string
The date and time that the volume job is estimated to complete.
If absent, the volume job is still queued and has not yet started.
href
string
The URL for this volume job
id
string
The unique identifier for this volume job
job_type
string
The type of volume job.
- `migrate`: Migrates a volume to a new `storage_generation` profile. During the migration process, the volume will be `busy`.
The enumerated values for this property may expand in the future.
name
string
The name for this volume job. The name must not be used by another job for this volume.
resource_type
string
The resource type
started_at
string
The date and time that the volume job was started.
If absent, the volume job has not yet started.
status
string
The status of this volume job:
- `canceled`: the job is canceled
- `canceling`: the job is being canceled
- `deleting`: the job is being deleted
- `failed`: the job could not be completed successfully
- `queued`: the job is queued
- `running`: the job is in progress
- `succeeded`: the job completed successfully
The enumerated values for this property may expand in the future.
status_reasons
array
The reasons for the current status (if any).
400 - The volume job is not `queued` or `running` and can not be canceled.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified volume job could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /volumes/{volume_id}/software_attachments
This request lists software attachments associated with a volume.
The volume software attachments will be sorted by their `created_at` property values, with newest volume software attachments first. Software attachments with identical `created_at` property values will in turn be sorted by ascending `name` property values.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.volume.volume.readis.volume.volume.list
Auditing
Calling this method generates the following auditing event.
is.volume.software-attachment.read
Request
Response
200 - The volume software attachments were retrieved successfully.
software_attachments
array
The software attachments for the volume
404 - A volume with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a volume software attachment
GET /volumes/{volume_id}/software_attachments/{id}
This request retrieves a single volume software attachment specified by identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.volume.volume.read
Auditing
Calling this method generates the following auditing event.
is.volume.software-attachment.read
Request
Response
200 - The volume software attachment was retrieved successfully.
catalog_offering
VolumeSoftwareAttachmentCatalogOffering
The catalog offering for this volume software attachment. May be absent if `software_attachment.lifecycle_state` is not `stable`.
created_at
string
The date and time that the volume software attachment was created.
entitlement
VolumeSoftwareAttachmentEntitlement
The entitlement for the volume software attachment's licensable software.
href
string
The URL for this volume software attachment.
id
string
The unique identifier for this volume software attachment.
name
string
The name for this volume software attachment. The name is unique across all software attachments for the volume.
resource_type
string
The resource type
404 - A volume with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a volume software attachment
PATCH /volumes/{volume_id}/software_attachments/{id}
This request updates a volume software attachment with the information provided in a volume software attachment patch object. The volume software attachment patch object is structured in the same way as a retrieved volume software attachment and needs to contain only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.volume.volume.update
Auditing
Calling this method generates the following auditing event.
is.volume.software-attachment.update
Request
Request Body
The volume software attachment patch
Response
200 - The volume software attachment was updated successfully.
catalog_offering
VolumeSoftwareAttachmentCatalogOffering
The catalog offering for this volume software attachment. May be absent if `software_attachment.lifecycle_state` is not `stable`.
created_at
string
The date and time that the volume software attachment was created.
entitlement
VolumeSoftwareAttachmentEntitlement
The entitlement for the volume software attachment's licensable software.
href
string
The URL for this volume software attachment.
id
string
The unique identifier for this volume software attachment.
name
string
The name for this volume software attachment. The name is unique across all software attachments for the volume.
resource_type
string
The resource type
400 - An invalid volume software attachment patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The volume software attachment is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A volume software attachment with the specified identifier could not be found for the
specified volume.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The volume software attachment patch conflicts with another volume software
attachment on the volume.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List VPCs
GET /vpcs
This request lists VPCs in the region. A VPC is a virtual network that belongs to an account and provides logical isolation from other networks. A VPC is made up of resources in one or more zones. VPCs are regional, and each VPC can contain resources in multiple zones in a region.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.vpc.listis.vpc.vpc.read
Auditing
Calling this method generates the following auditing event.
is.vpc.vpc.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
classic_access
boolean
Filters the collection to VPCs with a `classic_access` property matching the specified value.
Response
200 - The VPCs were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
vpcs
array
A page of VPCs
Create a VPC
POST /vpcs
This request creates a new VPC from a VPC prototype object. The prototype object is structured in the same way as a retrieved VPC, and contains the information necessary to create the new VPC.
The system will automatically create the following additional resources for the VPC:
- Unless `address_prefix_management` is `manual`, a default address prefix for each zone
- A default network ACL
- A default routing table
- A default security group
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.vpc.create
Auditing
Calling this method generates the following auditing event.
is.vpc.vpc.create
Request
Request Body
VPCPrototype
The VPC prototype object
address_prefix_management
string
Indicates whether a default address prefix will be automatically created for each zone in this VPC. If `manual`, this VPC will be created with no default address prefixes.
Since address prefixes are managed identically regardless of whether they were automatically created, the value is not preserved as a VPC property.
classic_access
boolean
Indicates whether this VPC will be connected to Classic Infrastructure. If true, this VPC's resources will have private network connectivity to the account's Classic Infrastructure resources. Only one VPC, per region, may be connected in this way. This value is set at creation and subsequently immutable.
Setting this property to `true` is supported only for accounts that have been granted approval. Instead, use a Transit Gateway to connect this VPC to Classic Infrastructure.
dns
VPCDNSPrototype
The DNS configuration for this VPC.
If unspecified, the system will assign DNS servers capable of resolving hosts and endpoint gateways within this VPC, and hosts on the internet.
enable_hub
boolean
Indicates whether this VPC is enabled as a DNS name resolution hub.
resolver
object
name
string
The name for this VPC. The name must not be used by another VPC in the region. If unspecified, the name will be a hyphenated list of randomly-selected words.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
Response
201 - The VPC was created successfully.
classic_access
boolean
Indicates whether this VPC is connected to Classic Infrastructure. If true, this VPC's resources have private network connectivity to the account's Classic Infrastructure resources.
created_at
string
The date and time that the VPC was created
crn
string
The CRN for this VPC
cse_source_ips
array
The CSE (Cloud Service Endpoint) source IP addresses for the VPC. The VPC will have at least one CSE source IP address per zone.
The maximum number of items for this property may expand in the future.
default_network_acl
object
The default network ACL to use for subnets created in this VPC.
default_routing_table
object
The default routing table to use for subnets created in this VPC.
default_security_group
object
The default security group for this VPC. Resources created in this VPC that allow a security group to be optionally specified will use this security group by default.
dns
VPCDNS
The DNS configuration for this VPC.
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this VPC
id
string
The unique identifier for this VPC
name
string
The name for this VPC. The name is unique across all VPCs in the region.
public_address_ranges
array
The public address ranges attached to this VPC.
resource_group
object
The resource group for this VPC
resource_type
string
The resource type
status
string
The status of this VPC.
The enumerated values for this property may expand in the future.
400 - An invalid VPC prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - A VPC with the specified prototype is not allowed to be created.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The VPC prototype object conflicts with another VPC in the region.
errors
array
The errors that occurred.
trace
string
The unique error identifier
DELETE /vpcs/{id}
This request deletes a VPC. This operation cannot be reversed.
For this request to succeed:
- Instances, subnets, public gateways, endpoint gateways, and private path service gateways must not reside in this VPC
- The VPC must not be providing DNS resolution for any other VPCs
- If `dns.enable_hub` is `true`, `dns.resolution_binding_count` must be zero
All security groups and network ACLs associated with the VPC are automatically deleted. All flow log collectors with `auto_delete` set to `true` targeting the VPC or any resource in the VPC are automatically deleted. All public address ranges attached to the VPC are automatically detached.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.vpc.delete
Auditing
Calling this method generates the following auditing event.
is.vpc.vpc.deleteis.flow-log-collector.flow-log-collector.deleteis.flow-log-collector.flow-log-collector.detachis.vpc.vpc.detachis.public-address-range.public-address-range.detach
Request
Path Parameters
Query Parameters
Response
204 - The VPC was deleted successfully.
404 - A VPC with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The VPC is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a VPC
GET /vpcs/{id}
This request retrieves a single VPC specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.vpc.read
Auditing
Calling this method generates the following auditing event.
is.vpc.vpc.read
Request
Response
200 - The VPC was retrieved successfully.
classic_access
boolean
Indicates whether this VPC is connected to Classic Infrastructure. If true, this VPC's resources have private network connectivity to the account's Classic Infrastructure resources.
created_at
string
The date and time that the VPC was created
crn
string
The CRN for this VPC
cse_source_ips
array
The CSE (Cloud Service Endpoint) source IP addresses for the VPC. The VPC will have at least one CSE source IP address per zone.
The maximum number of items for this property may expand in the future.
default_network_acl
object
The default network ACL to use for subnets created in this VPC.
default_routing_table
object
The default routing table to use for subnets created in this VPC.
default_security_group
object
The default security group for this VPC. Resources created in this VPC that allow a security group to be optionally specified will use this security group by default.
dns
VPCDNS
The DNS configuration for this VPC.
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this VPC
id
string
The unique identifier for this VPC
name
string
The name for this VPC. The name is unique across all VPCs in the region.
public_address_ranges
array
The public address ranges attached to this VPC.
resource_group
object
The resource group for this VPC
resource_type
string
The resource type
status
string
The status of this VPC.
The enumerated values for this property may expand in the future.
404 - A VPC with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a VPC
PATCH /vpcs/{id}
This request updates a VPC with the information provided in a VPC patch object. The patch object is structured in the same way as a retrieved VPC and needs to contain only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.vpc.update
Auditing
Calling this method generates the following auditing event.
is.vpc.vpc.update
Request
Request Body
The VPC patch
Path Parameters
Query Parameters
Response
200 - The VPC was updated successfully.
classic_access
boolean
Indicates whether this VPC is connected to Classic Infrastructure. If true, this VPC's resources have private network connectivity to the account's Classic Infrastructure resources.
created_at
string
The date and time that the VPC was created
crn
string
The CRN for this VPC
cse_source_ips
array
The CSE (Cloud Service Endpoint) source IP addresses for the VPC. The VPC will have at least one CSE source IP address per zone.
The maximum number of items for this property may expand in the future.
default_network_acl
object
The default network ACL to use for subnets created in this VPC.
default_routing_table
object
The default routing table to use for subnets created in this VPC.
default_security_group
object
The default security group for this VPC. Resources created in this VPC that allow a security group to be optionally specified will use this security group by default.
dns
VPCDNS
The DNS configuration for this VPC.
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this VPC
id
string
The unique identifier for this VPC
name
string
The name for this VPC. The name is unique across all VPCs in the region.
public_address_ranges
array
The public address ranges attached to this VPC.
resource_group
object
The resource group for this VPC
resource_type
string
The resource type
status
string
The status of this VPC.
The enumerated values for this property may expand in the future.
400 - An invalid VPC patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A VPC with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The VPC patch conflicts with another VPC in the region, or
the VPC patch has one or more of:
- `dns.enable_hub` incompatible with `dns.resolution_binding_count`
- `dns.enable_hub` incompatible with `dns_resolution_binding_mode` values for endpoint gateways residing in the VPC
- `dns.resolver.type` incompatible with `dns.resolver.servers`
- `dns.resolver.type` incompatible with `dns.resolver.vpc`
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a VPC's default network ACL
GET /vpcs/{id}/default_network_acl
This request retrieves the default network ACL for the VPC specified by the identifier in the URL. The default network ACL is applied to any new subnets in the VPC which do not specify a network ACL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.network-acl.network-acl.read
Auditing
Calling this method generates the following auditing event.
Request
Response
200 - The default network ACL was retrieved successfully.
created_at
string
The date and time that the network ACL was created
crn
string
The CRN for this network ACL
href
string
The URL for this network ACL
id
string
The unique identifier for this network ACL
name
string
The name of the default network ACL created for a VPC. The name will be a hyphenated list of randomly-selected words at creation, but may be changed.
resource_group
object
The resource group for the default network ACL for a VPC. Set to the VPC's resource group at creation.
rules
array
The ordered rules for the default network ACL for a VPC. Created with:
- The first rule, named `allow-inbound`, allowing ICMP, TCP and UDP inbound traffic.
- The second rule, named `allow-outbound`, allowing ICMP, TCP, and UDP outbound traffic.
Rules for the default network ACL may be changed, added, or removed.
subnets
array
The subnets to which this network ACL is attached
vpc
object
The VPC this network ACL resides in
404 - The specified VPC could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a VPC's default routing table
GET /vpcs/{id}/default_routing_table
This request retrieves the default routing table for the VPC specified by the identifier in the URL. The default routing table is associated with any subnets in the VPC which have not been explicitly associated with another routing table.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.routing-table.read
Auditing
Calling this method generates the following auditing event.
is.vpc.routing-table.read
Request
Response
200 - The default routing table was retrieved successfully.
accept_routes_from
array
The filters specifying the resources that may create routes in this routing table.
Created with filters allowing `vpn_gateway` and `vpn_server` resources to create routes, but filters may be added or removed with subsequent requests.
The resources and types of filters supported by this property is expected to expand in the future.
advertise_routes_to
array
The ingress sources to advertise routes to. Routes in the table with `advertise` enabled will be advertised to these sources.
The enumerated values for this property may expand in the future.
created_at
string
The date and time that this routing table was created
crn
string
The CRN for this VPC routing table
href
string
The URL for this routing table
id
string
The unique identifier for this routing table
is_default
boolean
Indicates whether this is the default routing table for this VPC
lifecycle_state
object
The lifecycle state of the routing table
name
string
The name of the default routing table created for this VPC. The name will be a hyphenated list of randomly-selected words at creation, but may be changed.
resource_group
object
The resource group for this routing table
resource_type
string
The resource type
route_direct_link_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from Direct Link to this VPC.
Set to `false` at VPC creation, but may be updated with subsequent requests.
Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
route_internet_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from the internet.
Set to `false` at VPC creation, but may be updated with subsequent requests.
Incoming traffic will be routed according to the routing table with two exceptions:
- Traffic destined for IP addresses associated with public gateways will not be subject to routes in this routing table.
- Routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
route_transit_gateway_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from from Transit Gateway to this VPC.
Set to `false` at VPC creation, but may be updated with subsequent requests.
Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
route_vpc_zone_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from subnets in other zones in this VPC.
Set to `false` at VPC creation, but may be updated with subsequent requests.
Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
routes
array
The routes for the default routing table for this VPC. The table is created with no routes, but routes may be added, changed, or removed with a subsequent request.
subnets
array
The subnets to which this routing table is attached
404 - The specified VPC could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a VPC's default security group
GET /vpcs/{id}/default_security_group
This request retrieves the default security group for the VPC specified by the identifier in the URL. Resources created in this VPC that allow a security group to be optionally specified will use this security group by default.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.security-group.security-group.read
Auditing
Calling this method generates the following auditing event.
Request
Response
200 - The default security group was retrieved successfully.
created_at
string
The date and time that this security group was created
crn
string
The CRN for this security group
href
string
The URL for this security group
id
string
The unique identifier for this security group
name
string
The name for the default security group for a VPC. The name will be a hyphenated list of randomly-selected words at creation, but may changed.
resource_group
object
The resource group for this security group
rules
array
The rules for the default security group for a VPC. Created with:
- A rule named `inbound-icmp-tcp-udp-from-this-security-group` allowing inbound ICMP, TCP and UDP traffic from other interfaces in the VPC's default security group
- A rule named `outbound-icmp-tcp-udp` allowing outbound ICMP, TCP and UDP traffic to any destination
Rules for the default security group may be changed, added or removed.
targets
array
The targets for this security group.
vpc
object
The VPC this security group resides in
404 - The specified VPC could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List address prefixes for a VPC
GET /vpcs/{vpc_id}/address_prefixes
This request lists address pool prefixes for a VPC.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.vpc.read
Auditing
Calling this method generates the following auditing event.
is.vpc.address-prefix.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The address prefixes were retrieved successfully.
address_prefixes
array
A page of address prefixes for the VPC
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - The specified VPC could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create an address prefix for a VPC
POST /vpcs/{vpc_id}/address_prefixes
This request creates a new prefix from a prefix prototype object. The prototype object is structured in the same way as a retrieved prefix, and contains the information necessary to create the new prefix.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.vpc.update
Auditing
Calling this method generates the following auditing event.
is.vpc.address-prefix.create
Request
Request Body
AddressPrefixPrototype
The prefix prototype object
cidr
Required *
string
The IPv4 range of the address prefix, expressed in CIDR format. The range must not overlap with any existing address prefixes in the VPC or any of the following reserved address ranges:
- `127.0.0.0/8` (IPv4 loopback addresses)
- `161.26.0.0/16` (IBM services)
- `166.8.0.0/14` (Cloud Service Endpoints)
- `169.254.0.0/16` (IPv4 link-local addresses)
- `224.0.0.0/4` (IPv4 multicast addresses)
The prefix length of the address prefix's CIDR must be between `/9` (8,388,608 addresses) and `/29` (8 addresses).
is_default
boolean
Indicates whether this will be the default address prefix for this zone in this VPC. If `true`, the VPC must not have a default address prefix for this zone.
name
string
The name for this address prefix. The name must not be used by another address prefix for the VPC. If unspecified, the name will be a hyphenated list of randomly-selected words.
zone
Required *
object
Identifies a zone by a unique property.
Response
201 - The prefix was created successfully.
cidr
string
The CIDR block for this address prefix
created_at
string
The date and time that this address prefix was created
has_subnets
boolean
Indicates whether subnets exist with addresses from this address prefix.
href
string
The URL for this address prefix
id
string
The unique identifier for this address prefix
is_default
boolean
Indicates whether this is the default prefix for this zone in this VPC. If a default prefix was automatically created when the VPC was created, the prefix is automatically named using a hyphenated list of randomly-selected words, but may be changed.
name
string
The name for this address prefix. The name must not be used by another address prefix for the VPC.
zone
object
The zone this address prefix resides in
400 - An invalid prefix prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified VPC could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The prefix prototype object conflicts with another prefix in the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete an address prefix
DELETE /vpcs/{vpc_id}/address_prefixes/{id}
This request deletes a prefix. This operation cannot be reversed. The request will fail if any subnets use addresses from this prefix.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.vpc.update
Auditing
Calling this method generates the following auditing event.
is.vpc.address-prefix.delete
Request
Response
204 - The address prefix was deleted successfully.
404 - An address prefix with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The address prefix is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve an address prefix
GET /vpcs/{vpc_id}/address_prefixes/{id}
This request retrieves a single prefix specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.vpc.read
Auditing
Calling this method generates the following auditing event.
is.vpc.address-prefix.read
Request
Response
200 - The prefix was retrieved successfully.
cidr
string
The CIDR block for this address prefix
created_at
string
The date and time that this address prefix was created
has_subnets
boolean
Indicates whether subnets exist with addresses from this address prefix.
href
string
The URL for this address prefix
id
string
The unique identifier for this address prefix
is_default
boolean
Indicates whether this is the default prefix for this zone in this VPC. If a default prefix was automatically created when the VPC was created, the prefix is automatically named using a hyphenated list of randomly-selected words, but may be changed.
name
string
The name for this address prefix. The name must not be used by another address prefix for the VPC.
zone
object
The zone this address prefix resides in
404 - A prefix with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update an address prefix
PATCH /vpcs/{vpc_id}/address_prefixes/{id}
This request updates a prefix with the information in a provided prefix patch. The prefix patch object is structured in the same way as a retrieved prefix and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.vpc.update
Auditing
Calling this method generates the following auditing event.
is.vpc.address-prefix.update
Request
Request Body
The prefix patch
Response
200 - The prefix was updated successfully.
cidr
string
The CIDR block for this address prefix
created_at
string
The date and time that this address prefix was created
has_subnets
boolean
Indicates whether subnets exist with addresses from this address prefix.
href
string
The URL for this address prefix
id
string
The unique identifier for this address prefix
is_default
boolean
Indicates whether this is the default prefix for this zone in this VPC. If a default prefix was automatically created when the VPC was created, the prefix is automatically named using a hyphenated list of randomly-selected words, but may be changed.
name
string
The name for this address prefix. The name must not be used by another address prefix for the VPC.
zone
object
The zone this address prefix resides in
400 - An invalid prefix patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A prefix with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The prefix patch conflicts with another prefix in the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /vpcs/{vpc_id}/dns_resolution_bindings
This request lists DNS resolution bindings for a VPC. A DNS resolution binding represents an association with another VPC for centralizing DNS name resolution.
If the VPC specified by the identifier in the URL is a DNS hub VPC (has `dns.enable_hub` set to `true`) then there is one binding for each VPC bound to the hub VPC. The endpoint gateways in the bound VPCs can allow (using `dns_resolution_binding_mode`) the hub VPC to centralize resolution of their DNS names.
If the VPC specified by the identifier in the URL is not a DNS hub VPC, then there is at most one binding (to a hub VPC). The endpoint gateways in the VPC specified by the identifier in the URL can allow (using `dns_resolution_binding_mode`) its hub VPC to centralize resolution of their DNS names.
To make use of centralized DNS resolution, a VPC bound to a DNS hub VPC must delegate DNS resolution to its hub VPC by setting `dns.resolver.type` to `delegate`.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.dns-resolution-binding.list
Auditing
Calling this method generates the following auditing event.
is.vpc.dns-resolution-binding.list
Request
Path Parameters
Query Parameters
sort
string
Sorts the returned collection by the specified property name in ascending order. A `-` may be prepended to the name to sort in descending order. For example, the value `-created_at` sorts the collection by the `created_at` property in descending order, and the value `name` sorts it by the `name` property in ascending order.
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
name
string
Filters the collection to resources with a `name` property matching the exact specified name.
vpc.id
Filters the collection to resources with a `vpc.id` property matching the specified identifier.
vpc.crn
string
Filters the collection to resources with a `vpc.crn` property matching the specified CRN.
vpc.name
string
Filters the collection to resources with a `vpc.name` property matching the exact specified name.
account.id
Filters the collection to resources with a `vpc.remote.account.id` property matching the specified account identifier.
Response
200 - The DNS resolution bindings were retrieved successfully.
dns_resolution_bindings
array
A page of DNS resolution bindings for the VPC
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - The specified VPC could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
- The VPC in the topology with `dns.enable_hub` set to `true` must have an endpoint gateway with the same `target` as the endpoint gateway in this VPC, and with `dns_resolution_binding_mode` set to `primary`.
- No other VPC in the topology can have an endpoint gateway with a resource binding using the same `service_endpoint` as a resource binding for the endpoint gateway in this VPC.
See About DNS sharing for VPE gateways for more information.">
Create a DNS resolution binding
POST /vpcs/{vpc_id}/dns_resolution_bindings
This request creates a new DNS resolution binding from a DNS resolution binding prototype object. The prototype object is structured in the same way as a retrieved DNS resolution binding, and contains the information necessary to create the new DNS resolution binding.
For this request to succeed:
- The VPC specified by the identifier in the URL must not already have a DNS resolution binding
- The VPC specified by the identifier in the URL must have `dns.enable_hub` set to `false`
- The updated DNS sharing connected topology must not contain more than one endpoint gateway with `dns_resolution_binding_mode` set to `primary` targeting the same service.
Additionally, if the VPC specified by the identifier in the URL has endpoint gateways that have `dns_resolution_binding_mode` set to `per_resource_binding`, then those endpoint gateways will participate in DNS sharing with all VPCs in the connected topology. If this VPC contains an endpoint gateway targeting a service that has resource binding enabled, then for this request to succeed:
- The VPC in the topology with `dns.enable_hub` set to `true` must have an endpoint gateway with the same `target` as the endpoint gateway in this VPC, and with `dns_resolution_binding_mode` set to `primary`.
- No other VPC in the topology can have an endpoint gateway with a resource binding using the same `service_endpoint` as a resource binding for the endpoint gateway in this VPC.
See About DNS sharing for VPE gateways for more information.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.vpc.readis.vpc.dns-resolution-binding.createis.vpc.dns-resolution-binding.connect
Auditing
Calling this method generates the following auditing event.
is.vpc.vpc.updateis.vpc.dns-resolution-binding.createis.vpc.dns-resolution-binding.connect
Request
Request Body
VPCDNSResolutionBindingPrototype
The DNS resolution binding prototype object
name
string
The name for this DNS resolution binding. The name must not be used by another DNS resolution binding for the VPC. If unspecified, the name will be a hyphenated list of randomly-selected words.
vpc
Required *
object
The VPC to bind this VPC to for DNS resolution. The VPC must be different from the VPC specified in the URL, must have `dns.enable_hub` set to `true`, and may be in a different account (subject to IAM policies).
Additionally, the VPC specified in the URL (this VPC) must have `dns.enable_hub` set to `false` and a `dns.resolution_binding_count` of zero.
Response
201 - The DNS resolution binding was created successfully.
created_at
string
The date and time that the DNS resolution binding was created.
endpoint_gateways
array
The endpoint gateways that have `dns_resolution_binding_mode` set to either `primary` or `per_resource_binding` and reside in the VPC that has `dns.enable_hub` set to `false`.
The endpoint gateways may be remote and therefore may not be directly retrievable.
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this DNS resolution binding
id
string
The unique identifier for this DNS resolution binding
lifecycle_state
object
The lifecycle state of the DNS resolution binding.
name
string
The name for this DNS resolution binding. The name is unique across all DNS resolution bindings for the VPC.
resource_type
string
The resource type
vpc
object
The VPC bound to for DNS resolution.
The VPC may be remote and therefore may not be directly retrievable.
400 - An invalid DNS resolution binding prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The DNS resolution binding prototype object conflicts with another DNS resolution
binding in the VPC, or specified a VPC that cannot create a binding in its current state.
errors
array
The errors that occurred.
trace
string
The unique error identifier
DELETE /vpcs/{vpc_id}/dns_resolution_bindings/{id}
This request deletes a DNS resolution binding. This operation cannot be reversed.
For this request to succeed, the VPC specified by the identifier in the URL must not have `dns.resolver.type` set to `delegated`.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.dns-resolution-binding.deleteis.vpc.dns-resolution-binding.disconnect
Auditing
Calling this method generates the following auditing event.
is.vpc.vpc.updateis.vpc.dns-resolution-binding.deleteis.vpc.dns-resolution-binding.disconnect
Request
Response
202 - The DNS resolution binding deletion request was accepted.
created_at
string
The date and time that the DNS resolution binding was created.
endpoint_gateways
array
The endpoint gateways that have `dns_resolution_binding_mode` set to either `primary` or `per_resource_binding` and reside in the VPC that has `dns.enable_hub` set to `false`.
The endpoint gateways may be remote and therefore may not be directly retrievable.
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this DNS resolution binding
id
string
The unique identifier for this DNS resolution binding
lifecycle_state
object
The lifecycle state of the DNS resolution binding.
name
string
The name for this DNS resolution binding. The name is unique across all DNS resolution bindings for the VPC.
resource_type
string
The resource type
vpc
object
The VPC bound to for DNS resolution.
The VPC may be remote and therefore may not be directly retrievable.
404 - A DNS resolution binding with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The DNS resolution binding is for a VPC that has delegated DNS resolution to the VPC
specified in the DNS resolution binding.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a DNS resolution binding
GET /vpcs/{vpc_id}/dns_resolution_bindings/{id}
This request retrieves a single DNS resolution binding specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.dns-resolution-binding.read
Auditing
Calling this method generates the following auditing event.
is.vpc.dns-resolution-binding.read
Request
Response
200 - The DNS resolution binding was retrieved successfully.
created_at
string
The date and time that the DNS resolution binding was created.
endpoint_gateways
array
The endpoint gateways that have `dns_resolution_binding_mode` set to either `primary` or `per_resource_binding` and reside in the VPC that has `dns.enable_hub` set to `false`.
The endpoint gateways may be remote and therefore may not be directly retrievable.
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this DNS resolution binding
id
string
The unique identifier for this DNS resolution binding
lifecycle_state
object
The lifecycle state of the DNS resolution binding.
name
string
The name for this DNS resolution binding. The name is unique across all DNS resolution bindings for the VPC.
resource_type
string
The resource type
vpc
object
The VPC bound to for DNS resolution.
The VPC may be remote and therefore may not be directly retrievable.
404 - A DNS resolution binding with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a DNS resolution binding
PATCH /vpcs/{vpc_id}/dns_resolution_bindings/{id}
This request updates a DNS resolution binding with the information in a provided DNS resolution binding patch. The DNS resolution binding patch object is structured in the same way as a retrieved DNS resolution binding and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.dns-resolution-binding.update
Auditing
Calling this method generates the following auditing event.
is.vpc.dns-resolution-binding.update
Request
Request Body
The DNS resolution binding patch
Response
200 - The DNS resolution binding was updated successfully.
created_at
string
The date and time that the DNS resolution binding was created.
endpoint_gateways
array
The endpoint gateways that have `dns_resolution_binding_mode` set to either `primary` or `per_resource_binding` and reside in the VPC that has `dns.enable_hub` set to `false`.
The endpoint gateways may be remote and therefore may not be directly retrievable.
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this DNS resolution binding
id
string
The unique identifier for this DNS resolution binding
lifecycle_state
object
The lifecycle state of the DNS resolution binding.
name
string
The name for this DNS resolution binding. The name is unique across all DNS resolution bindings for the VPC.
resource_type
string
The resource type
vpc
object
The VPC bound to for DNS resolution.
The VPC may be remote and therefore may not be directly retrievable.
400 - An invalid DNS resolution binding patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A DNS resolution binding with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The DNS resolution binding patch conflicts with another DNS resolution
binding in the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List routes in a VPC's default routing table
GET /vpcs/{vpc_id}/routes
This request lists routes in the VPC's default routing table. Each route is zone-specific and directs any packets matching its destination CIDR block to a `next_hop` IP address. The most specific route matching a packet's destination will be used. If multiple equally-specific routes exist, traffic will be distributed across them.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.routing-table.read
Auditing
Calling this method generates the following auditing event.
is.vpc.routing-table-route.read
Request
Path Parameters
Query Parameters
zone.name
string
Filters the collection to resources with a `zone.name` property matching the exact specified name.
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The routes were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
routes
array
A page of routes in the VPC default routing table
total_count
integer
The total number of resources across all pages
404 - The specified VPC could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a route in a VPC's default routing table
POST /vpcs/{vpc_id}/routes
This request creates a new route in the VPC's default routing table. The route prototype object is structured in the same way as a retrieved route, and contains the information necessary to create the new route. The request will fail if the new route will cause a loop.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.routing-table.updateis.vpc.routing-table.advertise
Auditing
Calling this method generates the following auditing event.
is.vpc.routing-table-route.create
Request
Request Body
RoutePrototype
The route prototype object
action
string
The action to perform with a packet matching the route:
- `delegate`: delegate to system-provided routes
- `delegate_vpc`: delegate to system-provided routes, ignoring Internet-bound routes
- `deliver`: deliver the packet to the specified `next_hop`
- `drop`: drop the packet
advertise
boolean
Indicates whether this route will be advertised to the ingress sources specified by the `advertise_routes_to` routing table property.
All routes in a routing table with the same `destination` and `zone` must have the same `advertise` value.
destination
Required *
object
The destination CIDR of the route. The host identifier in the CIDR must be zero.
At most two routes per `zone` in a table can have the same `destination` and `priority`, and only if both routes have an `action` of `deliver` and the `next_hop` is an IP address.
name
string
The name for this route. The name must not be used by another route in the routing table. Names starting with `ibm-` are reserved for system-provided routes, and are not allowed. If unspecified, the name will be a hyphenated list of randomly-selected words.
next_hop
RouteNextHopPrototype
If `action` is `deliver`, the next hop that packets will be delivered to (must not be `0.0.0.0`). For other `action` values, it must be omitted or specified as `0.0.0.0`.
At most two routes per `zone` in a table can have the same `destination` and `priority`, and only when each route has an `action` of `deliver` and `next_hop` is an IP address.
priority
integer
The priority of this route. Smaller values have higher priority.
If a routing table contains multiple routes with the same `zone` and `destination`, the route with the highest priority (smallest value) is selected. If two routes have the same `destination` and `priority`, traffic is distributed between them.
zone
Required *
object
Identifies a zone by a unique property.
Response
201 - The route was created successfully.
action
string
The action to perform with a packet matching the route:
- `delegate`: delegate to system-provided routes
- `delegate_vpc`: delegate to system-provided routes, ignoring Internet-bound routes
- `deliver`: deliver the packet to the specified `next_hop`
- `drop`: drop the packet
The enumerated values for this property may expand in the future.
advertise
boolean
Indicates whether this route will be advertised to the ingress sources specified by the `advertise_routes_to` routing table property.
created_at
string
The date and time that the route was created
creator
RouteCreator
If present, the resource that created the route. Routes with this property present cannot be directly deleted. All routes with an `origin` of `service` will have this property set, and future `origin` values may also have this property set.
destination
object
The destination CIDR of the route
href
object
id
string
The unique identifier for this route
lifecycle_state
object
The lifecycle state of the route
name
string
The name for this route. The name is unique across all routes in the routing table.
next_hop
object
If `action` is `deliver`, the next hop that packets will be delivered to. For other `action` values, its `address` will be `0.0.0.0`.
origin
string
The origin of this route:
- `service`: route was directly created by a service
- `user`: route was directly created by a user
The enumerated values for this property may expand in the future.
priority
integer
The priority of this route. Smaller values have higher priority.
If a routing table contains multiple routes with the same `zone` and `destination`, the route with the highest priority (smallest value) is selected. If two routes have the same `destination` and `priority`, traffic is distributed between them.
zone
object
The zone the route applies to.
If subnets are attached to the route's routing table, egress traffic from those subnets in this zone will be subject to this route. If this route's routing table has any of `route_direct_link_ingress`, `route_internet_ingress`, `route_transit_gateway_ingress` or `route_vpc_zone_ingress` set to`true`, traffic from those ingress sources arriving in this zone will be subject to this route.
400 - An invalid route prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified VPC could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The route prototype object conflicts with another route in the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a VPC route
DELETE /vpcs/{vpc_id}/routes/{id}
This request deletes a route. This operation cannot be reversed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.routing-table.update
Auditing
Calling this method generates the following auditing event.
is.vpc.routing-table-route.delete
Request
Response
204 - The route was deleted successfully.
404 - A route with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a VPC route
GET /vpcs/{vpc_id}/routes/{id}
This request retrieves a single route specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.routing-table.read
Auditing
Calling this method generates the following auditing event.
is.vpc.routing-table-route.read
Request
Response
200 - The route was retrieved successfully.
action
string
The action to perform with a packet matching the route:
- `delegate`: delegate to system-provided routes
- `delegate_vpc`: delegate to system-provided routes, ignoring Internet-bound routes
- `deliver`: deliver the packet to the specified `next_hop`
- `drop`: drop the packet
The enumerated values for this property may expand in the future.
advertise
boolean
Indicates whether this route will be advertised to the ingress sources specified by the `advertise_routes_to` routing table property.
created_at
string
The date and time that the route was created
creator
RouteCreator
If present, the resource that created the route. Routes with this property present cannot be directly deleted. All routes with an `origin` of `service` will have this property set, and future `origin` values may also have this property set.
destination
object
The destination CIDR of the route
href
object
id
string
The unique identifier for this route
lifecycle_state
object
The lifecycle state of the route
name
string
The name for this route. The name is unique across all routes in the routing table.
next_hop
object
If `action` is `deliver`, the next hop that packets will be delivered to. For other `action` values, its `address` will be `0.0.0.0`.
origin
string
The origin of this route:
- `service`: route was directly created by a service
- `user`: route was directly created by a user
The enumerated values for this property may expand in the future.
priority
integer
The priority of this route. Smaller values have higher priority.
If a routing table contains multiple routes with the same `zone` and `destination`, the route with the highest priority (smallest value) is selected. If two routes have the same `destination` and `priority`, traffic is distributed between them.
zone
object
The zone the route applies to.
If subnets are attached to the route's routing table, egress traffic from those subnets in this zone will be subject to this route. If this route's routing table has any of `route_direct_link_ingress`, `route_internet_ingress`, `route_transit_gateway_ingress` or `route_vpc_zone_ingress` set to`true`, traffic from those ingress sources arriving in this zone will be subject to this route.
404 - A route with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a VPC route
PATCH /vpcs/{vpc_id}/routes/{id}
This request updates a route with the information in a provided route patch. The route patch object is structured in the same way as a retrieved route and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.routing-table.updateis.vpc.routing-table.advertise
Auditing
Calling this method generates the following auditing event.
is.vpc.routing-table-route.update
Request
Request Body
The route patch
Response
200 - The route was updated successfully.
action
string
The action to perform with a packet matching the route:
- `delegate`: delegate to system-provided routes
- `delegate_vpc`: delegate to system-provided routes, ignoring Internet-bound routes
- `deliver`: deliver the packet to the specified `next_hop`
- `drop`: drop the packet
The enumerated values for this property may expand in the future.
advertise
boolean
Indicates whether this route will be advertised to the ingress sources specified by the `advertise_routes_to` routing table property.
created_at
string
The date and time that the route was created
creator
RouteCreator
If present, the resource that created the route. Routes with this property present cannot be directly deleted. All routes with an `origin` of `service` will have this property set, and future `origin` values may also have this property set.
destination
object
The destination CIDR of the route
href
object
id
string
The unique identifier for this route
lifecycle_state
object
The lifecycle state of the route
name
string
The name for this route. The name is unique across all routes in the routing table.
next_hop
object
If `action` is `deliver`, the next hop that packets will be delivered to. For other `action` values, its `address` will be `0.0.0.0`.
origin
string
The origin of this route:
- `service`: route was directly created by a service
- `user`: route was directly created by a user
The enumerated values for this property may expand in the future.
priority
integer
The priority of this route. Smaller values have higher priority.
If a routing table contains multiple routes with the same `zone` and `destination`, the route with the highest priority (smallest value) is selected. If two routes have the same `destination` and `priority`, traffic is distributed between them.
zone
object
The zone the route applies to.
If subnets are attached to the route's routing table, egress traffic from those subnets in this zone will be subject to this route. If this route's routing table has any of `route_direct_link_ingress`, `route_internet_ingress`, `route_transit_gateway_ingress` or `route_vpc_zone_ingress` set to`true`, traffic from those ingress sources arriving in this zone will be subject to this route.
400 - An invalid route patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A route with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The route cannot be updated while it is being deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List routing tables for a VPC
GET /vpcs/{vpc_id}/routing_tables
This request lists routing tables for a VPC. Each subnet in a VPC is associated with a routing table, which controls delivery of packets sent on that subnet according to the action of the most specific matching route in the table. If multiple equally-specific routes exist, traffic will be distributed across them. If no routes match, delivery will be controlled by the system's built-in routes.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.routing-table.list
Auditing
Calling this method generates the following auditing event.
is.vpc.routing-table.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
is_default
boolean
Filters the collection to routing tables with an `is_default` property matching the specified value.
Response
200 - The routing tables were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
routing_tables
array
A page of routing tables
total_count
integer
The total number of resources across all pages
404 - The specified VPC could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
POST /vpcs/{vpc_id}/routing_tables
This request creates a routing table from a routing table prototype object. The prototype object is structured in the same way as a retrieved routing table, and contains the information necessary to create the new routing table.
At present, the routing table's `resource_group` will be inherited from its VPC, but may be specifiable in the future.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.routing-table.createis.vpc.routing-table.advertise
Auditing
Calling this method generates the following auditing event.
is.vpc.routing-table.create
Request
Request Body
RoutingTablePrototype
The routing table prototype object
accept_routes_from
array
The filters specifying the resources that may create routes in this routing table.
If specified, `resource_type` must be `dynamic_route_server`, `vpn_gateway` or `vpn_server`.
advertise_routes_to
array
The ingress sources to advertise routes to. Routes in the table with `advertise` enabled will be advertised to these sources.
name
string
The name for this routing table. The name must not be used by another routing table in the VPC. If unspecified, the name will be a hyphenated list of randomly-selected words.
route_direct_link_ingress
boolean
If set to `true`, this routing table will be used to route traffic that originates from Direct Link to this VPC. The VPC must not already have a routing table with this property set to `true`.
Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
If Classic Access is enabled for this VPC, and this property is set to `true`, its incoming traffic will also be routed according to this routing table.
route_internet_ingress
boolean
If set to `true`, this routing table will be used to route traffic that originates from the internet. For this to succeed, the VPC must not already have a routing table with this property set to `true`.
Incoming traffic will be routed according to the routing table with two exceptions:
- Traffic destined for IP addresses associated with public gateways will not be subject to routes in this routing table.
- Routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
route_transit_gateway_ingress
boolean
If set to `true`, this routing table will be used to route traffic that originates from Transit Gateway to this VPC. The VPC must not already have a routing table with this property set to `true`.
Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
route_vpc_zone_ingress
boolean
If set to `true`, this routing table will be used to route traffic that originates from subnets in other zones in this VPC. The VPC must not already have a routing table with this property set to `true`.
Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
routes
array
The prototype objects for routes to create for this routing table. If unspecified, the routing table will be created with no routes.
Response
201 - The routing table was created successfully.
accept_routes_from
array
The filters specifying the resources that may create routes in this routing table.
The resources and types of filters supported by this property is expected to expand in the future.
advertise_routes_to
array
The ingress sources to advertise routes to. Routes in the table with `advertise` enabled will be advertised to these sources.
The enumerated values for this property may expand in the future.
created_at
string
The date and time that this routing table was created
crn
string
The CRN for this VPC routing table
href
string
The URL for this routing table
id
string
The unique identifier for this routing table
is_default
boolean
Indicates whether this is the default routing table for this VPC
lifecycle_state
object
The lifecycle state of the routing table
name
string
The name for this routing table. The name is unique across all routing tables for the VPC.
resource_group
object
The resource group for this routing table
resource_type
string
The resource type
route_direct_link_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from Direct Link to this VPC.
Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
route_internet_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from the internet.
Incoming traffic will be routed according to the routing table with two exceptions:
- Traffic destined for IP addresses associated with public gateways will not be subject to routes in this routing table.
- Routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
route_transit_gateway_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from from Transit Gateway to this VPC.
Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
route_vpc_zone_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from subnets in other zones in this VPC.
Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
routes
array
The routes for this routing table.
subnets
array
The subnets to which this routing table is attached
400 - An invalid routing table prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified VPC could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The routing table prototype object conflicts with another routing table in the
VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
DELETE /vpcs/{vpc_id}/routing_tables/{id}
This request deletes a routing table.
A routing table cannot be deleted if:
- It is associated with any subnets in the VPC.
- It is the VPCs default routing table.
- It has any routes with `creator.resource_type` of `dynamic_route_server`.
This operation cannot be reversed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.routing-table.delete
Auditing
Calling this method generates the following auditing event.
is.vpc.routing-table.delete
Request
Path Parameters
Query Parameters
Response
204 - The routing table was deleted successfully.
403 - The routing table is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A routing table with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The routing table is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the routing
table
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a VPC routing table
GET /vpcs/{vpc_id}/routing_tables/{id}
This request retrieves a single routing table specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.routing-table.read
Auditing
Calling this method generates the following auditing event.
is.vpc.routing-table.read
Request
Response
200 - The routing table was retrieved successfully.
accept_routes_from
array
The filters specifying the resources that may create routes in this routing table.
The resources and types of filters supported by this property is expected to expand in the future.
advertise_routes_to
array
The ingress sources to advertise routes to. Routes in the table with `advertise` enabled will be advertised to these sources.
The enumerated values for this property may expand in the future.
created_at
string
The date and time that this routing table was created
crn
string
The CRN for this VPC routing table
href
string
The URL for this routing table
id
string
The unique identifier for this routing table
is_default
boolean
Indicates whether this is the default routing table for this VPC
lifecycle_state
object
The lifecycle state of the routing table
name
string
The name for this routing table. The name is unique across all routing tables for the VPC.
resource_group
object
The resource group for this routing table
resource_type
string
The resource type
route_direct_link_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from Direct Link to this VPC.
Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
route_internet_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from the internet.
Incoming traffic will be routed according to the routing table with two exceptions:
- Traffic destined for IP addresses associated with public gateways will not be subject to routes in this routing table.
- Routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
route_transit_gateway_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from from Transit Gateway to this VPC.
Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
route_vpc_zone_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from subnets in other zones in this VPC.
Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
routes
array
The routes for this routing table.
subnets
array
The subnets to which this routing table is attached
404 - A routing table with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a VPC routing table
PATCH /vpcs/{vpc_id}/routing_tables/{id}
This request updates a routing table with the information in a provided routing table patch. The patch object is structured in the same way as a retrieved table and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.routing-table.updateis.vpc.routing-table.advertise
Auditing
Calling this method generates the following auditing event.
is.vpc.routing-table.update
Request
Request Body
The routing table patch
Path Parameters
Query Parameters
Response
200 - The routing table was updated successfully.
accept_routes_from
array
The filters specifying the resources that may create routes in this routing table.
The resources and types of filters supported by this property is expected to expand in the future.
advertise_routes_to
array
The ingress sources to advertise routes to. Routes in the table with `advertise` enabled will be advertised to these sources.
The enumerated values for this property may expand in the future.
created_at
string
The date and time that this routing table was created
crn
string
The CRN for this VPC routing table
href
string
The URL for this routing table
id
string
The unique identifier for this routing table
is_default
boolean
Indicates whether this is the default routing table for this VPC
lifecycle_state
object
The lifecycle state of the routing table
name
string
The name for this routing table. The name is unique across all routing tables for the VPC.
resource_group
object
The resource group for this routing table
resource_type
string
The resource type
route_direct_link_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from Direct Link to this VPC.
Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
route_internet_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from the internet.
Incoming traffic will be routed according to the routing table with two exceptions:
- Traffic destined for IP addresses associated with public gateways will not be subject to routes in this routing table.
- Routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
route_transit_gateway_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from from Transit Gateway to this VPC.
Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
route_vpc_zone_ingress
boolean
Indicates whether this routing table is used to route traffic that originates from subnets in other zones in this VPC.
Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address in a subnet in the route's `zone` that is able to accept traffic. Therefore, if an incoming packet matches a route with a `next_hop` of a VPN gateway connection, the packet will be dropped.
routes
array
The routes for this routing table.
subnets
array
The subnets to which this routing table is attached
400 - An invalid routing table patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A routing table with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The routing table patch conflicts with another routing table in the
VPC, or the routing table cannot be updated while it is being deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the routing
table
errors
array
The errors that occurred.
trace
string
The unique error identifier
List routes in a VPC routing table
GET /vpcs/{vpc_id}/routing_tables/{routing_table_id}/routes
This request lists routes in a VPC routing table. If subnets are associated with this routing table, delivery of packets sent on a subnet is performed according to the action of the most specific matching route in the table (provided the subnet and route are in the same zone). If multiple equally-specific routes exist, the route with the highest priority will be used. If two matching routes have the same destination and priority, traffic will be distributed between them. If no routes match, delivery will be controlled by the system's built-in routes.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.routing-table.read
Auditing
Calling this method generates the following auditing event.
is.vpc.routing-table-route.read
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The VPC routes were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
routes
array
A page of routes in the VPC routing table
total_count
integer
The total number of resources across all pages
404 - The specified VPC routing table could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a route in a VPC routing table
POST /vpcs/{vpc_id}/routing_tables/{routing_table_id}/routes
This request creates a new VPC route from a VPC route prototype object. The prototype object is structured in the same way as a retrieved VPC route and contains the information necessary to create the route.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.routing-table.updateis.vpc.routing-table.advertise
Auditing
Calling this method generates the following auditing event.
is.vpc.routing-table-route.create
Request
Request Body
RoutePrototype
The VPC route prototype object
action
string
The action to perform with a packet matching the route:
- `delegate`: delegate to system-provided routes
- `delegate_vpc`: delegate to system-provided routes, ignoring Internet-bound routes
- `deliver`: deliver the packet to the specified `next_hop`
- `drop`: drop the packet
advertise
boolean
Indicates whether this route will be advertised to the ingress sources specified by the `advertise_routes_to` routing table property.
All routes in a routing table with the same `destination` and `zone` must have the same `advertise` value.
destination
Required *
object
The destination CIDR of the route. The host identifier in the CIDR must be zero.
At most two routes per `zone` in a table can have the same `destination` and `priority`, and only if both routes have an `action` of `deliver` and the `next_hop` is an IP address.
name
string
The name for this route. The name must not be used by another route in the routing table. Names starting with `ibm-` are reserved for system-provided routes, and are not allowed. If unspecified, the name will be a hyphenated list of randomly-selected words.
next_hop
RouteNextHopPrototype
If `action` is `deliver`, the next hop that packets will be delivered to (must not be `0.0.0.0`). For other `action` values, it must be omitted or specified as `0.0.0.0`.
At most two routes per `zone` in a table can have the same `destination` and `priority`, and only when each route has an `action` of `deliver` and `next_hop` is an IP address.
priority
integer
The priority of this route. Smaller values have higher priority.
If a routing table contains multiple routes with the same `zone` and `destination`, the route with the highest priority (smallest value) is selected. If two routes have the same `destination` and `priority`, traffic is distributed between them.
zone
Required *
object
Identifies a zone by a unique property.
Response
201 - The VPC route was created successfully.
action
string
The action to perform with a packet matching the route:
- `delegate`: delegate to system-provided routes
- `delegate_vpc`: delegate to system-provided routes, ignoring Internet-bound routes
- `deliver`: deliver the packet to the specified `next_hop`
- `drop`: drop the packet
The enumerated values for this property may expand in the future.
advertise
boolean
Indicates whether this route will be advertised to the ingress sources specified by the `advertise_routes_to` routing table property.
created_at
string
The date and time that the route was created
creator
RouteCreator
If present, the resource that created the route. Routes with this property present cannot be directly deleted. All routes with an `origin` of `service` will have this property set, and future `origin` values may also have this property set.
destination
object
The destination CIDR of the route
href
string
The URL for this route
id
string
The unique identifier for this route
lifecycle_state
object
The lifecycle state of the route
name
string
The name for this route. The name is unique across all routes in the routing table.
next_hop
object
If `action` is `deliver`, the next hop that packets will be delivered to. For other `action` values, its `address` will be `0.0.0.0`.
origin
string
The origin of this route:
- `service`: route was directly created by a service
- `user`: route was directly created by a user
The enumerated values for this property may expand in the future.
priority
integer
The priority of this route. Smaller values have higher priority.
If a routing table contains multiple routes with the same `zone` and `destination`, the route with the highest priority (smallest value) is selected. If two routes have the same `destination` and `priority`, traffic is distributed between them.
zone
object
The zone the route applies to.
If subnets are attached to the route's routing table, egress traffic from those subnets in this zone will be subject to this route. If this route's routing table has any of `route_direct_link_ingress`, `route_internet_ingress`, `route_transit_gateway_ingress` or `route_vpc_zone_ingress` set to`true`, traffic from those ingress sources arriving in this zone will be subject to this route.
400 - An invalid VPC route prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A VPC routing table with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The VPC route prototype object conflicts with another VPC route for
the VPC routing table.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a VPC routing table route
DELETE /vpcs/{vpc_id}/routing_tables/{routing_table_id}/routes/{id}
This request deletes a VPC route. This operation cannot be reversed. Only VPC routes with an `origin` of `user` are allowed to be deleted.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.routing-table.update
Auditing
Calling this method generates the following auditing event.
is.vpc.routing-table-route.delete
Request
Response
204 - The VPC route was deleted successfully.
403 - The VPC route is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified VPC route could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a VPC routing table route
GET /vpcs/{vpc_id}/routing_tables/{routing_table_id}/routes/{id}
This request retrieves a single VPC route specified by the identifier in the URL path.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.routing-table.read
Auditing
Calling this method generates the following auditing event.
is.vpc.routing-table-route.read
Request
Response
200 - The VPC route was retrieved successfully.
action
string
The action to perform with a packet matching the route:
- `delegate`: delegate to system-provided routes
- `delegate_vpc`: delegate to system-provided routes, ignoring Internet-bound routes
- `deliver`: deliver the packet to the specified `next_hop`
- `drop`: drop the packet
The enumerated values for this property may expand in the future.
advertise
boolean
Indicates whether this route will be advertised to the ingress sources specified by the `advertise_routes_to` routing table property.
created_at
string
The date and time that the route was created
creator
RouteCreator
If present, the resource that created the route. Routes with this property present cannot be directly deleted. All routes with an `origin` of `service` will have this property set, and future `origin` values may also have this property set.
destination
object
The destination CIDR of the route
href
string
The URL for this route
id
string
The unique identifier for this route
lifecycle_state
object
The lifecycle state of the route
name
string
The name for this route. The name is unique across all routes in the routing table.
next_hop
object
If `action` is `deliver`, the next hop that packets will be delivered to. For other `action` values, its `address` will be `0.0.0.0`.
origin
string
The origin of this route:
- `service`: route was directly created by a service
- `user`: route was directly created by a user
The enumerated values for this property may expand in the future.
priority
integer
The priority of this route. Smaller values have higher priority.
If a routing table contains multiple routes with the same `zone` and `destination`, the route with the highest priority (smallest value) is selected. If two routes have the same `destination` and `priority`, traffic is distributed between them.
zone
object
The zone the route applies to.
If subnets are attached to the route's routing table, egress traffic from those subnets in this zone will be subject to this route. If this route's routing table has any of `route_direct_link_ingress`, `route_internet_ingress`, `route_transit_gateway_ingress` or `route_vpc_zone_ingress` set to`true`, traffic from those ingress sources arriving in this zone will be subject to this route.
404 - The specified VPC route could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a VPC routing table route
PATCH /vpcs/{vpc_id}/routing_tables/{routing_table_id}/routes/{id}
This request updates a VPC route with the information provided in a route patch object. The patch object is structured in the same way as a retrieved VPC route and needs to contain only the information to be updated. Only VPC routes with an `origin` of `user` are allowed to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpc.routing-table.updateis.vpc.routing-table.advertise
Auditing
Calling this method generates the following auditing event.
is.vpc.routing-table-route.update
Request
Request Body
The VPC route patch.
Response
200 - The VPC route was updated successfully.
action
string
The action to perform with a packet matching the route:
- `delegate`: delegate to system-provided routes
- `delegate_vpc`: delegate to system-provided routes, ignoring Internet-bound routes
- `deliver`: deliver the packet to the specified `next_hop`
- `drop`: drop the packet
The enumerated values for this property may expand in the future.
advertise
boolean
Indicates whether this route will be advertised to the ingress sources specified by the `advertise_routes_to` routing table property.
created_at
string
The date and time that the route was created
creator
RouteCreator
If present, the resource that created the route. Routes with this property present cannot be directly deleted. All routes with an `origin` of `service` will have this property set, and future `origin` values may also have this property set.
destination
object
The destination CIDR of the route
href
string
The URL for this route
id
string
The unique identifier for this route
lifecycle_state
object
The lifecycle state of the route
name
string
The name for this route. The name is unique across all routes in the routing table.
next_hop
object
If `action` is `deliver`, the next hop that packets will be delivered to. For other `action` values, its `address` will be `0.0.0.0`.
origin
string
The origin of this route:
- `service`: route was directly created by a service
- `user`: route was directly created by a user
The enumerated values for this property may expand in the future.
priority
integer
The priority of this route. Smaller values have higher priority.
If a routing table contains multiple routes with the same `zone` and `destination`, the route with the highest priority (smallest value) is selected. If two routes have the same `destination` and `priority`, traffic is distributed between them.
zone
object
The zone the route applies to.
If subnets are attached to the route's routing table, egress traffic from those subnets in this zone will be subject to this route. If this route's routing table has any of `route_direct_link_ingress`, `route_internet_ingress`, `route_transit_gateway_ingress` or `route_vpc_zone_ingress` set to`true`, traffic from those ingress sources arriving in this zone will be subject to this route.
400 - An invalid VPC route patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The VPC route is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified VPC route could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The VPC route patch conflicts with another VPC route for the VPC routing table, or
the VPC route cannot be updated while it is being deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List VPN gateways
GET /vpn_gateways
This request lists VPN gateways in the region.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.list
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-gateway.list
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
sort
string
Sorts the returned collection by the specified property name in ascending order. A `-` may be prepended to the name to sort in descending order. For example, the value `-created_at` sorts the collection by the `created_at` property in descending order, and the value `name` sorts it by the `name` property in ascending order.
mode
Filters the collection to VPN gateways with a `mode` property matching the specified value.
Response
200 - The VPN gateways were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
vpn_gateways
array
A page of VPN gateways
Create a VPN gateway
POST /vpn_gateways
This request creates a new VPN gateway.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.create
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-gateway.create
Request
Request Body
VPNGatewayPrototype
The VPN gateway prototype object.
availability_mode
string
The availability mode of the VPN gateway:
- `zonal`: The VPN gateway is deployed in a single zone in the region. Availability is limited to that zone.
- `regional`: The VPN gateway is deployed across multiple zones in the region. This mode provides zone-level redundancy.
name
string
The name for this VPN gateway. The name must not be used by another VPN gateway in the VPC. If unspecified, the name will be a hyphenated list of randomly-selected words.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
Response
201 - The VPN gateway was created successfully.
connections
array
The connections for this VPN gateway.
created_at
string
The date and time that this VPN gateway was created
crn
string
The CRN for this VPN gateway
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this VPN gateway
id
string
The unique identifier for this VPN gateway
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the VPN gateway.
members
array
The members for the VPN gateway
name
string
The name for this VPN gateway. The name is unique across all VPN gateways in the VPC.
resource_group
object
The resource group for this VPN gateway
resource_type
string
The resource type
subnet
SubnetReference
vpc
object
The VPC this VPN gateway resides in.
400 - An invalid VPN gateway prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The VPN gateway prototype object conflicts with another VPN gateway in the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a VPN gateway
DELETE /vpn_gateways/{id}
This request deletes a VPN gateway. This operation cannot be reversed. For this request to succeed, the VPN gateway must not have a `status` of `pending`, and there must not be any VPC routes using the VPN gateway's connections as a next hop.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.delete
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-gateway.delete
Request
Response
202 - The VPN gateway deletion request was accepted.
403 - The VPN gateway is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A VPN gateway with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The VPN gateway is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a VPN gateway
GET /vpn_gateways/{id}
This request retrieves a single VPN gateway specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.read
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-gateway.read
Request
Response
200 - The VPN gateway was retrieved successfully.
connections
array
The connections for this VPN gateway.
created_at
string
The date and time that this VPN gateway was created
crn
string
The CRN for this VPN gateway
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this VPN gateway
id
string
The unique identifier for this VPN gateway
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the VPN gateway.
members
array
The members for the VPN gateway
name
string
The name for this VPN gateway. The name is unique across all VPN gateways in the VPC.
resource_group
object
The resource group for this VPN gateway
resource_type
string
The resource type
subnet
SubnetReference
vpc
object
The VPC this VPN gateway resides in.
404 - A VPN gateway with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a VPN gateway
PATCH /vpn_gateways/{id}
This request updates the properties of an existing VPN gateway.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.update
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-gateway.update
Request
Request Body
The VPN gateway patch.
Response
200 - The VPN gateway was updated successfully.
connections
array
The connections for this VPN gateway.
created_at
string
The date and time that this VPN gateway was created
crn
string
The CRN for this VPN gateway
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this VPN gateway
id
string
The unique identifier for this VPN gateway
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the VPN gateway.
members
array
The members for the VPN gateway
name
string
The name for this VPN gateway. The name is unique across all VPN gateways in the VPC.
resource_group
object
The resource group for this VPN gateway
resource_type
string
The resource type
subnet
SubnetReference
vpc
object
The VPC this VPN gateway resides in.
400 - An invalid VPN gateway patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The VPN gateway is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A VPN gateway with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The VPN gateway patch conflicts with another VPN gateway in the VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /vpn_gateways/{vpn_gateway_id}/advertised_cidrs
This request lists advertised CIDRs for a VPN gateway.
This request is only supported for route mode VPN gateways.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.readis.vpn.vpn.list
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-advertised-cidr.list
Request
Response
200 - The CIDRs were retrieved successfully.
advertised_cidrs
array
The static CIDRs advertised through any enabled routing protocol (for example, BGP). The routing protocol will advertise routes with these CIDRs as route destinations.
404 - A VPN gateway with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
DELETE /vpn_gateways/{vpn_gateway_id}/advertised_cidrs/{cidr}
This request removes a CIDR from a VPN gateway advertised CIDRs.
This request is only supported for route mode VPN gateways.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.readis.vpn.vpn.update
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-advertised-cidr.delete
Request
Response
204 - The CIDR was successfully removed from the specified VPN gateway advertised CIDRs.
403 - The CIDR is not allowed to be removed from the specified VPN gateway advertised CIDRs.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified CIDR does not exist on the specified VPN gateway or the
specified VPN gateway could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /vpn_gateways/{vpn_gateway_id}/advertised_cidrs/{cidr}
This request succeeds if an advertised CIDR exists on the specified VPN gateway, and fails otherwise.
This request is only supported for route mode VPN gateways.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.read
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-advertised-cidr.read
Request
Response
204 - The specified CIDR exists on the specified VPN gateway.
404 - The specified CIDR does not exist on the specified VPN gateway
or the specified VPN gateway could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
PUT /vpn_gateways/{vpn_gateway_id}/advertised_cidrs/{cidr}
This request adds the specified CIDR to the specified VPN gateway advertised CIDRs. This request succeeds if the specified CIDR already exists. A request body is not required, and if provided, is ignored.
This request is only supported for route mode VPN gateways.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.readis.vpn.vpn.update
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-advertised-cidr.create
Request
Response
204 - The CIDR was successfully set on the specified VPN gateway.
400 - The specified CIDR was invalid.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The CIDR is not allowed to be set on the specified VPN gateway.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified VPN gateway could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List connections of a VPN gateway
GET /vpn_gateways/{vpn_gateway_id}/connections
This request lists connections of a VPN gateway.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.readis.vpn.vpn.list
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-connection.list
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
status
Filters the collection to VPN gateway connections with a `status` property matching the specified value.
Response
200 - The VPN gateway connections were retrieved successfully.
connections
array
A page of connections for the VPN gateway
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - A VPN gateway with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a connection for a VPN gateway
POST /vpn_gateways/{vpn_gateway_id}/connections
This request creates a new VPN gateway connection.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.readis.vpn.vpn.create
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-connection.create
Request
Request Body
VPNGatewayConnectionPrototype
The VPN gateway connection prototype object.
admin_state_up
boolean
If set to false, the VPN gateway connection is shut down
dead_peer_detection
VPNGatewayConnectionDPDPrototype
The dead peer detection configuration.
action
string
The dead peer detection action.
interval
integer
The dead peer detection interval in seconds. Must not be greater than `timeout`.
timeout
integer
The dead peer detection timeout in seconds. Must not be less than `interval`.
establish_mode
string
The establish mode of the VPN gateway connection:
- `bidirectional`: Either side of the VPN gateway can initiate IKE protocol negotiations or rekeying processes.
- `peer_only`: Only the peer can initiate IKE protocol negotiations for this VPN gateway connection. Additionally, the peer is responsible for initiating the rekeying process after the connection is established. If rekeying does not occur, the VPN gateway connection will be brought down after its lifetime expires.
ike_policy
VPNGatewayConnectionIKEPolicyPrototype
Identifies an IKE policy by a unique property.
ipsec_policy
VPNGatewayConnectionIPsecPolicyPrototype
Identifies an IPsec policy by a unique property.
name
string
The name for this VPN gateway connection. The name must not be used by another connection for the VPN gateway. If unspecified, the name will be a hyphenated list of randomly-selected words.
psk
Required *
string
The pre-shared key
Response
201 - The VPN gateway connection was created successfully.
admin_state_up
boolean
If set to false, the VPN gateway connection is shut down
authentication_mode
string
The authentication mode.
The enumerated values for this property may expand in the future.
created_at
string
The date and time that this VPN gateway connection was created
dead_peer_detection
VPNGatewayConnectionDPD
The dead peer detection configuration.
establish_mode
string
The establish mode of the VPN gateway connection:
- `bidirectional`: Either side of the VPN gateway can initiate IKE protocol negotiations or rekeying processes.
- `peer_only`: Only the peer can initiate IKE protocol negotiations for this VPN gateway connection. Additionally, the peer is responsible for initiating the rekeying process after the connection is established. If rekeying does not occur, the VPN gateway connection will be brought down after its lifetime expires.
href
string
The URL for this VPN gateway connection
id
string
The unique identifier for this VPN gateway connection
ike_policy
object
The IKE policy. If absent, auto-negotiation is used
ipsec_policy
object
The IPsec policy. If absent, auto-negotiation is used
mode
string
The mode of the VPN gateway.
The enumerated values for this property may expand in the future.
name
string
The name for this VPN gateway connection. The name is unique across all connections for the VPN gateway.
psk
string
The pre-shared key
resource_type
string
The resource type
status
string
The status of a VPN gateway connection
status_reasons
array
The reasons for the current VPN gateway connection status (if any).
400 - An invalid VPN gateway connection prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The VPN gateway connection is not allowed to be created.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The VPN gateway connection prototype object conflicts with another VPN gateway
connection on the VPN gateway.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a VPN gateway connection
DELETE /vpn_gateways/{vpn_gateway_id}/connections/{id}
This request deletes a VPN gateway connection. This operation cannot be reversed. For this request to succeed, there must not be VPC routes using this VPN connection as a next hop.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.readis.vpn.vpn.delete
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-connection.delete
Request
Path Parameters
Query Parameters
Response
202 - The VPN gateway connection deletion request was accepted.
403 - The VPN gateway connection is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A VPN gateway connection with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The VPN gateway connection is in use and cannot be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the VPN gateway
connection
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a VPN gateway connection
GET /vpn_gateways/{vpn_gateway_id}/connections/{id}
This request retrieves a single VPN gateway connection specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.read
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-connection.read
Request
Response
200 - The VPN gateway connection was retrieved successfully.
admin_state_up
boolean
If set to false, the VPN gateway connection is shut down
authentication_mode
string
The authentication mode.
The enumerated values for this property may expand in the future.
created_at
string
The date and time that this VPN gateway connection was created
dead_peer_detection
VPNGatewayConnectionDPD
The dead peer detection configuration.
establish_mode
string
The establish mode of the VPN gateway connection:
- `bidirectional`: Either side of the VPN gateway can initiate IKE protocol negotiations or rekeying processes.
- `peer_only`: Only the peer can initiate IKE protocol negotiations for this VPN gateway connection. Additionally, the peer is responsible for initiating the rekeying process after the connection is established. If rekeying does not occur, the VPN gateway connection will be brought down after its lifetime expires.
href
string
The URL for this VPN gateway connection
id
string
The unique identifier for this VPN gateway connection
ike_policy
object
The IKE policy. If absent, auto-negotiation is used
ipsec_policy
object
The IPsec policy. If absent, auto-negotiation is used
mode
string
The mode of the VPN gateway.
The enumerated values for this property may expand in the future.
name
string
The name for this VPN gateway connection. The name is unique across all connections for the VPN gateway.
psk
string
The pre-shared key
resource_type
string
The resource type
status
string
The status of a VPN gateway connection
status_reasons
array
The reasons for the current VPN gateway connection status (if any).
404 - A VPN gateway connection with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a VPN gateway connection
PATCH /vpn_gateways/{vpn_gateway_id}/connections/{id}
This request updates the properties of an existing VPN gateway connection.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.readis.vpn.vpn.update
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-connection.update
Request
Request Body
The VPN gateway connection patch.
Path Parameters
Query Parameters
Response
200 - The VPN gateway connection was updated successfully.
admin_state_up
boolean
If set to false, the VPN gateway connection is shut down
authentication_mode
string
The authentication mode.
The enumerated values for this property may expand in the future.
created_at
string
The date and time that this VPN gateway connection was created
dead_peer_detection
VPNGatewayConnectionDPD
The dead peer detection configuration.
establish_mode
string
The establish mode of the VPN gateway connection:
- `bidirectional`: Either side of the VPN gateway can initiate IKE protocol negotiations or rekeying processes.
- `peer_only`: Only the peer can initiate IKE protocol negotiations for this VPN gateway connection. Additionally, the peer is responsible for initiating the rekeying process after the connection is established. If rekeying does not occur, the VPN gateway connection will be brought down after its lifetime expires.
href
string
The URL for this VPN gateway connection
id
string
The unique identifier for this VPN gateway connection
ike_policy
object
The IKE policy. If absent, auto-negotiation is used
ipsec_policy
object
The IPsec policy. If absent, auto-negotiation is used
mode
string
The mode of the VPN gateway.
The enumerated values for this property may expand in the future.
name
string
The name for this VPN gateway connection. The name is unique across all connections for the VPN gateway.
psk
string
The pre-shared key
resource_type
string
The resource type
status
string
The status of a VPN gateway connection
status_reasons
array
The reasons for the current VPN gateway connection status (if any).
400 - An invalid VPN gateway connection patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The VPN gateway connection is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A VPN gateway connection with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The connection patch conflicts with another connection on the VPN gateway.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the VPN gateway
connection
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /vpn_gateways/{vpn_gateway_id}/connections/{id}/local/cidrs
This request lists local CIDRs for a VPN gateway connection.
This request is only supported for policy mode VPN gateways.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.readis.vpn.vpn.list
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-connection-local-cidr.list
Request
Response
200 - The CIDRs were retrieved successfully.
cidrs
array
The CIDRs for this resource.
404 - A VPN gateway connection with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
DELETE /vpn_gateways/{vpn_gateway_id}/connections/{id}/local/cidrs/{cidr}
This request removes a CIDR from a VPN gateway connection.
This request is only supported for policy mode VPN gateways.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.readis.vpn.vpn.delete
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-connection-local-cidr.delete
Request
Response
204 - The CIDR was successfully removed from the specified VPN gateway connection.
400 - The last CIDR could not be removed from the specified VPN gateway connection.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The CIDR is not allowed to be removed from the specified VPN gateway connection.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified CIDR does not exist on the specified VPN gateway connection or the
specified VPN gateway connection could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /vpn_gateways/{vpn_gateway_id}/connections/{id}/local/cidrs/{cidr}
This request succeeds if a CIDR exists on the specified VPN gateway connection, and fails otherwise.
This request is only supported for policy mode VPN gateways.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.read
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-connection-local-cidr.read
Request
Response
204 - The specified CIDR exists on the specified VPN gateway connection.
404 - The specified CIDR does not exist on the specified VPN gateway connection
or the specified VPN gateway connection could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
PUT /vpn_gateways/{vpn_gateway_id}/connections/{id}/local/cidrs/{cidr}
This request adds the specified CIDR to the specified VPN gateway connection. This request succeeds if the specified CIDR already exists. A request body is not required, and if provided, is ignored.
This request is only supported for policy mode VPN gateways.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.readis.vpn.vpn.create
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-connection-local-cidr.create
Request
Response
201 - The CIDR was successfully set on the specified VPN gateway connection.
204 - The CIDR is already set on the specified VPN gateway connection.
400 - The specified CIDR was invalid.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The CIDR is not allowed to be set on the specified VPN gateway connection.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified VPN gateway connection could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /vpn_gateways/{vpn_gateway_id}/connections/{id}/peer/cidrs
This request lists peer CIDRs for a VPN gateway connection.
This request is only supported for policy mode VPN gateways.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.readis.vpn.vpn.list
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-connection-peer-cidr.list
Request
Response
200 - The CIDRs were retrieved successfully.
cidrs
array
The CIDRs for this resource.
404 - A VPN gateway connection with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
DELETE /vpn_gateways/{vpn_gateway_id}/connections/{id}/peer/cidrs/{cidr}
This request removes a CIDR from a VPN gateway connection.
This request is only supported for policy mode VPN gateways.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.readis.vpn.vpn.delete
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-connection-peer-cidr.delete
Request
Response
204 - The CIDR was successfully removed from the specified VPN gateway connection.
400 - The last CIDR could not be removed from the specified VPN gateway connection.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The CIDR is not allowed to be removed from the specified VPN gateway connection.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified CIDR does not exist on the specified VPN gateway connection or the
specified VPN gateway connection could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
GET /vpn_gateways/{vpn_gateway_id}/connections/{id}/peer/cidrs/{cidr}
This request succeeds if a CIDR exists on the specified VPN gateway connection, and fails otherwise.
This request is only supported for policy mode VPN gateways.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.read
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-connection-peer-cidr.read
Request
Response
204 - The specified CIDR exists on the specified VPN gateway connection.
404 - The specified CIDR does not exist on the specified VPN gateway connection
or the specified VPN gateway connection could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
PUT /vpn_gateways/{vpn_gateway_id}/connections/{id}/peer/cidrs/{cidr}
This request adds the specified CIDR to the specified VPN gateway connection. This request succeeds if the specified CIDR already exists. A request body is not required, and if provided, is ignored.
This request is only supported for policy mode VPN gateways.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.readis.vpn.vpn.create
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-connection-peer-cidr.create
Request
Response
201 - The CIDR was successfully set on the specified VPN gateway connection.
204 - The CIDR is already set on the specified VPN gateway connection.
400 - The specified CIDR was invalid.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The CIDR is not allowed to be set on the specified VPN gateway connection.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified VPN gateway connection could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List members of a VPN gateway
GET /vpn_gateways/{vpn_gateway_id}/members
This request lists members of a VPN gateway.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.read
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-member.list
Request
Response
200 - The VPN gateway members were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
members
array
The members for the VPN gateway
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - A VPN gateway with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a VPN gateway member
GET /vpn_gateways/{vpn_gateway_id}/members/{id}
This request retrieves a single VPN gateway member specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.read
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-member.read
Request
Path Parameters
Query Parameters
version
Required *
The API version, in format `YYYY-MM-DD`. For the API behavior documented here, specify any date between `2026-10-30` and `2026-11-03`.
generation
Required *
integer
The infrastructure generation. For the API behavior documented here, specify `2`.
maturity
Required *
The API maturity. For the API behavior documented here, specify `beta`.
Response
200 - The VPN gateway member was retrieved successfully.
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this VPN gateway member
id
string
The unique identifier for this VPN gateway member
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the VPN gateway member.
private_ip
object
The reserved IP address assigned to the VPN gateway member.
This property will be present only when the VPN gateway status is `available`.
public_ip
object
The public IP address assigned to the VPN gateway member
role
string
The high availability role assigned to the VPN gateway member.
The enumerated values for this property may expand in the future.
404 - A VPN gateway member with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
PUT /vpn_gateways/{vpn_gateway_id}/members/{id}
This request sets the subnet for a VPN gateway member by moving it to a new subnet.
The existing reserved IP for `private_ip` will be unbound and a new reserved IP will be allocated from the provided subnet.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.update
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-member.update
Request
Request Body
VPNGatewayMemberPrototypeReplaceContext
The VPN gateway member prototype
private_ip
Required *
object
The identity of the subnet to which the VPN Gateway member will be relocated.
A reserved IP will be allocated from the specified `subnet` and assigned to the VPN gateway member.
Response
202 - The VPN gateway member replace request was accepted.
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this VPN gateway member
id
string
The unique identifier for this VPN gateway member
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the VPN gateway member.
private_ip
object
The reserved IP address assigned to the VPN gateway member.
This property will be present only when the VPN gateway status is `available`.
public_ip
object
The public IP address assigned to the VPN gateway member
role
string
The high availability role assigned to the VPN gateway member.
The enumerated values for this property may expand in the future.
400 - An invalid VPN gateway member was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The VPN gateway or VPN gateway member is not allowed to be replaced.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A VPN gateway or VPN gateway member with the specified
identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List VPN gateway service connections
GET /vpn_gateways/{vpn_gateway_id}/service_connections
This request lists service connections on a VPN gateway. The VPN gateway service connections will be sorted by ascending `created_at` property values. A VPN gateway service connection connects services such as transit gateway to a VPN gateway. This facilitates the propagation of routes learned from VPN gateway peer connections to the connected service (for example, a transit gateway).
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.readis.vpn.vpn.list
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-service-connection.list
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
Response
200 - The VPN gateway service connections were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
service_connections
array
A page of service connections for the VPN gateway.
total_count
integer
The total number of resources across all pages
404 - A VPN gateway with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a VPN gateway service connection
GET /vpn_gateways/{vpn_gateway_id}/service_connections/{id}
This request retrieves VPN gateway service connection specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn.vpn.read
Auditing
Calling this method generates the following auditing event.
is.vpn.vpn-service-connection.read
Request
Response
200 - The VPN gateway service connection was retrieved successfully.
created_at
string
The date and time that this VPN gateway service connection was created.
creator
VPNGatewayServiceConnectionCreator
id
string
The unique identifier for this VPN gateway service connection
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the VPN gateway service connection.
status
string
The status of this VPN gateway service connection:
- `degraded`: operating with compromised performance.
- `down`: not operational.
- `up`: operating normally.
status_reasons
array
The reasons for the current VPN gateway service connection status (if any).
404 - A VPN gateway service connection with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List VPN servers
GET /vpn_servers
This request lists VPN servers.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn-server.vpn-server.read
Auditing
Calling this method generates the following auditing event.
is.vpn-server.vpn-server.list
Request
Path Parameters
Query Parameters
name
string
Filters the collection to resources with a `name` property matching the exact specified name.
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
resource_group.id
Filters the collection to resources with a `resource_group.id` property matching the specified identifier.
sort
string
Sorts the returned collection by the specified property name in ascending order. A `-` may be prepended to the name to sort in descending order. For example, the value `-created_at` sorts the collection by the `created_at` property in descending order, and the value `name` sorts it by the `name` property in ascending order.
Response
200 - The VPN servers were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
vpn_servers
array
A page of VPN servers
Create a VPN server
POST /vpn_servers
This request creates a new VPN server.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn-server.vpn-server.createis.security-group.security-group.operateis.subnet.subnet.update
Auditing
Calling this method generates the following auditing event.
is.vpn-server.vpn-server.create
Request
Request Body
VPNServerPrototype
The VPN server prototype
certificate
Required *
object
Identifies a certificate instance by a unique property.
client_authentication
Required *
array
The methods used to authenticate VPN clients to this VPN server. VPN clients must authenticate against all specified methods.
client_dns_server_ips
array
The DNS server addresses that will be provided to VPN clients connected to this VPN server.
client_idle_timeout
integer
The seconds a VPN client can be idle before this VPN server will disconnect it. Specify `0` to prevent the server from disconnecting idle clients.
client_ip_pool
Required *
string
The VPN client IPv4 address pool, expressed in CIDR format. The request must not overlap with any existing address prefixes in the VPC or any of the following reserved address ranges: - `127.0.0.0/8` (IPv4 loopback addresses) - `161.26.0.0/16` (IBM services) - `166.8.0.0/14` (Cloud Service Endpoints) - `169.254.0.0/16` (IPv4 link-local addresses) - `224.0.0.0/4` (IPv4 multicast addresses)
The prefix length of the client IP address pool's CIDR must be between `/9` (8,388,608 addresses) and `/22` (1024 addresses). A CIDR block that contains twice the number of IP addresses that are required to enable the maximum number of concurrent connections is recommended.
enable_split_tunneling
boolean
Indicates whether the split tunneling is enabled on this VPN server.
name
string
The name for this VPN server. The name must not be used by another VPN server in the VPC. If unspecified, the name will be a hyphenated list of randomly-selected words.
port
integer
The port number to use for this VPN server.
protocol
string
The transport protocol to use for this VPN server.
resource_group
ResourceGroupIdentity
The resource group to use. If unspecified, the account's default resource group will be used.
security_groups
array
The security groups to use for this VPN server. If unspecified, the VPC's default security group is used.
subnets
Required *
array
The subnets to provision this VPN server in. Use subnets in different zones for high availability.
Response
201 - The VPN server was created successfully.
certificate
object
The certificate instance for this VPN server.
client_authentication
array
The methods used to authenticate VPN clients to this VPN server. VPN clients must authenticate against all specified methods.
client_auto_delete
boolean
Indicates whether disconnected VPN clients will be automatically deleted after `client_auto_delete_timeout` hours have passed. At present, this is always `true`, but may be modifiable in the future.
client_auto_delete_timeout
integer
If `client_auto_delete` is `true`, the hours after which disconnected VPN clients will be automatically deleted. If the value is `0`, disconnected VPN clients will be deleted immediately. This value may be modifiable in the future.
client_dns_server_ips
array
The DNS server addresses that will be provided to VPN clients that are connected to this VPN server.
client_idle_timeout
integer
The seconds a VPN client can be idle before this VPN server will disconnect it. If `0`, the server will not disconnect idle clients.
client_ip_pool
string
The VPN client IPv4 address pool, expressed in CIDR format.
created_at
string
The date and time that the VPN server was created.
crn
string
The CRN for this VPN server
enable_split_tunneling
boolean
Indicates whether the split tunneling is enabled on this VPN server.
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
hostname
string
The fully qualified domain name assigned to this VPN server
href
string
The URL for this VPN server
id
object
The unique identifier for this VPN server
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the VPN server.
name
string
The name for this VPN server. The name is unique across all VPN servers in the VPC.
port
integer
The port number used by this VPN server.
private_ips
array
The reserved IPs bound to this VPN server.
protocol
string
The transport protocol to use for this VPN server.
The enumerated values for this property may expand in the future.
resource_group
object
The resource group for this VPN server
resource_type
string
The resource type
security_groups
array
The security groups targeting this VPN server.
subnets
array
The subnets this VPN server is provisioned in.
vpc
object
The VPC this VPN server resides in.
400 - An invalid VPN server prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The VPN server prototype object conflicts with another VPN server in the VPC,
or the VPN server prototype object specified one or more of:
- Specifies a subnet with no available IP addresses
- A client address pool that overlaps with an address prefix in this VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a VPN server
DELETE /vpn_servers/{id}
This request deletes a VPN server. This operation cannot be reversed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn-server.vpn-server.delete
Auditing
Calling this method generates the following auditing event.
is.vpn-server.vpn-server.delete
Request
Path Parameters
Query Parameters
Response
202 - The VPN server deletion request was accepted.
403 - The VPN server is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A VPN server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the VPN
server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a VPN server
GET /vpn_servers/{id}
This request retrieves a single VPN server specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn-server.vpn-server.read
Auditing
Calling this method generates the following auditing event.
is.vpn-server.vpn-server.read
Request
Response
200 - The VPN server was retrieved successfully.
certificate
object
The certificate instance for this VPN server.
client_authentication
array
The methods used to authenticate VPN clients to this VPN server. VPN clients must authenticate against all specified methods.
client_auto_delete
boolean
Indicates whether disconnected VPN clients will be automatically deleted after `client_auto_delete_timeout` hours have passed. At present, this is always `true`, but may be modifiable in the future.
client_auto_delete_timeout
integer
If `client_auto_delete` is `true`, the hours after which disconnected VPN clients will be automatically deleted. If the value is `0`, disconnected VPN clients will be deleted immediately. This value may be modifiable in the future.
client_dns_server_ips
array
The DNS server addresses that will be provided to VPN clients that are connected to this VPN server.
client_idle_timeout
integer
The seconds a VPN client can be idle before this VPN server will disconnect it. If `0`, the server will not disconnect idle clients.
client_ip_pool
string
The VPN client IPv4 address pool, expressed in CIDR format.
created_at
string
The date and time that the VPN server was created.
crn
string
The CRN for this VPN server
enable_split_tunneling
boolean
Indicates whether the split tunneling is enabled on this VPN server.
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
hostname
string
The fully qualified domain name assigned to this VPN server
href
string
The URL for this VPN server
id
object
The unique identifier for this VPN server
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the VPN server.
name
string
The name for this VPN server. The name is unique across all VPN servers in the VPC.
port
integer
The port number used by this VPN server.
private_ips
array
The reserved IPs bound to this VPN server.
protocol
string
The transport protocol to use for this VPN server.
The enumerated values for this property may expand in the future.
resource_group
object
The resource group for this VPN server
resource_type
string
The resource type
security_groups
array
The security groups targeting this VPN server.
subnets
array
The subnets this VPN server is provisioned in.
vpc
object
The VPC this VPN server resides in.
404 - A VPN server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a VPN server
PATCH /vpn_servers/{id}
This request updates the properties of an existing VPN server. Any updates other than to `name` will cause all connected VPN clients to be disconnected.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn-server.vpn-server.updateis.subnet.subnet.update
Auditing
Calling this method generates the following auditing event.
is.vpn-server.vpn-server.update
Request
Request Body
The VPN server patch
Path Parameters
Query Parameters
Response
200 - The VPN server was updated successfully.
certificate
object
The certificate instance for this VPN server.
client_authentication
array
The methods used to authenticate VPN clients to this VPN server. VPN clients must authenticate against all specified methods.
client_auto_delete
boolean
Indicates whether disconnected VPN clients will be automatically deleted after `client_auto_delete_timeout` hours have passed. At present, this is always `true`, but may be modifiable in the future.
client_auto_delete_timeout
integer
If `client_auto_delete` is `true`, the hours after which disconnected VPN clients will be automatically deleted. If the value is `0`, disconnected VPN clients will be deleted immediately. This value may be modifiable in the future.
client_dns_server_ips
array
The DNS server addresses that will be provided to VPN clients that are connected to this VPN server.
client_idle_timeout
integer
The seconds a VPN client can be idle before this VPN server will disconnect it. If `0`, the server will not disconnect idle clients.
client_ip_pool
string
The VPN client IPv4 address pool, expressed in CIDR format.
created_at
string
The date and time that the VPN server was created.
crn
string
The CRN for this VPN server
enable_split_tunneling
boolean
Indicates whether the split tunneling is enabled on this VPN server.
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
hostname
string
The fully qualified domain name assigned to this VPN server
href
string
The URL for this VPN server
id
object
The unique identifier for this VPN server
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the VPN server.
name
string
The name for this VPN server. The name is unique across all VPN servers in the VPC.
port
integer
The port number used by this VPN server.
private_ips
array
The reserved IPs bound to this VPN server.
protocol
string
The transport protocol to use for this VPN server.
The enumerated values for this property may expand in the future.
resource_group
object
The resource group for this VPN server
resource_type
string
The resource type
security_groups
array
The security groups targeting this VPN server.
subnets
array
The subnets this VPN server is provisioned in.
vpc
object
The VPC this VPN server resides in.
400 - An invalid VPN server patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The VPN server is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A VPC with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The VPN server patch conflicts with other VPN servers in the VPC, or
one or more of the following:
- The VPN server cannot be updated while it is being deleted
- The client address pool overlaps with an address prefix in this VPC.
errors
array
The errors that occurred.
trace
string
The unique error identifier
412 - The provided `If-Match` value does not match the current ETag value of the VPN
server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve client configuration
GET /vpn_servers/{id}/client_configuration
This request retrieves OpenVPN client configuration on a single VPN server specified by the identifier in the URL. This configuration includes directives compatible with OpenVPN releases 2.4 and 2.5
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn-server.vpn-server.read
Auditing
Calling this method generates the following auditing event.
is.vpn-server.vpn-server-configuration.read
Request
Response
200 - The client configuration was retrieved successfully.
404 - A VPN server with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
406 - The media type specified in `Accept` request header is not
acceptable. Only the media type `text/plain` is supported.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List VPN clients for a VPN server
GET /vpn_servers/{vpn_server_id}/clients
This request retrieves connected VPN clients, and any disconnected VPN clients that the VPN server has not yet deleted based on its auto-deletion policy.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn-server.vpn-server.read
Auditing
Calling this method generates the following auditing event.
is.vpn-server.vpn-server-client.list
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
sort
string
Sorts the returned collection by the specified property name in ascending order. A `-` may be prepended to the name to sort in descending order. For example, the value `-created_at` sorts the collection by the `created_at` property in descending order.
Response
200 - The VPN clients were retrieved successfully.
clients
array
A page of clients of the VPN server
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
total_count
integer
The total number of resources across all pages
404 - The specified VPN server could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a VPN client
DELETE /vpn_servers/{vpn_server_id}/clients/{id}
This request disconnects and deletes the VPN client from the VPN server. The VPN client may reconnect unless its authentication permissions for the configured authentication methods (such as its client certificate) have been revoked.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn-server.vpn-server.operate
Auditing
Calling this method generates the following auditing event.
is.vpn-server.vpn-server-client.delete
Request
Response
202 - The VPN client deletion request was accepted.
403 - The VPN client is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A VPN client with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a VPN client
GET /vpn_servers/{vpn_server_id}/clients/{id}
This request retrieves a single VPN client specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn-server.vpn-server.read
Auditing
Calling this method generates the following auditing event.
is.vpn-server.vpn-server-client.read
Request
Response
200 - The VPN client was retrieved successfully.
client_ip
object
The IP address assigned to this VPN client from `client_ip_pool`.
common_name
string
The common name of client certificate that the VPN client provided when connecting to the server.
This property will be present only when the `certificate` client authentication method is enabled on the VPN server.
created_at
string
The date and time that the VPN client was created
disconnected_at
string
The date and time that the VPN client was disconnected.
This property will be present only when the client `status` is `disconnected`.
href
string
The URL for this VPN client
id
string
The unique identifier for this VPN client
remote_ip
object
The remote IP address of this VPN client.
remote_port
integer
The remote port of this VPN client.
resource_type
string
The resource type
status
string
The status of the VPN client:
- `connected`: the VPN client is `connected` to this VPN server.
- `disconnected`: the VPN client is `disconnected` from this VPN server.
The enumerated values for this property may expand in the future.
username
string
The username that this VPN client provided when connecting to the VPN server.
This property will be present only when the `username` client authentication method is enabled on the VPN server.
404 - A VPN client with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Disconnect a VPN client
POST /vpn_servers/{vpn_server_id}/clients/{id}/disconnect
This request disconnects the specified VPN client, and deletes the client according to the VPN server's auto-deletion policy. The VPN client may reconnect unless its authentication permissions for the configured authentication methods (such as its client certificate) have been revoked.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn-server.vpn-server.operate
Auditing
Calling this method generates the following auditing event.
is.vpn-server.vpn-server-client.disconnect
Request
Response
202 - The VPN client disconnection request was accepted.
403 - The VPN route is not allowed to be disconnected.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A VPN client with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
List VPN routes for a VPN server
GET /vpn_servers/{vpn_server_id}/routes
This request lists VPN routes in a VPN server. All VPN routes are provided to the VPN client when the connection is established. Packets received from the VPN client will be dropped by the VPN server if there is no VPN route matching their specified destinations. All VPN routes must be unique within the VPN server.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn-server.vpn-server.read
Auditing
Calling this method generates the following auditing event.
is.vpn-server.vpn-server-route.list
Request
Path Parameters
Query Parameters
start
string
A server-provided token determining what resource to start the page on
limit
integer
The number of resources to return on a page
sort
string
Sorts the returned collection by the specified property name in ascending order. A `-` may be prepended to the name to sort in descending order. For example, the value `-created_at` sorts the collection by the `created_at` property in descending order, and the value `name` sorts it by the `name` property in ascending order.
Response
200 - The VPN routes were retrieved successfully.
first
object
A link to the first page of resources
limit
integer
The maximum number of resources that can be returned by the request
next
object
A link to the next page of resources. This property is present for all pages except the last page
routes
array
A page of routes for the VPN server
total_count
integer
The total number of resources across all pages
404 - The specified VPN server could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Create a VPN route for a VPN server
POST /vpn_servers/{vpn_server_id}/routes
This request creates a new VPN route in the VPN server. All VPN routes are provided to the VPN client when the connection is established. Packets received from the VPN client will be dropped by the VPN server if there is no VPN route matching their specified destinations. All VPN routes must be unique within the VPN server.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn-server.vpn-server.update
Auditing
Calling this method generates the following auditing event.
is.vpn-server.vpn-server-route.create
Request
Request Body
VPNServerRoutePrototype
The VPN route prototype object
action
string
The action to perform with a packet matching the VPN route:
- `translate`: translate the source IP address to one of the private IP addresses of the VPN server, then deliver the packet to target.
- `deliver`: deliver the packet to the target.
- `drop`: drop the packet
destination
Required *
string
The destination to use for this VPN route in the VPN server. Must be unique within the VPN server. If an incoming packet does not match any destination, it will be dropped.
name
string
The name for this VPN server route. The name must not be used by another route for the VPN server. If unspecified, the name will be a hyphenated list of randomly-selected words.
Response
201 - The VPN route was created successfully.
action
string
The action to perform with a packet matching the VPN route:
- `translate`: translate the source IP address to one of the private IP addresses of the VPN server, then deliver the packet to target.
- `deliver`: deliver the packet into the VPC.
- `drop`: drop the packet
The enumerated values for this property may expand in the future.
created_at
string
The date and time that the VPN route was created
destination
object
The destination for this VPN route in the VPN server. If an incoming packet does not match any destination, it will be dropped.
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this VPN route
id
string
The unique identifier for this VPN route
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the VPN route
name
string
The name for this VPN route. The name is unique across all routes for a VPN server.
resource_type
string
The resource type
400 - An invalid VPN route prototype object was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The VPN route is not allowed to be created.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - The specified VPN server could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The VPN route prototype object conflicts with another VPN route in the VPN server.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Delete a VPN route
DELETE /vpn_servers/{vpn_server_id}/routes/{id}
This request deletes a VPN route. This operation cannot be reversed.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn-server.vpn-server.update
Auditing
Calling this method generates the following auditing event.
is.vpn-server.vpn-server-route.delete
Request
Response
202 - The VPN route deletion request was accepted.
403 - The VPN route is not allowed to be deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A VPN route with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Retrieve a VPN route
GET /vpn_servers/{vpn_server_id}/routes/{id}
This request retrieves a single VPN route specified by the identifier in the URL.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn-server.vpn-server.read
Auditing
Calling this method generates the following auditing event.
is.vpn-server.vpn-server-route.read
Request
Response
200 - The VPN route was retrieved successfully.
action
string
The action to perform with a packet matching the VPN route:
- `translate`: translate the source IP address to one of the private IP addresses of the VPN server, then deliver the packet to target.
- `deliver`: deliver the packet into the VPC.
- `drop`: drop the packet
The enumerated values for this property may expand in the future.
created_at
string
The date and time that the VPN route was created
destination
object
The destination for this VPN route in the VPN server. If an incoming packet does not match any destination, it will be dropped.
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this VPN route
id
string
The unique identifier for this VPN route
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the VPN route
name
string
The name for this VPN route. The name is unique across all routes for a VPN server.
resource_type
string
The resource type
404 - A VPN route with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
Update a VPN route
PATCH /vpn_servers/{vpn_server_id}/routes/{id}
This request updates a VPN route with the information in a provided VPN route patch. The VPN route patch object is structured in the same way as a retrieved VPN route and contains only the information to be updated.
Authorization
To call this method, you must be assigned one or more IAM access roles that include the following action.
is.vpn-server.vpn-server.update
Auditing
Calling this method generates the following auditing event.
is.vpn-server.vpn-server-route.update
Request
Request Body
The VPN route patch
Response
200 - The VPN route was updated successfully.
action
string
The action to perform with a packet matching the VPN route:
- `translate`: translate the source IP address to one of the private IP addresses of the VPN server, then deliver the packet to target.
- `deliver`: deliver the packet into the VPC.
- `drop`: drop the packet
The enumerated values for this property may expand in the future.
created_at
string
The date and time that the VPN route was created
destination
object
The destination for this VPN route in the VPN server. If an incoming packet does not match any destination, it will be dropped.
health_reasons
array
The reasons for the current `health_state` (if any).
health_state
string
The health of this resource:
- `ok`: No abnormal behavior detected
- `degraded`: Experiencing compromised performance, capacity, or connectivity
- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated
- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.
href
string
The URL for this VPN route
id
string
The unique identifier for this VPN route
lifecycle_reasons
array
The reasons for the current `lifecycle_state` (if any).
lifecycle_state
object
The lifecycle state of the VPN route
name
string
The name for this VPN route. The name is unique across all routes for a VPN server.
resource_type
string
The resource type
400 - An invalid VPN route patch was provided.
errors
array
The errors that occurred.
trace
string
The unique error identifier
403 - The VPN route is not allowed to be updated.
errors
array
The errors that occurred.
trace
string
The unique error identifier
404 - A VPN route with the specified identifier could not be found.
errors
array
The errors that occurred.
trace
string
The unique error identifier
409 - The VPN route cannot be updated while it is being deleted.
errors
array
The errors that occurred.
trace
string
The unique error identifier