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.read
  • is.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

Create a plan for a backup policy

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 a backup policy plan

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 a backup policy

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.list
  • 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

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

Create a bare metal server

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.create
  • is.subnet.subnet.operate
  • is.subnet.subnet.update
  • is.security-group.security-group.operate
  • is.vpc.vpc.operate
  • is.key.key.operate
  • is.image.image.operate
  • is.bare-metal-server.bare-metal-server.ip-spoofing
  • is.bare-metal-server.bare-metal-server.infrastructure-nat
  • is.reservation.reservation.operate
  • iam-identity.profile.get
  • iam-identity.profile.update
  • iam-identity.profile.linkToResource
  • is.virtual-network-interface.virtual-network-interface.create
  • is.virtual-network-interface.virtual-network-interface.manage-infrastructure-nat
  • is.virtual-network-interface.virtual-network-interface.manage-ip-spoofing
  • is.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.create
  • is.virtual-network-interface.virtual-network-interface.attach
  • is.bare-metal-server.network-attachment.attach
  • is.bare-metal-server.bare-metal-server.create
  • is.bare-metal-server.network-attachment.create
  • is.bare-metal-server.network-interface.create
  • is.bare-metal-server.network-interface.attach
  • is.subnet.reserved-ip.attach
  • is.subnet.reserved-ip.create
  • is.security-group.security-group.attach
  • is.subnet.subnet.update
  • is.bare-metal-server.bare-metal-server.attach
  • is.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.operate
  • is.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.operate
  • is.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

List network attachments on a bare metal server

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.update
  • is.security-group.security-group.operate
  • is.subnet.subnet.operate
  • is.subnet.subnet.update
  • is.virtual-network-interface.virtual-network-interface.create
  • is.virtual-network-interface.virtual-network-interface.manage-infrastructure-nat
  • is.virtual-network-interface.virtual-network-interface.manage-ip-spoofing
  • is.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.create
  • is.virtual-network-interface.virtual-network-interface.attach
  • is.bare-metal-server.network-attachment.attach
  • is.bare-metal-server.network-attachment.create
  • is.subnet.reserved-ip.create
  • is.subnet.reserved-ip.attach
  • is.security-group.security-group.attach
  • is.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 a bare metal server network attachment

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.delete
  • is.virtual-network-interface.virtual-network-interface.detach
  • is.virtual-network-interface.virtual-network-interface.delete
  • is.floating-ip.floating-ip.detach
  • is.subnet.reserved-ip.detach
  • is.subnet.reserved-ip.delete
  • is.subnet.subnet.update
  • is.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

read-only representation of its corresponding network attachment and its attached virtual network interface.">

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

read-only representation of its corresponding network attachment and its attached virtual network interface, and new network interfaces are not allowed to be created.">

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.update
  • is.subnet.subnet.operate
  • is.subnet.subnet.update
  • is.security-group.security-group.operate
  • is.bare-metal-server.bare-metal-server.ip-spoofing
  • is.bare-metal-server.bare-metal-server.infrastructure-nat

Auditing

Calling this method generates the following auditing event.

  • is.bare-metal-server.network-interface.create
  • is.bare-metal-server.network-interface.attach
  • is.subnet.reserved-ip.create
  • is.subnet.reserved-ip.attach
  • is.security-group.security-group.attach
  • is.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

read-only representation of its corresponding network attachment and its attached virtual network interface, and is not allowed to be deleted.">

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.delete
  • is.bare-metal-server.network-interface.detach
  • is.floating-ip.floating-ip.detach
  • is.subnet.reserved-ip.detach
  • is.security-group.security-group.detach
  • is.subnet.reserved-ip.delete
  • is.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

read-only representation of its corresponding network attachment and its attached virtual network interface.">

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

read-only representation of its corresponding network attachment and its attached virtual network interface, and is not allowed to be updated.">

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.update
  • is.bare-metal-server.bare-metal-server.ip-spoofing
  • is.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.read
  • is.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.operate
  • is.floating-ip.floating-ip.operate

Auditing

Calling this method generates the following auditing event.

  • is.bare-metal-server.network-interface.detach
  • is.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.read
  • is.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

Associate a floating IP with a bare metal server network interface

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.operate
  • is.floating-ip.floating-ip.operate

Auditing

Calling this method generates the following auditing event.

  • is.bare-metal-server.network-interface.attach
  • is.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.read
  • is.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.read
  • 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 reserved IP address with the specified identifier could not be found

errors

array

The errors that occurred.

trace

string

The unique error identifier

Retrieve storage access secret for a bare metal server

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

Rotate the storage access secret associated with the bare metal server

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.update
  • is.bare-metal-server.bare-metal-server.manage-storage-access-secret
  • is.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.update
  • is.volume.volume.operate
  • is.volume.volume.create
  • is.snapshot.snapshot.operate
  • is.volume.volume.allow-remote-account-snapshot-restore
  • is.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.operate
  • is.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.update
  • is.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.delete
  • is.volume.volume.delete

Auditing

Calling this method generates the following auditing event.

  • is.bare-metal-server.bare-metal-server.delete
  • is.bare-metal-server.network-interface.delete
  • is.bare-metal-server.network-interface.detach
  • is.bare-metal-server.network-attachment.delete
  • is.bare-metal-server.network-attachment.detach
  • is.virtual-network-interface.virtual-network-interface.detach
  • is.virtual-network-interface.virtual-network-interface.delete
  • is.floating-ip.floating-ip.detach
  • is.security-group.security-group.detach
  • is.subnet.reserved-ip.detach
  • is.subnet.reserved-ip.delete
  • is.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

Update a bare metal server

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.update
  • is.reservation.reservation.operate

Auditing

Calling this method generates the following auditing event.

  • is.bare-metal-server.bare-metal-server.update
  • is.bare-metal-server.bare-metal-server.detach
  • is.reservation.reservation.detach
  • is.bare-metal-server.bare-metal-server.attach
  • is.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.update
  • is.bare-metal-server.bare-metal-server.operate
  • ``

Auditing

Calling this method generates the following auditing event.

  • is.bare-metal-server.bare-metal-server-firmware.update
  • is.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

Reinitialize a bare metal server

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.get
  • iam-identity.profile.update
  • iam-identity.profile.linkToResource
  • is.bare-metal-server.bare-metal-server.update
  • is.key.key.operate
  • is.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.

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.list
  • is.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.create
  • is.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

List cluster network interfaces

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.create
  • is.cluster-network.subnet.operate
  • is.cluster-network.subnet.update

Auditing

Calling this method generates the following auditing event.

  • is.cluster-network.interface.attach
  • is.cluster-network.interface.create
  • is.cluster-network.subnet-reserved-ip.attach
  • is.cluster-network.subnet-reserved-ip.create
  • is.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.delete
  • is.cluster-network.interface.detach
  • is.cluster-network.subnet.update
  • is.cluster-network.subnet-reserved-ip.delete
  • is.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.update
  • is.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.update
  • is.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 a cluster network subnet reserved IP

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.update
  • is.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 a cluster network subnet

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.update
  • is.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 a cluster network

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.delete
  • is.cluster-network.interface.delete
  • is.cluster-network.subnet-reserved-ip.delete
  • is.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.create
  • is.dedicated-host.dedicated-host-group.create
  • is.dedicated-host.dedicated-host-group.update

Auditing

Calling this method generates the following auditing event.

  • is.dedicated-host.dedicated-host.create
  • is.dedicated-host.dedicated-host-group.create
  • is.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

List dynamic route servers

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.list
  • is.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

Create a dynamic route server

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.create
  • is.vpc.vpc.operate
  • is.subnet.subnet.operate
  • is.virtual-network-interface.virtual-network-interface.operate
  • is.virtual-network-interface.virtual-network-interface.create
  • is.security-group.security-group.operate

Auditing

Calling this method generates the following auditing event.

  • is.dynamic-route-server.dynamic-route-server.create
  • is.dynamic-route-server.member.create
  • is.dynamic-route-server.member.attach
  • is.virtual-network-interface.virtual-network-interface.create
  • is.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

List members of a dynamic route server

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.read
  • is.dynamic-route-server.member.list

Auditing

Calling this method generates the following auditing event.

  • is.dynamic-route-server.dynamic-route-server.read
  • is.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.create
  • is.virtual-network-interface.virtual-network-interface.operate
  • is.subnet.subnet.operate
  • is.virtual-network-interface.virtual-network-interface.create
  • is.security-group.security-group.operate

Auditing

Calling this method generates the following auditing event.

  • is.dynamic-route-server.dynamic-route-server-virtual_network_interface.attach
  • is.virtual-network-interface.virtual-network-interface.attach
  • is.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.delete
  • is.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.detach
  • is.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

List peer groups for a dynamic route server

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.list
  • is.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.create
  • is.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:

- &#x60;degraded&#x60;: One or more dynamic route server peer group peers
were unable to establish a session.
- &#x60;down&#x60;: All dynamic route server peer group peers were unable
to establish a session.
- &#x60;initializing&#x60;: The dynamic route server peer group is in the process of establishing
 sessions with its peers.
- &#x60;unknown&#x60;: The aggregate session status of the dynamic route server peer group
 peers could not be determined.
- &#x60;up&#x60;: 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

List peers in a dynamic route server peer group

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.list
  • is.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.create
  • is.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

Update a dynamic route server peer group peer

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

List policies for a dynamic route server peer group

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.list
  • is.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.create
  • is.vpc.routing-table.update

Auditing

Calling this method generates the following auditing event.

  • is.dynamic-route-server.peer-group-policy.create
  • is.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 a dynamic route server peer group policy

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.delete
  • is.dynamic-route-server.peer-group-policy.delete
  • is.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:

- &#x60;degraded&#x60;: One or more dynamic route server peer group peers
were unable to establish a session.
- &#x60;down&#x60;: All dynamic route server peer group peers were unable
to establish a session.
- &#x60;initializing&#x60;: The dynamic route server peer group is in the process of establishing
 sessions with its peers.
- &#x60;unknown&#x60;: The aggregate session status of the dynamic route server peer group
 peers could not be determined.
- &#x60;up&#x60;: 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:

- &#x60;degraded&#x60;: One or more dynamic route server peer group peers
were unable to establish a session.
- &#x60;down&#x60;: All dynamic route server peer group peers were unable
to establish a session.
- &#x60;initializing&#x60;: The dynamic route server peer group is in the process of establishing
 sessions with its peers.
- &#x60;unknown&#x60;: The aggregate session status of the dynamic route server peer group
 peers could not be determined.
- &#x60;up&#x60;: 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

Update a dynamic route server peer group

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:

- &#x60;degraded&#x60;: One or more dynamic route server peer group peers
were unable to establish a session.
- &#x60;down&#x60;: All dynamic route server peer group peers were unable
to establish a session.
- &#x60;initializing&#x60;: The dynamic route server peer group is in the process of establishing
 sessions with its peers.
- &#x60;unknown&#x60;: The aggregate session status of the dynamic route server peer group
 peers could not be determined.
- &#x60;up&#x60;: 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

List static routes for a dynamic route server

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.list
  • is.dynamic-route-server.static-route.read

Auditing

Calling this method generates the following auditing event.

  • is.dynamic-route-server.static-route.list
  • 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

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.create
  • is.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.read
  • is.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.update
  • is.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 a dynamic route server

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.delete
  • is.vpc.vpc.operate
  • is.virtual-network-interface.virtual-network-interface.operate
  • is.subnet.subnet.operate
  • is.security-group.security-group.operate

Auditing

Calling this method generates the following auditing event.

  • is.dynamic-route-server.dynamic-route-server.delete
  • is.dynamic-route-server.member.delete
  • is.dynamic-route-server.member.detach
  • is.subnet.reserved-ip.detach
  • is.subnet.reserved-ip.delete
  • is.subnet.subnet.update
  • is.security-group.security-group.detach
  • is.virtual-network-interface.virtual-network-interface.detach
  • is.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

List endpoint gateways

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.list
  • is.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.create
  • is.vpc.vpc.operate
  • is.subnet.subnet.update
  • is.subnet.subnet.operate
  • is.security-group.security-group.operate

Auditing

Calling this method generates the following auditing event.

  • is.endpoint-gateway.endpoint-gateway.create
  • is.endpoint-gateway.endpoint-gateway.attach
  • is.subnet.reserved-ip.create
  • is.subnet.reserved-ip.attach
  • is.security-group.security-group.attach
  • is.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.operate
  • is.subnet.subnet.operate

Auditing

Calling this method generates the following auditing event.

  • is.endpoint-gateway.endpoint-gateway.detach
  • is.subnet.reserved-ip.detach
  • is.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

Bind a reserved IP to an endpoint gateway

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.operate
  • is.subnet.subnet.operate

Auditing

Calling this method generates the following auditing event.

  • is.endpoint-gateway.endpoint-gateway.attach
  • is.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

List resource bindings for an endpoint gateway

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

DNS sharing connected topology.">

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

DNS sharing topology must contain an endpoint gateway with the same `target` service as this endpoint gateway.">

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.delete
  • is.subnet.reserved-ip.detach
  • is.endpoint-gateway.endpoint-gateway.detach
  • is.subnet.reserved-ip.delete
  • is.security-group.security-group.detach
  • is.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.list
  • is.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.create
  • is.bare-metal-server.bare-metal-server.operate
  • is.instance.instance.operate
  • is.virtual-network-interface.virtual-network-interface.operate
  • is.public-address-range-authorized-cidr.authorized-cidr.operate

Auditing

Calling this method generates the following auditing event.

  • is.floating-ip.floating-ip.create
  • is.floating-ip.floating-ip.attach
  • is.instance.network-interface.attach
  • is.bare-metal-server.network-interface.attach
  • is.virtual-network-interface.virtual-network-interface.attach
  • is.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.delete
  • is.public-address-range-authorized-cidr.authorized-cidr.operate

Auditing

Calling this method generates the following auditing event.

  • is.floating-ip.floating-ip.delete
  • is.floating-ip.floating-ip.detach
  • is.bare-metal-server.network-interface.detach
  • is.instance.network-interface.detach
  • is.virtual-network-interface.virtual-network-interface.detach
  • is.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.update
  • is.floating-ip.floating-ip.operate
  • is.bare-metal-server.bare-metal-server.operate
  • is.instance.instance.operate
  • is.virtual-network-interface.virtual-network-interface.operate

Auditing

Calling this method generates the following auditing event.

  • is.floating-ip.floating-ip.update
  • is.floating-ip.floating-ip.attach
  • is.floating-ip.floating-ip.detach
  • is.bare-metal-server.network-interface.attach
  • is.bare-metal-server.network-interface.detach
  • is.instance.network-interface.attach
  • is.instance.network-interface.detach
  • is.virtual-network-interface.virtual-network-interface.attach
  • is.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.create
  • is.vpc.vpc.operate
  • is.subnet.subnet.operate
  • is.instance.instance.operate

Auditing

Calling this method generates the following auditing event.

  • is.flow-log-collector.flow-log-collector.create
  • is.flow-log-collector.flow-log-collector.attach
  • is.instance.instance.attach
  • is.instance.network-attachment.attach
  • is.instance.network-interface.attach
  • is.subnet.subnet.attach
  • is.virtual-network-interface.virtual-network-interface.attach
  • is.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 a flow log collector

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.delete
  • is.flow-log-collector.flow-log-collector.detach
  • is.instance.instance.detach
  • is.instance.network-interface.detach
  • is.instance.network-attachment.detach
  • is.subnet.subnet.detach
  • is.virtual-network-interface.virtual-network-interface.detach
  • is.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.read
  • is.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.list
  • is.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.create
  • is.image.image.deprecate
  • is.image.image.obsolete
  • is.volume.volume.operate
  • is.instance.instance.operate
  • is.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.update
  • is.image.image.deprecate
  • is.image.image.obsolete
  • is.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

Deprecate an image

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

Obsolete an image

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

List export jobs for an image

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.operate
  • is.image.image.export

Auditing

Calling this method generates the following auditing event.

  • is.image.image.export
  • is.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.operate
  • is.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

Create an instance template

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.

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.list
  • is.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.create
  • is.instance.instance-template.read
  • is.subnet.subnet.operate
  • is.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.delete
  • is.instance.instance.delete
  • is.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.update
  • is.instance.instance-template.read
  • is.subnet.subnet.operate
  • is.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.list
  • is.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.update
  • is.instance.instance.delete
  • is.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.list
  • is.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

Create an instance

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.create
  • is.instance.instance.ip-spoofing
  • is.subnet.subnet.operate
  • is.subnet.subnet.update
  • is.reservation.reservation.operate
  • is.volume.volume.create
  • is.volume.volume.manage-allowed-use
  • is.volume.volume.operate
  • is.security-group.security-group.operate
  • is.vpc.vpc.operate
  • is.key.key.operate
  • is.image.image.operate
  • is.dedicated-host.dedicated-host-group.operate
  • is.dedicated-host.dedicated-host.operate
  • is.snapshot.snapshot.operate
  • is.placement-group.placement-group.operate
  • globalcatalog-collection.instance.retrieve
  • iam-identity.profile.get
  • iam-identity.profile.update
  • iam-identity.profile.linkToResource
  • is.volume.volume.allow-remote-account-snapshot-restore
  • is.volume.volume.manage-attachment-mode
  • is.cluster-network.interface.create
  • is.cluster-network.interface.operate
  • is.cluster-network.subnet.operate
  • is.cluster-network.subnet.update
  • is.virtual-network-interface.virtual-network-interface.create
  • is.virtual-network-interface.virtual-network-interface.operate
  • is.virtual-network-interface.virtual-network-interface.manage-infrastructure-nat
  • is.virtual-network-interface.virtual-network-interface.manage-ip-spoofing
  • is.virtual-network-interface.virtual-network-interface.manage-protocol-state-filtering-mode

Auditing

Calling this method generates the following auditing event.

  • is.instance.instance.create
  • is.instance.network-attachment.create
  • is.instance.network-interface.create
  • is.instance.network-interface.attach
  • is.subnet.reserved-ip.attach
  • is.subnet.reserved-ip.create
  • is.security-group.security-group.attach
  • is.subnet.subnet.update
  • is.cluster-network.interface.attach
  • is.cluster-network.interface.create
  • is.cluster-network.subnet.update
  • is.cluster-network.subnet-reserved-ip.attach
  • is.cluster-network.subnet-reserved-ip.create
  • is.instance.cluster-network-attachment.attach
  • is.instance.cluster-network-attachment.create
  • is.instance.software-attachment.create
  • is.virtual-network-interface.virtual-network-interface.create
  • is.virtual-network-interface.virtual-network-interface.attach
  • is.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.

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.delete
  • is.instance.network-attachment.delete
  • is.instance.network-attachment.detach
  • is.instance.network-interface.delete
  • is.instance.network-interface.detach
  • is.subnet.reserved-ip.detach
  • is.subnet.reserved-ip.delete
  • is.security-group.security-group.detach
  • is.subnet.subnet.update
  • is.virtual-network-interface.virtual-network-interface.detach
  • is.virtual-network-interface.virtual-network-interface.delete
  • is.floating-ip.floating-ip.detach
  • is.flow-log-collector.flow-log-collector.delete
  • is.flow-log-collector.flow-log-collector.detach
  • is.cluster-network.interface.delete
  • is.cluster-network.interface.detach
  • is.cluster-network.subnet-reserved-ip.delete
  • is.cluster-network.subnet-reserved-ip.detach
  • is.cluster-network.subnet.update
  • is.instance.cluster-network-attachment.delete
  • is.instance.cluster-network-attachment.detach
  • is.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

Update an instance

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.update
  • is.reservation.reservation.operate
  • is.dedicated-host.dedicated-host-group.operate
  • is.dedicated-host.dedicated-host.operate

Auditing

Calling this method generates the following auditing event.

  • is.instance.instance.update
  • is.instance.instance.detach
  • is.reservation.reservation.detach
  • is.instance.instance.attach
  • is.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

Reinitialize an instance

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.update
  • is.volume.volume.create
  • is.volume.volume.operate
  • is.key.key.operate
  • is.image.image.operate
  • is.snapshot.snapshot.operate
  • iam-identity.profile.get
  • iam-identity.profile.update
  • iam-identity.profile.linkToResource
  • is.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.

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

Create a cluster network attachment

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.create
  • is.cluster-network.interface.operate
  • is.cluster-network.subnet.operate
  • is.cluster-network.subnet.update
  • is.instance.instance.update

Auditing

Calling this method generates the following auditing event.

  • is.cluster-network.interface.attach
  • is.cluster-network.interface.create
  • is.cluster-network.subnet.update
  • is.cluster-network.subnet-reserved-ip.attach
  • is.cluster-network.subnet-reserved-ip.create
  • is.instance.cluster-network-attachment.attach
  • is.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 an instance cluster network attachment

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.delete
  • is.cluster-network.interface.detach
  • is.cluster-network.subnet-reserved-ip.delete
  • is.cluster-network.subnet-reserved-ip.detach
  • is.cluster-network.subnet.update
  • is.instance.cluster-network-attachment.delete
  • is.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.operate
  • is.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

List network attachments on an instance

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.update
  • is.security-group.security-group.operate
  • is.subnet.subnet.operate
  • is.subnet.subnet.update
  • is.virtual-network-interface.virtual-network-interface.create
  • is.virtual-network-interface.virtual-network-interface.operate
  • is.virtual-network-interface.virtual-network-interface.manage-infrastructure-nat
  • is.virtual-network-interface.virtual-network-interface.manage-ip-spoofing
  • is.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.create
  • is.virtual-network-interface.virtual-network-interface.attach
  • is.instance.network-attachment.attach
  • is.instance.network-attachment.create
  • is.security-group.security-group.attach
  • is.subnet.reserved-ip.create
  • is.subnet.subnet.update
  • is.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.delete
  • is.instance.network-attachment.detach
  • is.virtual-network-interface.virtual-network-interface.detach
  • is.virtual-network-interface.virtual-network-interface.delete
  • is.floating-ip.floating-ip.detach
  • is.subnet.reserved-ip.detach
  • is.subnet.reserved-ip.delete
  • is.subnet.subnet.update
  • is.security-group.security-group.detach
  • is.flow-log-collector.flow-log-collector.delete
  • is.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

read-only representation of its corresponding network attachment and its attached virtual network interface.">

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

read-only representation of its corresponding network attachment and its attached virtual network interface, and new network interfaces are not allowed to be created.">

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.update
  • is.instance.instance.ip-spoofing
  • is.security-group.security-group.operate
  • is.subnet.subnet.operate
  • is.subnet.subnet.update

Auditing

Calling this method generates the following auditing event.

  • is.instance.network-interface.create
  • is.instance.network-interface.attach
  • is.subnet.reserved-ip.create
  • is.subnet.reserved-ip.attach
  • is.security-group.security-group.attach
  • is.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

read-only representation of its corresponding network attachment and its attached virtual network interface, and is not allowed to be deleted.">

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.delete
  • is.instance.network-interface.detach
  • is.floating-ip.floating-ip.detach
  • is.security-group.security-group.detach
  • is.subnet.reserved-ip.detach
  • is.subnet.reserved-ip.delete
  • is.subnet.subnet.update
  • is.flow-log-collector.flow-log-collector.delete
  • is.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

read-only representation of its corresponding network attachment and its attached virtual network interface.">

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

read-only representation of its corresponding network attachment and its attached virtual network interface, and is not allowed to be updated.">

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.update
  • is.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.read
  • is.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.operate
  • is.floating-ip.floating-ip.operate

Auditing

Calling this method generates the following auditing event.

  • is.instance.network-interface.detach
  • is.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.read
  • is.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

Associate a floating IP with an instance network interface

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.operate
  • is.floating-ip.floating-ip.operate

Auditing

Calling this method generates the following auditing event.

  • is.instance.network-interface.attach
  • is.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.read
  • 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

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.read
  • 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 reserved IP address with the specified identifier could not be found

errors

array

The errors that occurred.

trace

string

The unique error identifier

List instance software attachments associated with an instance

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.read
  • is.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.update
  • is.volume.volume.operate
  • is.volume.volume.create
  • is.snapshot.snapshot.operate
  • is.volume.volume.allow-remote-account-snapshot-restore
  • is.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.operate
  • is.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.read
  • is.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.list
  • is.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.manage
  • is.security-group.security-group.operate
  • is.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.delete
  • is.load-balancer.load-balancer-pool-member.delete
  • is.load-balancer.pool-member.detach
  • is.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.manage
  • is.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.

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.delete
  • is.load-balancer.pool-member.detach
  • is.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

Create a member in a load balancer pool

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.create
  • is.load-balancer.pool-member.attach
  • is.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.delete
  • is.load-balancer.pool-member.detach
  • is.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.update
  • is.load-balancer.pool-member.detach
  • is.load-balancer.load-balancer.detach
  • is.load-balancer.pool-member.attach
  • is.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.list
  • is.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.create
  • is.network-acl.network-acl.read
  • is.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.list
  • is.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.read
  • is.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.create
  • is.vpc.vpc.operate
  • is.load-balancer.load-balancer.manage

Auditing

Calling this method generates the following auditing event.

  • is.private-path-service-gateway.private-path-service-gateway.create
  • is.private-path-service-gateway.load-balancer.attach
  • is.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.delete
  • is.load-balancer.load-balancer.manage
  • is.private-path-service-gateway.load-balancer.detach
  • is.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.update
  • is.load-balancer.load-balancer.operate

Auditing

Calling this method generates the following auditing event.

  • is.private-path-service-gateway.private-path-service-gateway.update
  • is.private-path-service-gateway.load-balancer.detach
  • is.load-balancer.private-path-service-gateway.detach
  • is.private-path-service-gateway.load-balancer.attach
  • is.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

List account policies for a private path service gateway

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

List endpoint gateway bindings for a private path service gateway

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.update
  • is.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.update
  • is.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-account
  • is.private-path-service-gateway.endpoint-gateway-binding.deny
  • is.private-path-service-gateway.account-policy.update
  • is.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.update
  • is.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.update
  • is.private-path-service-gateway.private-path-service-gateway.unpublish
  • is.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 authorized CIDRs

GET /public_address_range/authorized_cidrs

This request lists public address range authorized CIDRs available in the region. An authorized CIDR specifies a contiguous block of public IP addresses authorized for allocating public address ranges from.

The authorized CIDRs will be sorted by ascending `cidr` 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-authorized-cidr.authorized-cidr.list
  • is.public-address-range-authorized-cidr.authorized-cidr.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

allocation.profile_family

string

Filters the collection to resources with an `allocation.profile_family` property matching the exact specified value.

availability_mode

string

Filters the collection to resources with an `availability_mode` property matching the exact specified value.

Response

200 - The public address range authorized CIDRs were retrieved successfully.

authorized_cidrs

array

A page of public address range authorized CIDRs

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 public address range authorized CIDR

POST /public_address_range/authorized_cidrs

This request creates a new public address range authorized CIDRs from a public address range authorized CIDR prototype object. The prototype object is structured in the same way as a retrieved public address range authorized CIDR, and contains the information necessary to create the new public address range authorized CIDR.

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action.

  • is.public-address-range-authorized-cidr.authorized-cidr.create

Auditing

Calling this method generates the following auditing event.

  • is.public-address-range-authorized-cidr.authorized-cidr.create

Request

Request Body

PublicAddressRangeAuthorizedCIDRPrototype

The public address range authorized CIDR prototype object

ip_version

Required *

string

The IP version for this public address range authorized CIDR:

  • `ipv6`: An IPv6 public address range authorized CIDR.

name

string

The name for this public address range authorized CIDR. The name must not be used by another public address range authorized CIDR in the region. Names beginning 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.

Response

201 - The public address range authorized CIDR was created successfully.

allocation

PublicAddressRangeAuthorizedCIDRAllocation

availability_mode

string

The availability mode of the public address range authorized CIDR:

  • `regional`: Resources allocated from the authorized CIDR can reside in any zone in the region.
  • `zonal`: Resources allocated from the authorized CIDR must reside in the authorized CIDR's `zone`.

The enumerated values for this property may expand in the future.

cidr

string

The public IP address block for the public address range authorized CIDR, expressed in CIDR format.

created_at

string

The date and time that the public address range authorized CIDR was created.

crn

string

The CRN for this public address range authorized CIDR

href

string

The URL for this public address range authorized CIDR.

id

string

The unique identifier for this public address range authorized CIDR.

ip_version

string

The IP version for this public address range authorized CIDR:

  • `ipv4`: An IPv4 public address range authorized CIDR.
  • `ipv6`: An IPv6 public address range authorized CIDR.

lifecycle_reasons

array

The reasons for the current `lifecycle_state` (if any).

lifecycle_state

object

The lifecycle state of the public address range authorized CIDR.

name

string

The name for this public address range authorized CIDR. The name is unique across all public address range authorized CIDRs in the region.

network_prefix_length

integer

The network prefix length for this public address range authorized CIDR.

resource_group

object

The resource_group for this public address range authorized CIDR.

resource_type

string

The resource type

zone

object

The zone for this public address range authorized CIDR. Resources allocated from this authorized CIDR must reside in this zone.

400 - An invalid public address range authorized CIDR prototype object was provided.

errors

array

The errors that occurred.

trace

string

The unique error identifier

409 - The public address range authorized CIDR prototype object conflicts with another

public address range authorized CIDR in the region.

errors

array

The errors that occurred.

trace

string

The unique error identifier

List public address range authorized CIDR allocations

GET /public_address_range/authorized_cidrs/{authorized_cidr_id}/allocations

This request lists allocations for a public address range authorized CIDR. An allocation specifies a contiguous block of public IP addresses allocated from the public address range authorized CIDR. The allocations do not overlap.

The allocations will be sorted by their address offset in the authorized CIDR.

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action.

  • is.public-address-range-authorized-cidr.authorized-cidr.read

Auditing

Calling this method generates the following auditing event.

  • is.public-address-range-authorized-cidr.authorized-cidr.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

allocations[].resource_type

string

Filters the collection to resources with an item in the `allocations` property with a `resource_type` property matching the specified value.

Response

200 - The public address range authorized CIDR allocations were retrieved successfully.

allocations

array

The floating IPs and public address ranges allocated from this public address range authorized CIDR.

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

Retrieve a public address range authorized CIDR

GET /public_address_range/authorized_cidrs/{authorized_cidr_id}/allocations/{id}

This request retrieves a single public address range authorized CIDR 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.public-address-range-authorized-cidr.authorized-cidr.read

Auditing

Calling this method generates the following auditing event.

  • is.public-address-range-authorized-cidr.authorized-cidr.read

Request

Response

200 - The public address range authorized CIDR was retrieved successfully

404 - A public address range authorized CIDR with the specified name could not be found.

errors

array

The errors that occurred.

trace

string

The unique error identifier

Delete a public address range authorized CIDR

DELETE /public_address_range/authorized_cidrs/{id}

This request deletes a public address range authorized CIDR. This operation cannot be reversed.

For this request to succeed, `allocation.count` must be `0`.

If its `name` begins with `ibm-`, then the authorized CIDR is managed by the provider 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.public-address-range-authorized-cidr.authorized-cidr.delete

Auditing

Calling this method generates the following auditing event.

  • is.public-address-range-authorized-cidr.authorized-cidr.delete

Request

Response

204 - The public address range authorized CIDR was deleted successfully.

403 - The public address range authorized CIDR is managed by the provider and is not allowed

to be deleted.

errors

array

The errors that occurred.

trace

string

The unique error identifier

404 - A public address range authorized CIDR 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 authorized CIDR cannot be deleted because it has allocations.

errors

array

The errors that occurred.

trace

string

The unique error identifier

Retrieve a public address range authorized CIDR

GET /public_address_range/authorized_cidrs/{id}

This request retrieves a single public address range authorized CIDR 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.public-address-range-authorized-cidr.authorized-cidr.read

Auditing

Calling this method generates the following auditing event.

  • is.public-address-range-authorized-cidr.authorized-cidr.read

Request

Response

200 - The public address range authorized CIDR was retrieved successfully

allocation

PublicAddressRangeAuthorizedCIDRAllocation

availability_mode

string

The availability mode of the public address range authorized CIDR:

  • `regional`: Resources allocated from the authorized CIDR can reside in any zone in the region.
  • `zonal`: Resources allocated from the authorized CIDR must reside in the authorized CIDR's `zone`.

The enumerated values for this property may expand in the future.

cidr

string

The public IP address block for the public address range authorized CIDR, expressed in CIDR format.

created_at

string

The date and time that the public address range authorized CIDR was created.

crn

string

The CRN for this public address range authorized CIDR

href

string

The URL for this public address range authorized CIDR.

id

string

The unique identifier for this public address range authorized CIDR.

ip_version

string

The IP version for this public address range authorized CIDR:

  • `ipv4`: An IPv4 public address range authorized CIDR.
  • `ipv6`: An IPv6 public address range authorized CIDR.

lifecycle_reasons

array

The reasons for the current `lifecycle_state` (if any).

lifecycle_state

object

The lifecycle state of the public address range authorized CIDR.

name

string

The name for this public address range authorized CIDR. The name is unique across all public address range authorized CIDRs in the region.

network_prefix_length

integer

The network prefix length for this public address range authorized CIDR.

resource_group

object

The resource_group for this public address range authorized CIDR.

resource_type

string

The resource type

zone

object

The zone for this public address range authorized CIDR. Resources allocated from this authorized CIDR must reside in this zone.

404 - A public address range authorized CIDR with the specified name could not be found.

errors

array

The errors that occurred.

trace

string

The unique error identifier

Update a public address range authorized CIDR

PATCH /public_address_range/authorized_cidrs/{id}

This request updates a public address range authorized CIDR with the information in a provided public address range authorized CIDR patch. The public address range authorized CIDR patch object is structured in the same way as a retrieved public address range authorized CIDR 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-authorized-cidr.authorized-cidr.update

Auditing

Calling this method generates the following auditing event.

  • is.public-address-range-authorized-cidr.authorized-cidr.update

Request

Request Body

The public address range authorized CIDR patch

Response

200 - The public address range authorized CIDR was updated successfully.

allocation

PublicAddressRangeAuthorizedCIDRAllocation

availability_mode

string

The availability mode of the public address range authorized CIDR:

  • `regional`: Resources allocated from the authorized CIDR can reside in any zone in the region.
  • `zonal`: Resources allocated from the authorized CIDR must reside in the authorized CIDR's `zone`.

The enumerated values for this property may expand in the future.

cidr

string

The public IP address block for the public address range authorized CIDR, expressed in CIDR format.

created_at

string

The date and time that the public address range authorized CIDR was created.

crn

string

The CRN for this public address range authorized CIDR

href

string

The URL for this public address range authorized CIDR.

id

string

The unique identifier for this public address range authorized CIDR.

ip_version

string

The IP version for this public address range authorized CIDR:

  • `ipv4`: An IPv4 public address range authorized CIDR.
  • `ipv6`: An IPv6 public address range authorized CIDR.

lifecycle_reasons

array

The reasons for the current `lifecycle_state` (if any).

lifecycle_state

object

The lifecycle state of the public address range authorized CIDR.

name

string

The name for this public address range authorized CIDR. The name is unique across all public address range authorized CIDRs in the region.

network_prefix_length

integer

The network prefix length for this public address range authorized CIDR.

resource_group

object

The resource_group for this public address range authorized CIDR.

resource_type

string

The resource type

zone

object

The zone for this public address range authorized CIDR. Resources allocated from this authorized CIDR must reside in this zone.

400 - An invalid public address range authorized CIDR patch was provided.

errors

array

The errors that occurred.

trace

string

The unique error identifier

403 - The public address range authorized CIDR is managed by the provider and is not

allowed to be updated.

errors

array

The errors that occurred.

trace

string

The unique error identifier

404 - A public address range authorized CIDR 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 authorized CIDR patch conflicts with another public address

range authorized CIDR in the region.

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

List public address ranges

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.list
  • 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

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.create
  • is.vpc.vpc.operate
  • is.virtual-network-interface.virtual-network-interface.operate
  • is.public-address-range-authorized-cidr.authorized-cidr.operate

Auditing

Calling this method generates the following auditing event.

  • is.public-address-range.public-address-range.create
  • is.public-address-range.public-address-range.attach
  • is.vpc.vpc.attach
  • is.virtual-network-interface.virtual-network-interface.attach
  • is.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.delete
  • is.vpc.vpc.operate
  • is.virtual-network-interface.virtual-network-interface.operate
  • is.public-address-range-authorized-cidr.authorized-cidr.operate

Auditing

Calling this method generates the following auditing event.

  • is.public-address-range.public-address-range.delete
  • is.public-address-range.public-address-range.detach
  • is.vpc.vpc.detach
  • is.virtual-network-interface.virtual-network-interface.detach
  • is.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.update
  • is.vpc.vpc.operate
  • is.virtual-network-interface.virtual-network-interface.operate

Auditing

Calling this method generates the following auditing event.

  • is.public-address-range.public-address-range.update
  • is.public-address-range.public-address-range.attach
  • is.public-address-range.public-address-range.detach
  • is.vpc.vpc.attach
  • is.vpc.vpc.detach
  • is.virtual-network-interface.virtual-network-interface.attach
  • is.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.list
  • is.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

Create a public gateway

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.create
  • is.vpc.vpc.operate
  • is.floating-ip.floating-ip.create
  • is.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

List reservations

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.list
  • is.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.list
  • 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

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.create
  • is.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

Remove a target from a security group

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.operate
  • is.instance.instance.operate
  • is.bare-metal-server.bare-metal-server.operate
  • is.virtual-network-interface.virtual-network-interface.operate
  • is.load-balancer.load-balancer.manage
  • is.endpoint-gateway.endpoint-gateway.operate
  • is.vpn-server.vpn-server.operate
  • is.dynamic-route-server.dynamic-route-server.operate

Auditing

Calling this method generates the following auditing event.

  • is.endpoint-gateway.endpoint-gateway.update
  • is.instance.network-interface.update
  • is.bare-metal-server.network-interface.update
  • is.load-balancer.load-balancer.update
  • is.vpn-server.vpn-server.update
  • is.security-group.security-group.detach
  • is.virtual-network-interface.virtual-network-interface.detach
  • is.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

Add a target to a security group

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.operate
  • is.instance.instance.operate
  • is.bare-metal-server.bare-metal-server.operate
  • is.virtual-network-interface.virtual-network-interface.operate
  • is.load-balancer.load-balancer.manage
  • is.endpoint-gateway.endpoint-gateway.operate
  • is.vpn-server.vpn-server.operate
  • is.dynamic-route-server.dynamic-route-server.operate

Auditing

Calling this method generates the following auditing event.

  • is.endpoint-gateway.endpoint-gateway.update
  • is.instance.network-interface.update
  • is.bare-metal-server.network-interface.update
  • is.load-balancer.load-balancer.update
  • is.vpn-server.vpn-server.update
  • is.security-group.security-group.attach
  • is.virtual-network-interface.virtual-network-interface.attach
  • is.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 file share profiles

GET /share/profiles

This request lists file share profiles available in the region. A file share profile specifies the performance characteristics and pricing model for a file share.

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

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 share 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 share profiles

total_count

integer

The total number of resources across all pages

Retrieve a file share profile

GET /share/profiles/{name}

This request retrieves a single file share 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 file share profile name

Query Parameters

Response

200 - The share profile was retrieved successfully

allowed_access_protocols

object

The possible allowed access protocols for a share with this profile.

allowed_transit_encryption_modes

object

The possible allowed transit encryption modes for a share with this profile.

availability_modes

object

The data availability mode of a share with this profile.

bandwidth

object

The permitted bandwidth (in megabits per second) for a share with this profile.

capacity

object

The permitted capacity range (in gigabytes) for a share with this profile

family

string

The product family this share profile belongs to.

The enumerated values for this property may expand in the future.

href

string

The URL for this share profile.

iops

object

The permitted IOPS range for a share with this profile

name

string

The globally unique name for this share profile.

resource_type

string

The resource type

storage_generation

object

The storage generation for a share with this profile.

404 - A file share profile with the specified name could not be found.

errors

array

The errors that occurred.

trace

string

The unique error identifier

List file shares

GET /shares

This request lists file shares in the region.

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action.

  • is.share.share.list
  • is.share.share.read

Auditing

Calling this method generates the following auditing event.

  • is.share.share.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.

replication_role

Filters the collection to file shares with a `replication_role` property matching the specified value.

Response

200 - The file shares 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

shares

array

A page of file shares

total_count

integer

The total number of resources across all pages

Create a file share

POST /shares

This request provisions new file shares from a share prototype object. The new file shares can be a standalone share, a replica share, or both a source and replica share.

The prototype object is structured in the same way as a retrieved share, and contains the information necessary to provision the new file shares.

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action.

  • is.share.share.create
  • is.share.share.operate
  • is.vpc.vpc.operate
  • is.virtual-network-interface.virtual-network-interface.create
  • is.subnet.subnet.update
  • is.virtual-network-interface.virtual-network-interface.manage-protocol-state-filtering-mode
  • is.share.accessor-binding.create
  • is.share.share.allow-remote-account-access

Auditing

Calling this method generates the following auditing event.

  • is.share.share.create
  • is.share.accessor-binding.create

Request

Request Body

SharePrototype

The file share prototype object

allowed_transit_encryption_modes

array

The transit encryption modes to allow for this share. If unspecified:

  • If share mount targets are specified, then only transit encryption modes specified by those share mount target will be allowed.
  • Otherwise, the default allowed transit encryption modes from the profile will be used.

mount_targets

array

The mount targets for the file share. Each mount target must be in a unique VPC.

name

string

The name for this share. The name must not be used by another share in the region. If unspecified, the name will be a hyphenated list of randomly-selected words.

replica_share

SharePrototypeShareContext

Configuration for a replica file share to create and associate with this file share. If unspecified, a replica may be subsequently added by creating a new file share with a `source_share` referencing this file share.

Replica file shares can only be created for shares with an `availability_mode` of `zonal`.

allowed_transit_encryption_modes

array

The transit encryption modes to allow for this share. If unspecified:

  • If share mount targets are specified, then only transit encryption modes specified by those share mount target will be allowed.
  • Otherwise, the default allowed transit encryption modes from the profile will be used.
iops

integer

The maximum input/output operations per second (IOPS) for the file share.

If the share profile has an `iops.type` of `dependent` or `fixed`, this property is system-managed and must not be specified. Otherwise, the specified value must be within the `iops` range of the share profile as supported by the share's specified size.

mount_targets

array

The mount targets for this replica file share. Each mount target must be in a unique VPC.

A replica's mount targets must be mounted read-only.

name

string

The name for this share. The name must not be used by another share in the region. If unspecified, the name will be a hyphenated list of randomly-selected words.

profile

Required *

object

The profile to use for this file share. The profile must:

  • support the share's specified IOPS and size, and
  • have the same `storage_generation` as the share.
replication_cron_spec

Required *

string

The cron specification for the file share replication schedule.

Replication of a share can be scheduled to occur at most once every 15 minutes.

resource_group

object

The resource group to use. If unspecified, the account's default resource group will be used.

user_tags

array

The tags for this resource.

zone

object

The zone this replica file share will reside in. For a replica share in the same region as the source share, this must be a different zone from the source share.

user_tags

array

The tags for this resource.

Response

201 - The file share was created successfully.

access_control_mode

string

The access control mode for the share:

  • `security_group`: The security groups on the virtual network interface for a mount target control access to the mount target.
  • `vpc`: All clients in the VPC for a mount target have access to the mount target.

The enumerated values for this property may expand in the future.

accessor_binding_role

string

The accessor binding role of this file share:

  • `none`: This file share is not participating in access with another file share
  • `origin`: This file share is the origin for one or more file shares (which may be in other accounts)
  • `accessor`: This file share is providing access to another file share (which may be in another account)

accessor_bindings

array

The accessor bindings for this file share. Each accessor binding identifies a resource (possibly in another account) with access to this file share's data and its snapshots.

allowed_access_protocols

array

The access protocols to allow for this share:

  • `nfs4`: NFSv4 is used to access this share via its associated share mount target.

The enumerated values for this property may expand in the future.

allowed_transit_encryption_modes

array

The transit encryption modes allowed for this share:

  • `none`: Not encrypted in transit.
  • `ipsec`: Encrypted in transit using an instance identity certificate.
  • `stunnel`: Encrypted in transit using a connection via the installed stunnel client.

The enumerated values for this property may expand in the future.

availability_mode

string

The data availability mode of the share: - `zonal`: The share's data will be available provided the `zone` of the share is available. Additionally, disasters affecting the zone may lead to data loss. - `regional`: The share's data will be available provided at least one zone in the region is available. Additionally, disasters affecting the entire region may lead to data loss.

The enumerated values for this property may expand in the future.

bandwidth

integer

The maximum bandwidth (in megabits per second) for the share.

created_at

string

The date and time that the file share is created

crn

string

The CRN for this file share

encryption

string

The type of encryption used for this file share

encryption_key

object

The key used to encrypt this file share.

This property will be present if `encryption` is `user_managed`.

href

string

The URL for this file share

id

string

The unique identifier for this file share

initial_owner

object

The owner assigned to the file share at creation.

iops

integer

The maximum input/output operations per second (IOPS) for the file share.

The maximum IOPS for a share as defined by the share's profile may increase in the future.

latest_job

object

The latest job associated with this file share.

This property will be absent if no jobs have been created for this file share.

latest_sync

ShareLatestSync

Information about the latest synchronization for this file share.

This property will be present when the `replication_role` is `replica` and at least one replication sync has been completed.

lifecycle_reasons

array

The reasons for the current `lifecycle_state` (if any).

lifecycle_state

object

The lifecycle state of the file share

mount_targets

array

The mount targets for the file share

name

string

The name for this share. The name is unique across all shares in the region.

origin_share

object

The origin share this accessor share is referring to.

This property will be present when the `accessor_binding_role` is `accessor`.

profile

object

The profile for this file share

replica_share

object

The replica file share for this source file share.

This property will be present when the `replication_role` is `source`.

replication_cron_spec

string

The cron specification for the file share replication schedule.

This property will be present when the `replication_role` is `replica`.

replication_role

string

The replication role of the file share:

  • `none`: This share is not participating in replication.
  • `replica`: This share is a replication target.
  • `source`: This share is a replication source.

The enumerated values for this property may expand in the future.

replication_status

string

The replication status of the file share:

  • `active`: This share is actively participating in replication, and the replica's data is up-to-date with the replication schedule.
  • `degraded`: This is share is participating in replication, but the replica's data has fallen behind the replication schedule.
  • `failover_pending`: This share is performing a replication failover.
  • `initializing`: This share is initializing replication.
  • `none`: This share is not participating in replication.
  • `split_pending`: This share is performing a replication split.

The enumerated values for this property may expand in the future.

replication_status_reasons

array

The reasons for the current replication status (if any).

resource_group

object

The resource group for this file share

resource_type

string

The resource type

size

integer

The size of the file share (in gigabytes), excluding share snapshots.

snapshot_count

integer

The total number of snapshots for this share.

snapshot_size

integer

The total size (in gigabytes) of snapshots used for this file share.

source_share

object

The source file share for this replica file share.

This property will be present when the `replication_role` is `replica`.

source_snapshot

object

The snapshot this file share was cloned from.

This property will be present when the share was created from a snapshot.

The resources supported by this property may expand in the future.

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 tags for this resource.

zone

object

The zone this file share resides in.

This property will be absent for shares with an `availability_mode` of `regional`.

400 - An invalid file share prototype object was provided.

errors

array

The errors that occurred.

trace

string

The unique error identifier

409 - The share prototype object conflicts with another share in the region,

or the share prototype object specified one or more of:

  • share mount targets in the same VPC
  • an encryption key that cannot be used in its current state
  • a virtual network interface with `allow_ip_spoofing` set to `true`
  • a virtual network interface with `enable_infrastructure_nat` set to `false`
  • a virtual network interface with `protocol_state_filtering_mode` set to `disabled`
  • a virtual network interface with `ips` other than the `primary_ip` address
  • a virtual network interface with a floating IP bound to it
  • a virtual network interface that is the target of a flow log collector

errors

array

The errors that occurred.

trace

string

The unique error identifier

Delete a file share

DELETE /shares/{id}

This request deletes a share. This operation cannot be reversed. A share cannot be deleted if it:

  • has share mount targets
  • has a `lifecycle_state` of `updating`
  • has a replication operation in progress

If the request is accepted, the share `lifecycle_state` will be set to `deleting`. Once deletion processing completes, it 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.share.share.delete

Auditing

Calling this method generates the following auditing event.

  • is.share.share.delete
  • is.share.snapshot.delete

Request

Path Parameters

Query Parameters

Response

202 - The file share deletion request was accepted.

access_control_mode

string

The access control mode for the share:

  • `security_group`: The security groups on the virtual network interface for a mount target control access to the mount target.
  • `vpc`: All clients in the VPC for a mount target have access to the mount target.

The enumerated values for this property may expand in the future.

accessor_binding_role

string

The accessor binding role of this file share:

  • `none`: This file share is not participating in access with another file share
  • `origin`: This file share is the origin for one or more file shares (which may be in other accounts)
  • `accessor`: This file share is providing access to another file share (which may be in another account)

accessor_bindings

array

The accessor bindings for this file share. Each accessor binding identifies a resource (possibly in another account) with access to this file share's data and its snapshots.

allowed_access_protocols

array

The access protocols to allow for this share:

  • `nfs4`: NFSv4 is used to access this share via its associated share mount target.

The enumerated values for this property may expand in the future.

allowed_transit_encryption_modes

array

The transit encryption modes allowed for this share:

  • `none`: Not encrypted in transit.
  • `ipsec`: Encrypted in transit using an instance identity certificate.
  • `stunnel`: Encrypted in transit using a connection via the installed stunnel client.

The enumerated values for this property may expand in the future.

availability_mode

string

The data availability mode of the share: - `zonal`: The share's data will be available provided the `zone` of the share is available. Additionally, disasters affecting the zone may lead to data loss. - `regional`: The share's data will be available provided at least one zone in the region is available. Additionally, disasters affecting the entire region may lead to data loss.

The enumerated values for this property may expand in the future.

bandwidth

integer

The maximum bandwidth (in megabits per second) for the share.

created_at

string

The date and time that the file share is created

crn

string

The CRN for this file share

encryption

string

The type of encryption used for this file share

encryption_key

object

The key used to encrypt this file share.

This property will be present if `encryption` is `user_managed`.

href

string

The URL for this file share

id

string

The unique identifier for this file share

initial_owner

object

The owner assigned to the file share at creation.

iops

integer

The maximum input/output operations per second (IOPS) for the file share.

The maximum IOPS for a share as defined by the share's profile may increase in the future.

latest_job

object

The latest job associated with this file share.

This property will be absent if no jobs have been created for this file share.

latest_sync

ShareLatestSync

Information about the latest synchronization for this file share.

This property will be present when the `replication_role` is `replica` and at least one replication sync has been completed.

lifecycle_reasons

array

The reasons for the current `lifecycle_state` (if any).

lifecycle_state

object

The lifecycle state of the file share

mount_targets

array

The mount targets for the file share

name

string

The name for this share. The name is unique across all shares in the region.

origin_share

object

The origin share this accessor share is referring to.

This property will be present when the `accessor_binding_role` is `accessor`.

profile

object

The profile for this file share

replica_share

object

The replica file share for this source file share.

This property will be present when the `replication_role` is `source`.

replication_cron_spec

string

The cron specification for the file share replication schedule.

This property will be present when the `replication_role` is `replica`.

replication_role

string

The replication role of the file share:

  • `none`: This share is not participating in replication.
  • `replica`: This share is a replication target.
  • `source`: This share is a replication source.

The enumerated values for this property may expand in the future.

replication_status

string

The replication status of the file share:

  • `active`: This share is actively participating in replication, and the replica's data is up-to-date with the replication schedule.
  • `degraded`: This is share is participating in replication, but the replica's data has fallen behind the replication schedule.
  • `failover_pending`: This share is performing a replication failover.
  • `initializing`: This share is initializing replication.
  • `none`: This share is not participating in replication.
  • `split_pending`: This share is performing a replication split.

The enumerated values for this property may expand in the future.

replication_status_reasons

array

The reasons for the current replication status (if any).

resource_group

object

The resource group for this file share

resource_type

string

The resource type

size

integer

The size of the file share (in gigabytes), excluding share snapshots.

snapshot_count

integer

The total number of snapshots for this share.

snapshot_size

integer

The total size (in gigabytes) of snapshots used for this file share.

source_share

object

The source file share for this replica file share.

This property will be present when the `replication_role` is `replica`.

source_snapshot

object

The snapshot this file share was cloned from.

This property will be present when the share was created from a snapshot.

The resources supported by this property may expand in the future.

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 tags for this resource.

zone

object

The zone this file share resides in.

This property will be absent for shares with an `availability_mode` of `regional`.

404 - A file share with the specified identifier could not be found.

errors

array

The errors that occurred.

trace

string

The unique error identifier

409 - The file share cannot be deleted 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 share

errors

array

The errors that occurred.

trace

string

The unique error identifier

Retrieve a file share

GET /shares/{id}

This request retrieves a single file share 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.share.share.read

Auditing

Calling this method generates the following auditing event.

  • is.share.share.read

Request

Response

200 - The file share was retrieved successfully

access_control_mode

string

The access control mode for the share:

  • `security_group`: The security groups on the virtual network interface for a mount target control access to the mount target.
  • `vpc`: All clients in the VPC for a mount target have access to the mount target.

The enumerated values for this property may expand in the future.

accessor_binding_role

string

The accessor binding role of this file share:

  • `none`: This file share is not participating in access with another file share
  • `origin`: This file share is the origin for one or more file shares (which may be in other accounts)
  • `accessor`: This file share is providing access to another file share (which may be in another account)

accessor_bindings

array

The accessor bindings for this file share. Each accessor binding identifies a resource (possibly in another account) with access to this file share's data and its snapshots.

allowed_access_protocols

array

The access protocols to allow for this share:

  • `nfs4`: NFSv4 is used to access this share via its associated share mount target.

The enumerated values for this property may expand in the future.

allowed_transit_encryption_modes

array

The transit encryption modes allowed for this share:

  • `none`: Not encrypted in transit.
  • `ipsec`: Encrypted in transit using an instance identity certificate.
  • `stunnel`: Encrypted in transit using a connection via the installed stunnel client.

The enumerated values for this property may expand in the future.

availability_mode

string

The data availability mode of the share: - `zonal`: The share's data will be available provided the `zone` of the share is available. Additionally, disasters affecting the zone may lead to data loss. - `regional`: The share's data will be available provided at least one zone in the region is available. Additionally, disasters affecting the entire region may lead to data loss.

The enumerated values for this property may expand in the future.

bandwidth

integer

The maximum bandwidth (in megabits per second) for the share.

created_at

string

The date and time that the file share is created

crn

string

The CRN for this file share

encryption

string

The type of encryption used for this file share

encryption_key

object

The key used to encrypt this file share.

This property will be present if `encryption` is `user_managed`.

href

string

The URL for this file share

id

string

The unique identifier for this file share

initial_owner

object

The owner assigned to the file share at creation.

iops

integer

The maximum input/output operations per second (IOPS) for the file share.

The maximum IOPS for a share as defined by the share's profile may increase in the future.

latest_job

object

The latest job associated with this file share.

This property will be absent if no jobs have been created for this file share.

latest_sync

ShareLatestSync

Information about the latest synchronization for this file share.

This property will be present when the `replication_role` is `replica` and at least one replication sync has been completed.

lifecycle_reasons

array

The reasons for the current `lifecycle_state` (if any).

lifecycle_state

object

The lifecycle state of the file share

mount_targets

array

The mount targets for the file share

name

string

The name for this share. The name is unique across all shares in the region.

origin_share

object

The origin share this accessor share is referring to.

This property will be present when the `accessor_binding_role` is `accessor`.

profile

object

The profile for this file share

replica_share

object

The replica file share for this source file share.

This property will be present when the `replication_role` is `source`.

replication_cron_spec

string

The cron specification for the file share replication schedule.

This property will be present when the `replication_role` is `replica`.

replication_role

string

The replication role of the file share:

  • `none`: This share is not participating in replication.
  • `replica`: This share is a replication target.
  • `source`: This share is a replication source.

The enumerated values for this property may expand in the future.

replication_status

string

The replication status of the file share:

  • `active`: This share is actively participating in replication, and the replica's data is up-to-date with the replication schedule.
  • `degraded`: This is share is participating in replication, but the replica's data has fallen behind the replication schedule.
  • `failover_pending`: This share is performing a replication failover.
  • `initializing`: This share is initializing replication.
  • `none`: This share is not participating in replication.
  • `split_pending`: This share is performing a replication split.

The enumerated values for this property may expand in the future.

replication_status_reasons

array

The reasons for the current replication status (if any).

resource_group

object

The resource group for this file share

resource_type

string

The resource type

size

integer

The size of the file share (in gigabytes), excluding share snapshots.

snapshot_count

integer

The total number of snapshots for this share.

snapshot_size

integer

The total size (in gigabytes) of snapshots used for this file share.

source_share

object

The source file share for this replica file share.

This property will be present when the `replication_role` is `replica`.

source_snapshot

object

The snapshot this file share was cloned from.

This property will be present when the share was created from a snapshot.

The resources supported by this property may expand in the future.

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 tags for this resource.

zone

object

The zone this file share resides in.

This property will be absent for shares with an `availability_mode` of `regional`.

404 - A file share with the specified identifier could not be found.

errors

array

The errors that occurred.

trace

string

The unique error identifier

Update a file share

PATCH /shares/{id}

This request updates a share with the information in a provided share patch. The share patch object is structured in the same way as a retrieved share 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.share.share.update

Auditing

Calling this method generates the following auditing event.

  • is.share.share.update

Request

Request Body

The file share patch

Path Parameters

Query Parameters

Response

200 - The file share was updated successfully.

access_control_mode

string

The access control mode for the share:

  • `security_group`: The security groups on the virtual network interface for a mount target control access to the mount target.
  • `vpc`: All clients in the VPC for a mount target have access to the mount target.

The enumerated values for this property may expand in the future.

accessor_binding_role

string

The accessor binding role of this file share:

  • `none`: This file share is not participating in access with another file share
  • `origin`: This file share is the origin for one or more file shares (which may be in other accounts)
  • `accessor`: This file share is providing access to another file share (which may be in another account)

accessor_bindings

array

The accessor bindings for this file share. Each accessor binding identifies a resource (possibly in another account) with access to this file share's data and its snapshots.

allowed_access_protocols

array

The access protocols to allow for this share:

  • `nfs4`: NFSv4 is used to access this share via its associated share mount target.

The enumerated values for this property may expand in the future.

allowed_transit_encryption_modes

array

The transit encryption modes allowed for this share:

  • `none`: Not encrypted in transit.
  • `ipsec`: Encrypted in transit using an instance identity certificate.
  • `stunnel`: Encrypted in transit using a connection via the installed stunnel client.

The enumerated values for this property may expand in the future.

availability_mode

string

The data availability mode of the share: - `zonal`: The share's data will be available provided the `zone` of the share is available. Additionally, disasters affecting the zone may lead to data loss. - `regional`: The share's data will be available provided at least one zone in the region is available. Additionally, disasters affecting the entire region may lead to data loss.

The enumerated values for this property may expand in the future.

bandwidth

integer

The maximum bandwidth (in megabits per second) for the share.

created_at

string

The date and time that the file share is created

crn

string

The CRN for this file share

encryption

string

The type of encryption used for this file share

encryption_key

object

The key used to encrypt this file share.

This property will be present if `encryption` is `user_managed`.

href

string

The URL for this file share

id

string

The unique identifier for this file share

initial_owner

object

The owner assigned to the file share at creation.

iops

integer

The maximum input/output operations per second (IOPS) for the file share.

The maximum IOPS for a share as defined by the share's profile may increase in the future.

latest_job

object

The latest job associated with this file share.

This property will be absent if no jobs have been created for this file share.

latest_sync

ShareLatestSync

Information about the latest synchronization for this file share.

This property will be present when the `replication_role` is `replica` and at least one replication sync has been completed.

lifecycle_reasons

array

The reasons for the current `lifecycle_state` (if any).

lifecycle_state

object

The lifecycle state of the file share

mount_targets

array

The mount targets for the file share

name

string

The name for this share. The name is unique across all shares in the region.

origin_share

object

The origin share this accessor share is referring to.

This property will be present when the `accessor_binding_role` is `accessor`.

profile

object

The profile for this file share

replica_share

object

The replica file share for this source file share.

This property will be present when the `replication_role` is `source`.

replication_cron_spec

string

The cron specification for the file share replication schedule.

This property will be present when the `replication_role` is `replica`.

replication_role

string

The replication role of the file share:

  • `none`: This share is not participating in replication.
  • `replica`: This share is a replication target.
  • `source`: This share is a replication source.

The enumerated values for this property may expand in the future.

replication_status

string

The replication status of the file share:

  • `active`: This share is actively participating in replication, and the replica's data is up-to-date with the replication schedule.
  • `degraded`: This is share is participating in replication, but the replica's data has fallen behind the replication schedule.
  • `failover_pending`: This share is performing a replication failover.
  • `initializing`: This share is initializing replication.
  • `none`: This share is not participating in replication.
  • `split_pending`: This share is performing a replication split.

The enumerated values for this property may expand in the future.

replication_status_reasons

array

The reasons for the current replication status (if any).

resource_group

object

The resource group for this file share

resource_type

string

The resource type

size

integer

The size of the file share (in gigabytes), excluding share snapshots.

snapshot_count

integer

The total number of snapshots for this share.

snapshot_size

integer

The total size (in gigabytes) of snapshots used for this file share.

source_share

object

The source file share for this replica file share.

This property will be present when the `replication_role` is `replica`.

source_snapshot

object

The snapshot this file share was cloned from.

This property will be present when the share was created from a snapshot.

The resources supported by this property may expand in the future.

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 tags for this resource.

zone

object

The zone this file share resides in.

This property will be absent for shares with an `availability_mode` of `regional`.

400 - An invalid file share patch was provided.

errors

array

The errors that occurred.

trace

string

The unique error identifier

404 - A file share with the specified identifier could not be found.

errors

array

The errors that occurred.

trace

string

The unique error identifier

409 - The file share patch conflicts with another file share in the region, or

the file share cannot update the specified properties 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 share

errors

array

The errors that occurred.

trace

string

The unique error identifier

List accessor bindings for a file share

GET /shares/{id}/accessor_bindings

This request lists accessor bindings for a share. Each accessor binding identifies a resource (possibly in another account) with access to this file share including its snapshots.

The share accessor bindings will be sorted by their `created_at` property values, with newest bindings first.

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action.

  • is.share.accessor-binding.list

Auditing

Calling this method generates the following auditing event.

  • is.share.accessor-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

Response

200 - The share accessor bindings were retrieved successfully.

accessor_bindings

array

A page of accessor bindings for the share

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 share accessor binding could not be found.

errors

array

The errors that occurred.

trace

string

The unique error identifier

Delete a file share accessor binding

DELETE /shares/{share_id}/accessor_bindings/{id}

This request deletes a share accessor binding. 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.share.accessor-binding.delete

Auditing

Calling this method generates the following auditing event.

  • is.share.accessor-binding.delete

Request

Response

204 - The share accessor binding was deleted successfully.

404 - A share accessor binding with the specified identifier could not be found.

errors

array

The errors that occurred.

trace

string

The unique error identifier

Retrieve a file share accessor binding

GET /shares/{share_id}/accessor_bindings/{id}

This request retrieves a single accessor 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.share.accessor-binding.read

Auditing

Calling this method generates the following auditing event.

  • is.share.accessor-binding.read

Request

Response

200 - The share accessor binding was retrieved successfully.

accessor

ShareAccessorBindingAccessor

The accessor for this share accessor binding.

created_at

string

The date and time that the share accessor binding was created

href

string

The URL for this share accessor binding

id

string

The unique identifier for this share accessor binding

lifecycle_state

object

The lifecycle state of the file share accessor binding

resource_type

string

The resource type

404 - A share accessor binding for the specified share identifier could not be found.

errors

array

The errors that occurred.

trace

string

The unique error identifier

Failover to replica file share

POST /shares/{share_id}/failover

This request triggers a failover to the replica file share specified by the identifier in the URL. The failover cannot be started if a source share or the replica share has a `lifecycle_state` of `updating`, or has a replication operation in progress.

If `fallback_policy` is specified as `split`, and the request is accepted but the failover operation cannot be performed, a split will be triggered.

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action.

  • is.share.share.operate

Auditing

Calling this method generates the following auditing event.

  • is.share.share.failover
  • is.share.share.split

Request

Request Body

ShareFailoverOptions

Options to control the failover operation

fallback_policy

string

The action to take if the failover request is accepted but cannot be performed or times out:

  • `fail`: Fail the operation, resulting in the replication relationship being unchanged.
  • `split`: Split the replica from its source, resulting in two individual read-write file shares. Because the final sync was not completed, the replica may be out-of-date. This occurs in disaster recovery scenarios where the source is known to be unreachable.

timeout

integer

The failover timeout in seconds.

If the timeout is reached, the `fallback_policy` will be triggered.

Response

202 - The file share failover request was accepted.

404 - A replica file share with the specified identifier could not be found.

errors

array

The errors that occurred.

trace

string

The unique error identifier

409 - The file share cannot perform a failover in its current state.

errors

array

The errors that occurred.

trace

string

The unique error identifier

List mount targets for a file share

GET /shares/{share_id}/mount_targets

This request lists mount targets for a file share. A mount target is a network endpoint at which a file share may be mounted. The file share can be mounted by clients in the same VPC and zone after creating share mount targets.

The share mount targets will be sorted by their `created_at` property values, with newest targets first.

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action.

  • is.share.share.read

Auditing

Calling this method generates the following auditing event.

  • is.share.mount-target.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

Response

200 - The share mount 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

mount_targets

array

A page of mount targets for the share

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 file share with the specified identifier could not be found.

errors

array

The errors that occurred.

trace

string

The unique error identifier

Create a mount target for a file share

POST /shares/{share_id}/mount_targets

This request creates a new share mount target from a share mount target prototype object.

The prototype object is structured in the same way as a retrieved share mount target, and contains the information necessary to provision the new file share mount target.

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action.

  • is.share.share.update
  • is.vpc.vpc.operate
  • is.virtual-network-interface.virtual-network-interface.create
  • is.subnet.subnet.update
  • is.virtual-network-interface.virtual-network-interface.manage-protocol-state-filtering-mode

Auditing

Calling this method generates the following auditing event.

  • is.share.share.update
  • is.share.mount-target.create
  • is.share.mount-target.attach
  • is.vpc.vpc.attach
  • is.virtual-network-interface.virtual-network-interface.create
  • is.virtual-network-interface.virtual-network-interface.attach
  • is.subnet.reserved-ip.create
  • is.subnet.reserved-ip.attach
  • is.subnet.subnet.update
  • is.security-group.security-group.attach

Request

Request Body

ShareMountTargetPrototype

The share mount target prototype object

access_protocol

Required *

string

The protocol to use to access the share for this share mount target:

  • `nfs4`: NFSv4 will be used.

The specified value must be listed in the share's `allowed_access_protocols`.

name

string

The name for this share mount target. The name must not be used by another mount target for the file share. If unspecified, the name will be a hyphenated list of randomly-selected words.

transit_encryption

Required *

string

The transit encryption mode to use for this share mount target:

  • `none`: Not encrypted in transit.
  • `ipsec`: Encrypted in transit using an instance identity certificate. The `access_control_mode` for the share must be `security_group`.
  • `stunnel`: Encrypted in transit using an stunnel connection. The `access_control_mode` for the share must be `security_group`.

The specified value must be listed in the share's `allowed_transit_encryption_modes`.

Response

201 - The share mount target was created successfully.

access_control_mode

string

The access control mode for the share:

  • `security_group`: The security groups on the virtual network interface for a mount target control access to the mount target.
  • `vpc`: All clients in the VPC for a mount target have access to the mount target.

The enumerated values for this property may expand in the future.

access_protocol

string

The protocol used to access the share for this share mount target:

  • `nfs4`: NFSv4 will be used.

The enumerated values for this property may expand in the future.

created_at

string

The date and time that the share mount target was created

href

string

The URL for this share mount target

id

string

The unique identifier for this share mount target

lifecycle_state

object

The lifecycle state of the mount target

mount_path

string

The mount path for the share. The server component of the mount path may be either an IP address or a fully qualified domain name.

This property will be absent if the `lifecycle_state` of the mount target is 'pending', `failed`, or `deleting`.

If the share's `access_control_mode` is:

  • `security_group`: The IP address used in the mount path is the `primary_ip` address of the virtual network interface for this share mount target.
  • `vpc`: The fully-qualified domain name used in the mount path is an address that resolves to the share mount target.

name

string

The name for this share mount target. The name is unique across all mount targets for the file share.

primary_ip

object

The primary IP address of the virtual network interface for the share mount target.

Absent if `access_control_mode` is `vpc`.

resource_type

string

The resource type

subnet

object

The subnet of the virtual network interface for the share mount target.

Absent if `access_control_mode` is `vpc`.

transit_encryption

string

The transit encryption mode for this share mount target:

  • `none`: Not encrypted in transit.
  • `ipsec`: Encrypted in transit using an instance identity certificate.
  • `stunnel`: Encrypted in transit using a connection via the installed stunnel client.

The enumerated values for this property may expand in the future.

virtual_network_interface

object

The virtual network interface for this file share mount target.

This property will be present when the `access_control_mode` is `security_group`.

vpc

object

If `access_control_mode` is:

  • `security_group`: The VPC for the virtual network interface for this share mount target
  • `vpc`: The VPC in which clients can mount the file share using this share mount target

400 - An invalid share mount target prototype object was provided.

errors

array

The errors that occurred.

trace

string

The unique error identifier

404 - A file share with the specified identifier could not be found.

errors

array

The errors that occurred.

trace

string

The unique error identifier

409 - The provided share mount target prototype object conflicts with another share mount

target for the share, or the provided share mount target prototype specified one or more of:

  • properties that conflict with the `access_control_mode` of the share
  • the same VPC as an existing mount target for the share
  • a virtual network interface with `allow_ip_spoofing` set to `true`
  • a virtual network interface with `enable_infrastructure_nat` set to `false`
  • a virtual network interface with `protocol_state_filtering_mode` set to `disabled`
  • a virtual network interface with `ips` other than the `primary_ip` address
  • a virtual network interface with a floating IP bound to it
  • a virtual network interface that is the target of a flow log collector

errors

array

The errors that occurred.

trace

string

The unique error identifier

Delete a file share mount target

DELETE /shares/{share_id}/mount_targets/{id}

This request deletes a share mount target. This operation cannot be reversed.

If the request is accepted, the share mount target `lifecycle_state` will be set to `deleting`. Once deletion processing completes, it 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.share.share.update
  • is.vpc.vpc.operate

Auditing

Calling this method generates the following auditing event.

  • is.share.share.update
  • is.share.mount-target.delete
  • is.share.mount-target.detach
  • is.vpc.vpc.detach
  • is.virtual-network-interface.virtual-network-interface.delete
  • is.virtual-network-interface.virtual-network-interface.detach
  • is.subnet.reserved-ip.detach
  • is.subnet.reserved-ip.delete
  • is.subnet.subnet.update
  • is.security-group.security-group.detach

Request

Response

202 - The share mount target deletion request was accepted.

access_control_mode

string

The access control mode for the share:

  • `security_group`: The security groups on the virtual network interface for a mount target control access to the mount target.
  • `vpc`: All clients in the VPC for a mount target have access to the mount target.

The enumerated values for this property may expand in the future.

access_protocol

string

The protocol used to access the share for this share mount target:

  • `nfs4`: NFSv4 will be used.

The enumerated values for this property may expand in the future.

created_at

string

The date and time that the share mount target was created

href

string

The URL for this share mount target

id

string

The unique identifier for this share mount target

lifecycle_state

object

The lifecycle state of the mount target

mount_path

string

The mount path for the share. The server component of the mount path may be either an IP address or a fully qualified domain name.

This property will be absent if the `lifecycle_state` of the mount target is 'pending', `failed`, or `deleting`.

If the share's `access_control_mode` is:

  • `security_group`: The IP address used in the mount path is the `primary_ip` address of the virtual network interface for this share mount target.
  • `vpc`: The fully-qualified domain name used in the mount path is an address that resolves to the share mount target.

name

string

The name for this share mount target. The name is unique across all mount targets for the file share.

primary_ip

object

The primary IP address of the virtual network interface for the share mount target.

Absent if `access_control_mode` is `vpc`.

resource_type

string

The resource type

subnet

object

The subnet of the virtual network interface for the share mount target.

Absent if `access_control_mode` is `vpc`.

transit_encryption

string

The transit encryption mode for this share mount target:

  • `none`: Not encrypted in transit.
  • `ipsec`: Encrypted in transit using an instance identity certificate.
  • `stunnel`: Encrypted in transit using a connection via the installed stunnel client.

The enumerated values for this property may expand in the future.

virtual_network_interface

object

The virtual network interface for this file share mount target.

This property will be present when the `access_control_mode` is `security_group`.

vpc

object

If `access_control_mode` is:

  • `security_group`: The VPC for the virtual network interface for this share mount target
  • `vpc`: The VPC in which clients can mount the file share using this share mount target

404 - A share mount target with the specified identifier could not be found for the file

share with the specified identifier.

errors

array

The errors that occurred.

trace

string

The unique error identifier

Retrieve a file share mount target

GET /shares/{share_id}/mount_targets/{id}

This request retrieves a single share mount target 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.share.share.read

Auditing

Calling this method generates the following auditing event.

  • is.share.mount-target.read

Request

Response

200 - The share mount target was retrieved successfully.

access_control_mode

string

The access control mode for the share:

  • `security_group`: The security groups on the virtual network interface for a mount target control access to the mount target.
  • `vpc`: All clients in the VPC for a mount target have access to the mount target.

The enumerated values for this property may expand in the future.

access_protocol

string

The protocol used to access the share for this share mount target:

  • `nfs4`: NFSv4 will be used.

The enumerated values for this property may expand in the future.

created_at

string

The date and time that the share mount target was created

href

string

The URL for this share mount target

id

string

The unique identifier for this share mount target

lifecycle_state

object

The lifecycle state of the mount target

mount_path

string

The mount path for the share. The server component of the mount path may be either an IP address or a fully qualified domain name.

This property will be absent if the `lifecycle_state` of the mount target is 'pending', `failed`, or `deleting`.

If the share's `access_control_mode` is:

  • `security_group`: The IP address used in the mount path is the `primary_ip` address of the virtual network interface for this share mount target.
  • `vpc`: The fully-qualified domain name used in the mount path is an address that resolves to the share mount target.

name

string

The name for this share mount target. The name is unique across all mount targets for the file share.

primary_ip

object

The primary IP address of the virtual network interface for the share mount target.

Absent if `access_control_mode` is `vpc`.

resource_type

string

The resource type

subnet

object

The subnet of the virtual network interface for the share mount target.

Absent if `access_control_mode` is `vpc`.

transit_encryption

string

The transit encryption mode for this share mount target:

  • `none`: Not encrypted in transit.
  • `ipsec`: Encrypted in transit using an instance identity certificate.
  • `stunnel`: Encrypted in transit using a connection via the installed stunnel client.

The enumerated values for this property may expand in the future.

virtual_network_interface

object

The virtual network interface for this file share mount target.

This property will be present when the `access_control_mode` is `security_group`.

vpc

object

If `access_control_mode` is:

  • `security_group`: The VPC for the virtual network interface for this share mount target
  • `vpc`: The VPC in which clients can mount the file share using this share mount target

404 - A share mount target with the specified identifier could not be found for the file

share with the specified identifier.

errors

array

The errors that occurred.

trace

string

The unique error identifier

Update a file share mount target

PATCH /shares/{share_id}/mount_targets/{id}

This request updates a share mount target with the information provided in a share mount target patch object. The share mount target patch object is structured in the same way as a retrieved share mount target 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.share.share.update

Auditing

Calling this method generates the following auditing event.

  • is.share.mount-target.update

Request

Request Body

The share mount target patch

Response

200 - The share mount target was updated successfully.

access_control_mode

string

The access control mode for the share:

  • `security_group`: The security groups on the virtual network interface for a mount target control access to the mount target.
  • `vpc`: All clients in the VPC for a mount target have access to the mount target.

The enumerated values for this property may expand in the future.

access_protocol

string

The protocol used to access the share for this share mount target:

  • `nfs4`: NFSv4 will be used.

The enumerated values for this property may expand in the future.

created_at

string

The date and time that the share mount target was created

href

string

The URL for this share mount target

id

string

The unique identifier for this share mount target

lifecycle_state

object

The lifecycle state of the mount target

mount_path

string

The mount path for the share. The server component of the mount path may be either an IP address or a fully qualified domain name.

This property will be absent if the `lifecycle_state` of the mount target is 'pending', `failed`, or `deleting`.

If the share's `access_control_mode` is:

  • `security_group`: The IP address used in the mount path is the `primary_ip` address of the virtual network interface for this share mount target.
  • `vpc`: The fully-qualified domain name used in the mount path is an address that resolves to the share mount target.

name

string

The name for this share mount target. The name is unique across all mount targets for the file share.

primary_ip

object

The primary IP address of the virtual network interface for the share mount target.

Absent if `access_control_mode` is `vpc`.

resource_type

string

The resource type

subnet

object

The subnet of the virtual network interface for the share mount target.

Absent if `access_control_mode` is `vpc`.

transit_encryption

string

The transit encryption mode for this share mount target:

  • `none`: Not encrypted in transit.
  • `ipsec`: Encrypted in transit using an instance identity certificate.
  • `stunnel`: Encrypted in transit using a connection via the installed stunnel client.

The enumerated values for this property may expand in the future.

virtual_network_interface

object

The virtual network interface for this file share mount target.

This property will be present when the `access_control_mode` is `security_group`.

vpc

object

If `access_control_mode` is:

  • `security_group`: The VPC for the virtual network interface for this share mount target
  • `vpc`: The VPC in which clients can mount the file share using this share mount target

400 - An invalid share mount target patch was provided.

errors

array

The errors that occurred.

trace

string

The unique error identifier

404 - A share mount target with the specified identifier could not be found for the file

share with the specified identifier.

errors

array

The errors that occurred.

trace

string

The unique error identifier

409 - The share mount target patch conflicts with another share mount target

for the file share.

errors

array

The errors that occurred.

trace

string

The unique error identifier

List file share snapshots

GET /shares/{share_id}/snapshots

This request lists snapshots for the specified file share, or across all accessible file shares. A snapshot preserves the data of a share at the time the snapshot was captured.

If the file share is a replica, the list will contain snapshots corresponding to snapshots on the source.

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action.

  • is.share.snapshot.list

Auditing

Calling this method generates the following auditing event.

  • is.share.snapshot.read

Request

Path Parameters

share_id

Required *

The file share identifier, or `-` to wildcard all accessible file shares.

Query Parameters

backup_policy_plan.id

Filters the collection to backup policy jobs with a `backup_policy_plan.id` property matching the specified identifier.

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

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 share 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 share snapshots

total_count

integer

The total number of resources across all pages

404 - A file share with the specified identifier could not be found.

errors

array

The errors that occurred.

trace

string

The unique error identifier

Create a snapshot for a file share

POST /shares/{share_id}/snapshots

This request creates a new share snapshot from a share snapshot prototype object. The prototype object is structured in the same way as a retrieved share snapshot, and contains the information necessary to create the new share snapshot.

The share must have an `access_control_mode` of `security_group`, and a `replication_role` of `source` or `none`.

The snapshot will inherit its `resource_group` and encryption settings from the share.

If the share has a `replication_role` of `source`, a corresponding snapshot on the replica share will be created with a `status` of `pending`. It will remain in `pending` until the data is synchronized per the replication schedule determined by the replica share's `replication_cron_spec`.

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action.

  • is.share.snapshot.create

Auditing

Calling this method generates the following auditing event.

  • is.share.snapshot.create

Request

Request Body

ShareSnapshotPrototype

The share snapshot prototype object

name

string

The name for this share snapshot. The name must not be used by another snapshot for the file share. If unspecified, the name will be a hyphenated list of randomly-selected words.

user_tags

array

The user tags associated with this share snapshot.

Path Parameters

share_id

Required *

The file share identifier

Query Parameters

Response

201 - The share snapshot was created successfully.

backup_policy_plan

object

If present, the backup policy plan which created this share snapshot.

captured_at

string

The date and time the data capture for this share snapshot was completed.

If absent, this snapshot's data has not yet been captured.

created_at

string

The date and time that the share snapshot was created

crn

string

The CRN for this share snapshot

fingerprint

string

The fingerprint for this share snapshot. Only snapshots with identical data will have the same fingerprint. This snapshot will also be available as a subdirectory named identically to this fingerprint in the share's `.snapshot` directory.

href

string

The URL for this share snapshot

id

string

The unique identifier for this share snapshot

lifecycle_reasons

array

The reasons for the current `lifecycle_state` (if any).

lifecycle_state

object

The lifecycle state of this share snapshot

  • `pending`: The share snapshot is being provisioned and is not yet usable. A snapshot on a replica share will remain `pending` until the next replication sync completes.
  • `deleting`: The share snapshot is being deleted.
  • `failed`: The share snapshot is irrecoverably unusable.
  • `stable`: The share snapshot is stable and ready for use.
  • `updating`: The share snapshot is being updated.
  • `suspended`: The share snapshot is not currently usable (see `lifecycle_reasons`)

minimum_size

integer

The minimum size of a share created from this snapshot. When a snapshot is created, this will be set to the size of the `source_share`.

name

string

The name for this share snapshot. The name is unique across all snapshots for the file share.

resource_group

object

The resource group for this share snapshot.

resource_type

string

The resource type

status

string

The status of the share snapshot:

  • `available`: The share snapshot is available for use.
  • `failed`: The share snapshot is irrecoverably unusable.
  • `pending`: The share snapshot is being provisioned and is not yet usable. A snapshot on a replica share will remain `pending` until the next replication sync completes.
  • `unusable`: The share snapshot is not currently usable (see `status_reasons`)

The enumerated values for this property may expand in the future.

status_reasons

array

The reasons for the current status (if any).

user_tags

array

The user tags associated with this share snapshot.

zone

object

The zone this share snapshot resides in. For shares with `availability_mode` of `regional`, this property will be absent.

400 - An invalid share snapshot prototype object was provided.

errors

array

The errors that occurred.

trace

string

The unique error identifier

404 - A file share with the specified identifier could not be found.

errors

array

The errors that occurred.

trace

string

The unique error identifier

409 - The share snapshot object conflicts with another share snapshot in the region, or the

share cannot be used in its current state

errors

array

The errors that occurred.

trace

string

The unique error identifier

Delete a share snapshot

DELETE /shares/{share_id}/snapshots/{id}

This request deletes a share snapshot. This operation cannot be reversed. For this request to succeed, the share must have a `replication_role` of `source` or `none`.

If the request is accepted, the share snapshot `lifecycle_state` will be set to `deleting`. Once deletion processing completes, the share snapshot will no longer be retrievable.

Deleting a share snapshot will not affect any previously-accepted requests to create a share from it.

If the share has a `replication_role` of `source`, the corresponding snapshot on the replica share will be subsequently moved to a `lifecycle_state` of `deleting`. If the data for the corresponding snapshot has already been synchronized via the replication schedule determined by `replication_cron_spec`, the snapshot will remain available in the replica share's `.snapshot` directory until the next replication sync.

Authorization

To call this method, you must be assigned one or more IAM access roles that include the following action.

  • is.share.snapshot.delete

Auditing

Calling this method generates the following auditing event.

  • is.share.snapshot.delete

Request

Response

202 - The share snapshot deletion request was accepted.

backup_policy_plan

object

If present, the backup policy plan which created this share snapshot.

captured_at

string

The date and time the data capture for this share snapshot was completed.

If absent, this snapshot's data has not yet been captured.

created_at

string

The date and time that the share snapshot was created

crn

string

The CRN for this share snapshot

fingerprint

string

The fingerprint for this share snapshot. Only snapshots with identical data will have the same fingerprint. This snapshot will also be available as a subdirectory named identically to this fingerprint in the share's `.snapshot` directory.

href

string

The URL for this share snapshot

id

string

The unique identifier for this share snapshot

lifecycle_reasons

array

The reasons for the current `lifecycle_state` (if any).

lifecycle_state

object

The lifecycle state of this share snapshot

  • `pending`: The share snapshot is being provisioned and is not yet usable. A snapshot on a replica share will remain `pending` until the next replication sync completes.
  • `deleting`: The share snapshot is being deleted.
  • `failed`: The share snapshot is irrecoverably unusable.
  • `stable`: The share snapshot is stable and ready for use.
  • `updating`: The share snapshot is being updated.
  • `suspended`: The share snapshot is not currently usable (see `lifecycle_reasons`)

minimum_size

integer

The minimum size of a share created from this snapshot. When a snapshot is created, this will be set to the size of the `source_share`.

name

string

The name for this share snapshot. The name is unique across all snapshots for the file share.

resource_group

object

The resource group for this share snapshot.

resource_type

string

The resource type

status

string

The status of the share snapshot:

  • `available`: The share snapshot is available for use.
  • `failed`: The share snapshot is irrecoverably unusable.
  • `pending`: The share snapshot is being provisioned and is not yet usable. A snapshot on a replica share will remain `pending` until the next replication sync completes.
  • `unusable`: The share snapshot is not currently usable (see `status_reasons`)

The enumerated values for this property may expand in the future.

status_reasons

array

The reasons for the current status (if any).

user_tags

array

The user tags associated with this share snapshot.

zone

object

The zone this share snapshot resides in. For shares with `availability_mode` of `regional`, this property will be absent.

404 - A share snapshot with the specified identifier could not be found for the file

share with the specified identifier.

errors

array

The errors that occurred.

trace

string

The unique error identifier

Retrieve a share snapshot

GET /shares/{share_id}/snapshots/{id}

This request retrieves a single share 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.share.snapshot.read

Auditing

Calling this method generates the following auditing event.

  • is.share.snapshot.read

Request

Response

200 - The share snapshot was retrieved successfully.

backup_policy_plan

object

If present, the backup policy plan which created this share snapshot.

captured_at

string

The date and time the data capture for this share snapshot was completed.

If absent, this snapshot's data has not yet been captured.

created_at

string

The date and time that the share snapshot was created

crn

string

The CRN for this share snapshot

fingerprint

string

The fingerprint for this share snapshot. Only snapshots with identical data will have the same fingerprint. This snapshot will also be available as a subdirectory named identically to this fingerprint in the share's `.snapshot` directory.

href

string

The URL for this share snapshot

id

string

The unique identifier for this share snapshot

lifecycle_reasons

array

The reasons for the current `lifecycle_state` (if any).

lifecycle_state

object

The lifecycle state of this share snapshot

  • `pending`: The share snapshot is being provisioned and is not yet usable. A snapshot on a replica share will remain `pending` until the next replication sync completes.
  • `deleting`: The share snapshot is being deleted.
  • `failed`: The share snapshot is irrecoverably unusable.
  • `stable`: The share snapshot is stable and ready for use.
  • `updating`: The share snapshot is being updated.
  • `suspended`: The share snapshot is not currently usable (see `lifecycle_reasons`)

minimum_size

integer

The minimum size of a share created from this snapshot. When a snapshot is created, this will be set to the size of the `source_share`.

name

string

The name for this share snapshot. The name is unique across all snapshots for the file share.

resource_group

object

The resource group for this share snapshot.

resource_type

string

The resource type

status

string

The status of the share snapshot:

  • `available`: The share snapshot is available for use.
  • `failed`: The share snapshot is irrecoverably unusable.
  • `pending`: The share snapshot is being provisioned and is not yet usable. A snapshot on a replica share will remain `pending` until the next replication sync completes.
  • `unusable`: The share snapshot is not currently usable (see `status_reasons`)

The enumerated values for this property may expand in the future.

status_reasons

array

The reasons for the current status (if any).

user_tags

array

The user tags associated with this share snapshot.

zone

object

The zone this share snapshot resides in. For shares with `availability_mode` of `regional`, this property will be absent.

404 - A share snapshot with the specified identifier could not be found for the file

share with the specified identifier.

errors

array

The errors that occurred.

trace

string

The unique error identifier

Update a share snapshot

PATCH /shares/{share_id}/snapshots/{id}

This request updates a share snapshot with the information provided in a share snapshot patch object. The share snapshot patch object is structured in the same way as a retrieved share snapshot 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.share.snapshot.update

Auditing

Calling this method generates the following auditing event.

  • is.share.snapshot.update

Request

Request Body

The share snapshot patch

Path Parameters

Query Parameters

Response

200 - The share snapshot was updated successfully.

backup_policy_plan

object

If present, the backup policy plan which created this share snapshot.

captured_at

string

The date and time the data capture for this share snapshot was completed.

If absent, this snapshot's data has not yet been captured.

created_at

string

The date and time that the share snapshot was created

crn

string

The CRN for this share snapshot

fingerprint

string

The fingerprint for this share snapshot. Only snapshots with identical data will have the same fingerprint. This snapshot will also be available as a subdirectory named identically to this fingerprint in the share's `.snapshot` directory.

href

string

The URL for this share snapshot

id

string

The unique identifier for this share snapshot

lifecycle_reasons

array

The reasons for the current `lifecycle_state` (if any).

lifecycle_state

object

The lifecycle state of this share snapshot

  • `pending`: The share snapshot is being provisioned and is not yet usable. A snapshot on a replica share will remain `pending` until the next replication sync completes.
  • `deleting`: The share snapshot is being deleted.
  • `failed`: The share snapshot is irrecoverably unusable.
  • `stable`: The share snapshot is stable and ready for use.
  • `updating`: The share snapshot is being updated.
  • `suspended`: The share snapshot is not currently usable (see `lifecycle_reasons`)

minimum_size

integer

The minimum size of a share created from this snapshot. When a snapshot is created, this will be set to the size of the `source_share`.

name

string

The name for this share snapshot. The name is unique across all snapshots for the file share.

resource_group

object

The resource group for this share snapshot.

resource_type

string

The resource type

status

string

The status of the share snapshot:

  • `available`: The share snapshot is available for use.
  • `failed`: The share snapshot is irrecoverably unusable.
  • `pending`: The share snapshot is being provisioned and is not yet usable. A snapshot on a replica share will remain `pending` until the next replication sync completes.
  • `unusable`: The share snapshot is not currently usable (see `status_reasons`)

The enumerated values for this property may expand in the future.

status_reasons

array

The reasons for the current status (if any).

user_tags

array

The user tags associated with this share snapshot.

zone

object

The zone this share snapshot resides in. For shares with `availability_mode` of `regional`, this property will be absent.

400 - An invalid share snapshot patch was provided.

errors

array

The errors that occurred.

trace

string

The unique error identifier

404 - A share snapshot with the specified identifier could not be found for the file

share with the specified identifier.

errors

array

The errors that occurred.

trace

string

The unique error identifier

409 - The share snapshot object conflicts with another share snapshot 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 share

snapshot.

errors

array

The errors that occurred.

trace

string

The unique error identifier

Split the source file share from a replica file share

DELETE /shares/{share_id}/source

This request removes the replication relationship between a source share and the replica share specified by the identifier in the URL. The replication relationship cannot be removed if a source share or the replica share has a `lifecycle_state` of `updating`, or has a replication operation in progress.

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.share.share.operate

Auditing

Calling this method generates the following auditing event.

  • is.share.share.split

Request

Response

202 - The file share split request was accepted.

404 - A replica file share with the specified identifier could not be found.

errors

array

The errors that occurred.

trace

string

The unique error identifier

409 - The file share cannot be split in its current state.

errors

array

The errors that occurred.

trace

string

The unique error identifier

Retrieve the source file share for a replica file share

GET /shares/{share_id}/source

This request retrieves the source file share associated with the replica file share 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.share.share.read

Auditing

Calling this method generates the following auditing event.

  • is.share.share.read

Request

Response

200 - The source file share was retrieved successfully.

crn

string

The CRN for this file share

deleted

Deleted

If present, this property indicates the referenced resource has been deleted, and provides some supplementary information.

href

string

The URL for this file share

id

string

The unique identifier for this file share

name

string

The name for this share. The name is unique across all shares in the region.

remote

ShareRemote

If present, this property indicates that the resource associated with this reference is remote and therefore may not be directly retrievable.

resource_type

string

The resource type

404 - A replica file share with the specified identifier could not be found.

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.list
  • 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

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.create
  • is.volume.volume.operate
  • is.instance.instance.operate
  • is.bare-metal-server.bare-metal-server.operate
  • is.snapshot.snapshot.create

Auditing

Calling this method generates the following auditing event.

  • is.snapshot-consistency-group.snapshot-consistency-group.create
  • is.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.delete
  • is.snapshot.snapshot.delete

Auditing

Calling this method generates the following auditing event.

  • is.snapshot-consistency-group.snapshot-consistency-group.delete
  • is.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.delete
  • is.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.list
  • is.snapshot.snapshot.read

Auditing

Calling this method generates the following auditing event.

  • is.snapshot.snapshot.read
  • is.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.create
  • is.snapshot.snapshot-clone.create
  • is.volume.volume.operate
  • is.instance.instance.operate
  • is.snapshot.snapshot.manage-allowed-use

Auditing

Calling this method generates the following auditing event.

  • is.snapshot.snapshot.create
  • is.snapshot.snapshot.capture
  • is.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.delete
  • is.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.read
  • is.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.update
  • is.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.delete
  • is.snapshot.snapshot.update

Auditing

Calling this method generates the following auditing event.

  • is.snapshot.snapshot-clone.delete
  • is.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.create
  • is.snapshot.snapshot.update

Auditing

Calling this method generates the following auditing event.

  • is.snapshot.snapshot-clone.create
  • is.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

List snapshot software attachments associated with a snapshot

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.read
  • is.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.list
  • is.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.create
  • is.vpc.vpc.operate
  • is.public-gateway.public-gateway.operate
  • is.network-acl.network-acl.operate
  • is.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.detach
  • is.public-gateway.public-gateway.detach
  • is.network-acl.network-acl.detach
  • is.vpc.routing-table.detach
  • is.flow-log-collector.flow-log-collector.delete
  • is.flow-log-collector.flow-log-collector.detach
  • is.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.update
  • is.public-gateway.public-gateway.operate
  • is.network-acl.network-acl.operate
  • is.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.read
  • is.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.operate
  • is.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.operate
  • is.public-gateway.public-gateway.operate

Auditing

Calling this method generates the following auditing event.

  • is.subnet.subnet.detach
  • is.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.read
  • is.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.operate
  • is.public-gateway.public-gateway.operate

Auditing

Calling this method generates the following auditing event.

  • is.subnet.subnet.attach
  • is.subnet.subnet.detach
  • is.public-gateway.public-gateway.detach
  • is.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.read
  • is.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.

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

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

Replace the routing table for a subnet

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.operate
  • is.vpc.routing-table.operate

Auditing

Calling this method generates the following auditing event.

  • is.subnet.subnet.attach
  • is.subnet.subnet.detach
  • is.vpc.routing-table.detach
  • is.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.

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

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.update
  • is.endpoint-gateway.endpoint-gateway.operate
  • is.virtual-network-interface.virtual-network-interface.operate

Auditing

Calling this method generates the following auditing event.

  • is.subnet.reserved-ip.create
  • is.subnet.subnet.update
  • is.endpoint-gateway.endpoint-gateway.attach
  • is.subnet.reserved-ip.attach
  • is.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 a reserved IP

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.update
  • is.subnet.reserved-ip.delete
  • is.subnet.reserved-ip.detach
  • is.endpoint-gateway.endpoint-gateway.detach
  • is.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

Update a reserved IP

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

List virtual network interfaces

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.list
  • is.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.create
  • is.virtual-network-interface.virtual-network-interface.manage-ip-spoofing
  • is.virtual-network-interface.virtual-network-interface.manage-infrastructure-nat
  • is.virtual-network-interface.virtual-network-interface.manage-protocol-state-filtering-mode
  • is.security-group.security-group.operate
  • is.subnet.subnet.operate
  • is.subnet.subnet.update

Auditing

Calling this method generates the following auditing event.

  • is.virtual-network-interface.virtual-network-interface.create
  • is.virtual-network-interface.virtual-network-interface.attach
  • is.subnet.reserved-ip.create
  • is.subnet.subnet.update
  • is.subnet.reserved-ip.attach
  • is.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.delete
  • is.virtual-network-interface.virtual-network-interface.detach
  • is.subnet.reserved-ip.delete
  • is.subnet.subnet.update
  • is.floating-ip.floating-ip.detach
  • is.subnet.reserved-ip.detach
  • is.security-group.security-group.detach
  • is.flow-log-collector.flow-log-collector.delete
  • is.flow-log-collector.flow-log-collector.detach
  • is.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.update
  • is.virtual-network-interface.virtual-network-interface.manage-ip-spoofing
  • is.virtual-network-interface.virtual-network-interface.manage-infrastructure-nat
  • is.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.operate
  • is.floating-ip.floating-ip.operate

Auditing

Calling this method generates the following auditing event.

  • is.virtual-network-interface.virtual-network-interface.detach
  • is.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

Add an association between a floating IP and a virtual network interface

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.operate
  • is.floating-ip.floating-ip.operate

Auditing

Calling this method generates the following auditing event.

  • is.virtual-network-interface.virtual-network-interface.attach
  • is.floating-ip.floating-ip.attach
  • is.virtual-network-interface.virtual-network-interface.detach
  • is.instance.network-interface.detach
  • is.bare-metal-server.network-interface.detach
  • is.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

Unbind a reserved IP from a virtual network interface

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.operate
  • is.subnet.subnet.operate

Auditing

Calling this method generates the following auditing event.

  • is.virtual-network-interface.virtual-network-interface.detach
  • is.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

Bind a reserved IP to a virtual network interface

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.operate
  • is.subnet.subnet.operate

Auditing

Calling this method generates the following auditing event.

  • is.virtual-network-interface.virtual-network-interface.attach
  • is.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.create
  • is.snapshot.snapshot.operate
  • is.volume.volume.allow-remote-account-snapshot-restore
  • is.volume.volume.manage-allowed-use
  • is.volume.volume.manage-attachment-mode

Auditing

Calling this method generates the following auditing event.

  • is.volume.volume.create
  • is.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.update
  • is.volume.volume.manage-allowed-use
  • is.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

List jobs for a volume

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.update
  • is.volume.volume-job.create

Auditing

Calling this method generates the following auditing event.

  • is.volume.volume.update
  • is.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.update
  • is.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.update
  • is.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

List volume software attachments associated with a volume

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.read
  • is.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.list
  • is.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

default address prefix for each zone
  • A default network ACL
  • A default routing table
  • A default security group">
  • 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:

    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 a VPC

    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.delete
    • is.flow-log-collector.flow-log-collector.delete
    • is.flow-log-collector.flow-log-collector.detach
    • is.vpc.vpc.detach
    • is.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.

    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

    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:

    - &#x60;127.0.0.0/8&#x60; (IPv4 loopback addresses)
    - &#x60;161.26.0.0/16&#x60; (IBM services)
    - &#x60;166.8.0.0/14&#x60; (Cloud Service Endpoints)
    - &#x60;169.254.0.0/16&#x60; (IPv4 link-local addresses)
    - &#x60;224.0.0.0/4&#x60; (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

    List DNS resolution bindings for a VPC

    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

    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.">

    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.read
    • is.vpc.dns-resolution-binding.create
    • is.vpc.dns-resolution-binding.connect

    Auditing

    Calling this method generates the following auditing event.

    • is.vpc.vpc.update
    • is.vpc.dns-resolution-binding.create
    • is.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 a DNS resolution binding

    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.delete
    • is.vpc.dns-resolution-binding.disconnect

    Auditing

    Calling this method generates the following auditing event.

    • is.vpc.vpc.update
    • is.vpc.dns-resolution-binding.delete
    • is.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.update
    • is.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

    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.

    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.

    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.update
    • is.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.

    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

    Create a routing table for a VPC

    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.create
    • is.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`.

    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.

    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.

    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

    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 a VPC routing table

    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.

    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

    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.update
    • is.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.

    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

    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.update
    • is.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

    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.

    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.

    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.update
    • is.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.

    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

    List advertised CIDRs for a VPN gateway

    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.read
    • is.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

    Remove an advertised CIDR from a VPN gateway

    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.read
    • is.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

    Check if the specified advertised CIDR exists on a VPN gateway

    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

    Set an advertised CIDR on a VPN gateway

    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.read
    • is.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.read
    • is.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.read
    • is.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.read
    • is.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.read
    • is.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

    List local CIDRs for a VPN gateway connection

    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.read
    • is.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

    Remove a local CIDR from a VPN gateway connection

    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.read
    • is.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

    Check if the specified local CIDR exists on a VPN gateway connection

    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

    Set a local CIDR on a VPN gateway connection

    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.read
    • is.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

    List peer CIDRs for a VPN gateway connection

    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.read
    • is.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

    Remove a peer CIDR from a VPN gateway connection

    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.read
    • is.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

    Check if the specified peer CIDR exists on a VPN gateway connection

    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

    Set a peer CIDR on a VPN gateway connection

    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.read
    • is.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

    Replace a VPN gateway member

    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.read
    • is.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.create
    • is.security-group.security-group.operate
    • is.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.update
    • is.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