openapi: 3.2.0
info:
description: 'Use the Key Management API to manage vaults and keys. For more information, see [Managing Vaults](/Content/KeyManagement/Tasks/managingvaults.htm) and [Managing Keys](/Content/KeyManagement/Tasks/managingkeys.htm).
'
license:
name: Oracle Corporation
title: Vault Key Management Ekm API
version: release
x-provenance:
method: harvested
first_party: true
publisher: Oracle
source: https://docs.oracle.com/en-us/iaas/api/specs/6650b193f50d51919ae1a5f31b525097c777bb9e61575a82b12bf5a5fa5c1dea.yaml
harvested: '2026-08-04'
note: Published by Oracle as the contract for the Vault Key Management API OCI service and stored verbatim; API Evangelist added only this provenance block.
x-evidence:
- url: https://docs.oracle.com/en-us/iaas/api/specs/index.json
what: Oracle's own index of every OCI service specification
- url: https://docs.oracle.com/en-us/iaas/api/specs/6650b193f50d51919ae1a5f31b525097c777bb9e61575a82b12bf5a5fa5c1dea.yaml
what: the harvested document for Vault Key Management API
servers:
- url: /
tags:
- name: Ekm
paths:
/20180608/ekmsPrivateEndpoints:
get:
description: 'Returns a list of all the EKMS private endpoints in the specified compartment.
'
operationId: ListEkmsPrivateEndpoints
parameters:
- $ref: '#/components/parameters/CompartmentIdQueryParam'
- $ref: '#/components/parameters/PaginationLimitQueryParam'
- $ref: '#/components/parameters/PaginationTokenQueryParam'
- $ref: '#/components/parameters/SortOrderQueryParam'
- $ref: '#/components/parameters/SortByQueryParam'
- $ref: '#/components/parameters/RequestIdHeader'
responses:
200:
description: A list of EKMS private endpoint summary objects.
headers:
opc-next-page:
description: 'For pagination of a list of items. When paging through a list, if this header appears in the response,
then there are additional items still to get. Include this value as the `page` parameter for the
subsequent GET request. For information about pagination, see
[List Pagination](/Content/API/Concepts/usingapi.htm#nine).
'
schema:
type: string
opc-request-id:
description: 'Unique Oracle-assigned identifier for the request. If you need to contact Oracle about
a particular request, please provide the request ID.
'
schema:
type: string
content:
application/json:
schema:
items:
$ref: '#/components/schemas/EkmsPrivateEndpointSummary'
maxItems: 100
type: array
400:
$ref: '#/components/responses/400'
401:
$ref: '#/components/responses/401'
404:
$ref: '#/components/responses/404'
429:
$ref: '#/components/responses/429'
500:
$ref: '#/components/responses/500'
default:
$ref: '#/components/responses/DefaultError'
summary: Lists all the EKMS private endpoints in the specified compartment
tags:
- Ekm
x-example: 'GET /20180608/ekmsPrivateEndpoints?compartmentId=<compartmentId>
Host: kms.us-ashburn-1.oraclecloud.com
<authorization and other headers>
'
post:
description: Create a new EKMS private endpoint used to connect to external key manager system
operationId: CreateEkmsPrivateEndpoint
parameters:
- $ref: '#/components/parameters/RequestIdHeader'
- $ref: '#/components/parameters/RetryTokenHeader'
responses:
202:
description: The ekmsPrivateEndpoint is being created.
headers:
etag:
description: For optimistic concurrency control. See `if-match`.
schema:
type: string
opc-request-id:
description: 'Unique Oracle-assigned identifier for the request. If you need to contact Oracle about
a particular request, please provide the request ID.
'
schema:
type: string
opc-work-request-id:
description: 'Work request id to track progress of the create operation
'
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/EkmsPrivateEndpoint'
400:
$ref: '#/components/responses/400'
401:
$ref: '#/components/responses/401'
404:
$ref: '#/components/responses/404'
409:
$ref: '#/components/responses/409'
429:
$ref: '#/components/responses/429'
500:
$ref: '#/components/responses/500'
default:
$ref: '#/components/responses/DefaultError'
summary: Create a new EKMS private endpoint.
tags:
- Ekm
x-example: "POST /20180608/ekmsPrivateEndpoints\nHost: kms.us-ashburn-1.oraclecloud.com\n<authorization and other headers>\n{\n \"subnetId\": \"ocid1.subnet.oc1.phx.aaaaaaaarzlbjasxeir5mg5sux6fcah2lsdmgpytduuuv4ktnjpb2hpwqunq\",\n \"freeformTags\": {},\n \"definedTags\": {},\n \"compartmentId\": \"ocid1.tenancy.oc1..exampleati4wjo6cvbxq4iusld5ltpneskcfy7lr4a6wfauxuwrwed5b3xea\",\n \"displayName\": \"EKMS Private Endpoint 1\",\n \"caBundle\": \"----- BEGIN CERTIFICATE ----- abcRTynddf567= ---- END CERTIFICATE ---\",\n \"externalKeyManagerIp\": \"1.2.3.4\",\n \"port\": 1234\n}\n"
x-related-resource: '#/definitions/EkmsPrivateEndpoint'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEkmsPrivateEndpointDetails'
description: The information used to create EKMS private endpoint.
required: true
/20180608/ekmsPrivateEndpoints/{ekmsPrivateEndpointId}:
delete:
description: Deletes EKMS private endpoint by identifier.
operationId: DeleteEkmsPrivateEndpoint
parameters:
- $ref: '#/components/parameters/IfMatchHeader'
- $ref: '#/components/parameters/RequestIdHeader'
- $ref: '#/components/parameters/EkmsPrivateEndpointIdentifierPathParam'
responses:
202:
description: Accepted the request. The EKMS private endpoint will be deleted.
headers:
opc-request-id:
description: 'Unique Oracle-assigned identifier for the request. If you need to contact Oracle about
a particular request, please provide the request ID.
'
schema:
type: string
opc-work-request-id:
description: 'Unique Oracle-assigned identifier for the work request, used to track the progress of the
operation.
'
schema:
type: string
400:
$ref: '#/components/responses/400'
401:
$ref: '#/components/responses/401'
404:
$ref: '#/components/responses/404'
412:
$ref: '#/components/responses/412'
429:
$ref: '#/components/responses/429'
500:
$ref: '#/components/responses/500'
default:
$ref: '#/components/responses/DefaultError'
summary: Delete EKMS private endpoint.
tags:
- Ekm
x-example: 'DELETE /20180608/ekmsPrivateEndpoints/<ekmsPrivateEndpointId>
Host: kms.us-ashburn-1.oraclecloud.com
<authorization and other headers>
'
x-related-resource: '#/definitions/EkmsPrivateEndpoint'
get:
description: Gets a specific EKMS private by identifier.
operationId: GetEkmsPrivateEndpoint
parameters:
- $ref: '#/components/parameters/EkmsPrivateEndpointIdentifierPathParam'
- $ref: '#/components/parameters/RequestIdHeader'
responses:
200:
description: Retrieves EKMS private endpoint with given id.
headers:
etag:
description: For optimistic concurrency control. See `if-match`.
schema:
type: string
opc-request-id:
description: 'Unique Oracle-assigned identifier for the request. If you need to contact Oracle about
a particular request, please provide the request ID.
'
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/EkmsPrivateEndpoint'
400:
$ref: '#/components/responses/400'
401:
$ref: '#/components/responses/401'
404:
$ref: '#/components/responses/404'
429:
$ref: '#/components/responses/429'
500:
$ref: '#/components/responses/500'
default:
$ref: '#/components/responses/DefaultError'
summary: Get EKMS private endpoint by Id.
tags:
- Ekm
x-example: 'GET /20180608/ekmsPrivateEndpoints/<ekmsPrivateEndpointId>
Host: kms.us-ashburn-1.oraclecloud.com
<authorization and other headers>
'
put:
description: Updates EKMS private endpoint.
operationId: UpdateEkmsPrivateEndpoint
parameters:
- $ref: '#/components/parameters/EkmsPrivateEndpointIdentifierPathParam'
- $ref: '#/components/parameters/IfMatchHeader'
- $ref: '#/components/parameters/RequestIdHeader'
responses:
200:
description: The ekmsPrivateEndpoint is being created.
headers:
etag:
description: For optimistic concurrency control. See `if-match`.
schema:
type: string
opc-request-id:
description: 'Unique Oracle-assigned identifier for the request. If you need to contact Oracle about
a particular request, please provide the request ID.
'
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/EkmsPrivateEndpoint'
400:
$ref: '#/components/responses/400'
401:
$ref: '#/components/responses/401'
404:
$ref: '#/components/responses/404'
412:
$ref: '#/components/responses/412'
429:
$ref: '#/components/responses/429'
500:
$ref: '#/components/responses/500'
default:
$ref: '#/components/responses/DefaultError'
summary: Update EKMS private endpoint identified by the id.
tags:
- Ekm
x-example: "PUT /20180608/ekmsPrivateEndpoints/<ekmsPrivateEndpointId>\nHost: kms.us-ashburn-1.oraclecloud.com\n<authorization and other headers>\n{\n \"displayName\": \"EKMS Private Endpoint Update\"\n}\n"
x-related-resource: '#/definitions/EkmsPrivateEndpoint'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateEkmsPrivateEndpointDetails'
description: The information to be updated in EKMS private endpoint
required: true
components:
parameters:
CompartmentIdQueryParam:
description: The OCID of the compartment.
in: query
name: compartmentId
required: true
schema:
type: string
maxLength: 255
minLength: 1
IfMatchHeader:
description: 'For optimistic concurrency control. In the PUT or DELETE call for a
resource, set the `if-match` parameter to the value of the etag from a
previous GET or POST response for that resource. The resource will be
updated or deleted only if the etag you provide matches the resource''s
current etag value.
'
in: header
name: if-match
required: false
schema:
type: string
PaginationTokenQueryParam:
description: 'The value of the `opc-next-page` response header
from the previous "List" call.
'
in: query
name: page
required: false
schema:
type: string
maxLength: 512
minLength: 1
SortByQueryParam:
description: 'The field to sort by. You can specify only one sort order. The default
order for `TIMECREATED` is descending. The default order for `DISPLAYNAME`
is ascending.
'
in: query
name: sortBy
required: false
schema:
type: string
enum:
- TIMECREATED
- DISPLAYNAME
RequestIdHeader:
description: 'Unique identifier for the request. If provided, the returned request ID
will include this value. Otherwise, a random request ID will be
generated by the service.
'
in: header
name: opc-request-id
required: false
schema:
type: string
PaginationLimitQueryParam:
description: 'The maximum number of items to return in a paginated "List" call.
'
in: query
name: limit
required: false
schema:
type: integer
maximum: 1000
minimum: 1
RetryTokenHeader:
description: 'A token that uniquely identifies a request so it can be retried in case
of a timeout or server error without risk of executing that same action
again. Retry tokens expire after 24 hours, but can be invalidated
before then due to conflicting operations (e.g., if a resource has been
deleted and purged from the system, then a retry of the original
creation request may be rejected).
'
in: header
name: opc-retry-token
required: false
schema:
type: string
maxLength: 64
minLength: 1
EkmsPrivateEndpointIdentifierPathParam:
description: Unique EKMS private endpoint identifier.
in: path
name: ekmsPrivateEndpointId
required: true
schema:
type: string
maxLength: 255
minLength: 1
SortOrderQueryParam:
description: 'The sort order to use, either ascending (`ASC`) or descending (`DESC`).
'
in: query
name: sortOrder
required: false
schema:
type: string
enum:
- ASC
- DESC
schemas:
EkmsPrivateEndpointSummary:
description: EKMS private endpoints summary
properties:
compartmentId:
description: Identifier of the compartment this EKMS private endpoint belongs to
maxLength: 255
minLength: 1
type: string
definedTags:
additionalProperties:
additionalProperties:
description: 'The value of the tag. Only string, integer, and boolean types are supported.
'
type: object
description: 'Key-value pair representing predefined tags, keys, and values scoped to a namespace.
Example: `{"bar-key": "value"}`
'
type: object
description: 'Usage of predefined tag keys. These predefined keys are scoped to namespaces.
Example: `{"foo-namespace": {"bar-key": "value"}}`
'
type: object
displayName:
description: Mutable name of the EKMS private endpoint
maxLength: 100
minLength: 1
type: string
freeformTags:
additionalProperties:
type: string
description: 'Simple key-value pair that is applied without any predefined name, type, or scope. Exists for cross-compatibility only.
Example: `{"bar-key": "value"}`
'
type: object
id:
description: Unique identifier that is immutable
maxLength: 255
minLength: 1
type: string
lifecycleState:
description: The current state of the EKMS private endpoint resource.
enum:
- CREATING
- ACTIVE
- DELETING
- DELETED
- FAILED
type: string
subnetId:
description: Subnet Identifier
maxLength: 255
minLength: 1
type: string
timeCreated:
description: The time the EKMS private endpoint was created. An [RFC3339](https://tools.ietf.org/html/rfc3339) formatted datetime string.
format: date-time
type: string
timeUpdated:
description: The time the EKMS private endpoint was updated. An [RFC3339](https://tools.ietf.org/html/rfc3339) formatted datetime string.
format: date-time
type: string
required:
- id
- compartmentId
- subnetId
- displayName
- lifecycleState
- timeCreated
type: object
x-example: "[\n {\n \"id\": \"ocid1.ekmsprivateendpoint.region1.sea.exampleaaacu2.examples26q544r24g2cvbzg7u6be7nq4d3sfauxiqmz6elcnj55egmfe4kq\",\n \"compartmentId\": \"ocid1.tenancy.oc1..exampleati4wjo6cvbxq4iusld5ltpneskcfy7lr4a6wfauxuwrwed5b3xea\",\n \"subnetId\": \"ocid1.subnet.oc1.phx.exampleaaaarzlbjasxeir5mg5sux6fcah2lsdmgpytduuuv4ktnjpb2hpwqunq\",\n \"displayName\": \"EKMS Private Endpoint 1\"\n \"timeCreated\": \"2018-04-04T00:33:59.874Z\",\n \"timeUpdated\": \"2018-04-04T00:33:59.874Z\",\n \"freeformTags\": {\"Type\": \"CTM\"},\n \"definedTags\":\n {\n \"MyFirstNamespace\":\n {\n \"CostCenter\": \"SmartAlec\",\n \"Project\": \"42\",\n \"CreatedBy\": \"SmartAlec\",\n \"CreatedDate\": \"9/21/2017T14:00\"\n },\n \"Audit\":\n {\n \"DataSensitivity\": \"PII\",\n \"CageSecurity\": \"High\",\n \"Simplicity\": \"complex\"\n }\n \"lifecycleState\": \"CREATING\",\n }\n]\n"
UpdateEkmsPrivateEndpointDetails:
description: Information needed to modify EKMS private endpoint resource
properties:
definedTags:
additionalProperties:
additionalProperties:
description: 'The value of the tag. Only string, integer and boolean types are supported.
'
type: object
description: 'Key-value pair representing predefined tags'' keys and values scoped to a namespace.
Example: `{"bar-key": "value"}`
'
type: object
description: 'Usage of predefined tag keys. These predefined keys are scoped to namespaces.
Example: `{"foo-namespace": {"bar-key": "value"}}`
'
type: object
displayName:
description: Display name of EKMS private endpoint resource.
maxLength: 100
minLength: 1
type: string
freeformTags:
additionalProperties:
type: string
description: 'Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.
Example: `{"bar-key": "value"}`
'
type: object
type: object
x-example: "{\n \"displayName\": \"EKMS Private Endpoint 2\",\n \"freeformTags\": {\"Type\": \"CTM\"},\n \"definedTags\":\n {\n \"MyFirstNamespace\":\n {\n \"CostCenter\": \"SmartAlec\",\n \"Project\": \"42\",\n \"CreatedBy\": \"SmartAlec\",\n \"CreatedDate\": \"9/21/2017T14:00\"\n },\n \"Audit\":\n {\n \"DataSensitivity\": \"PII\",\n \"CageSecurity\": \"High\",\n \"Simplicity\": \"complex\"\n }\n }\n}\n"
EkmsPrivateEndpoint:
description: EKMS private endpoint created in customer subnet used to connect to external key manager system
properties:
caBundle:
description: 'CABundle to validate TLS certificate of the external key manager system in PEM format
'
type: string
compartmentId:
description: Compartment Identifier.
maxLength: 255
minLength: 1
type: string
definedTags:
additionalProperties:
additionalProperties:
description: 'The value of the tag. Only string, integer, and boolean types are supported.
'
type: object
description: 'Key-value pair representing predefined tags, keys, and values scoped to a namespace.
Example: `{"bar-key": "value"}`
'
type: object
description: 'Usage of predefined tag keys. These predefined keys are scoped to namespaces.
Example: `{"foo-namespace": {"bar-key": "value"}}`
'
type: object
displayName:
description: EKMS Private Endpoint display name
maxLength: 100
minLength: 1
type: string
externalKeyManagerIp:
description: 'Private IP of the external key manager system to connect to from the EKMS private endpoint
'
maxLength: 15
minLength: 7
type: string
freeformTags:
additionalProperties:
type: string
description: 'Simple key-value pair that is applied without any predefined name, type, or scope. Exists for cross-compatibility only.
Example: `{"bar-key": "value"}`
'
type: object
id:
description: Unique identifier that is immutable
type: string
lifecycleDetails:
description: A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in 'Failed' state.
maxLength: 255
minLength: 1
type: string
lifecycleState:
description: The current state of the EKMS private endpoint resource.
enum:
- CREATING
- ACTIVE
- DELETING
- DELETED
- FAILED
type: string
port:
description: The port of the external key manager system
type: integer
privateEndpointIp:
description: The IP address in the customer's VCN for the EKMS private endpoint. This is taken from subnet
maxLength: 46
minLength: 8
type: string
subnetId:
description: Subnet Identifier
maxLength: 255
minLength: 1
type: string
timeCreated:
description: The time the EKMS private endpoint was created. An [RFC3339](https://tools.ietf.org/html/rfc3339) formatted datetime string.
format: date-time
type: string
timeUpdated:
description: The time the EKMS private endpoint was updated. An [RFC3339](https://tools.ietf.org/html/rfc3339) formatted datetime string.
format: date-time
type: string
required:
- id
- compartmentId
- subnetId
- displayName
- externalKeyManagerIp
- lifecycleState
- timeCreated
type: object
x-example: "{\n \"id\": \"ocid1.ekmsprivateendpoint.region1.sea.exampleaaacu2.examples26q544r24g2cvbzg7u6be7nq4d3sfauxiqmz6elcnj55egmfe4kq\",\n \"compartmentId\": \"ocid1.tenancy.oc1..exampleati4wjo6cvbxq4iusld5ltpneskcfy7lr4a6wfauxuwrwed5b3xea\",\n \"subnetId\": \"ocid1.subnet.oc1.phx.exampleaaaarzlbjasxeir5mg5sux6fcah2lsdmgpytduuuv4ktnjpb2hpwqunq\",\n \"displayName\": \"EKMS Private Endpoint 1\"\n \"timeCreated\": \"2018-04-04T00:33:59.874Z\",\n \"timeUpdated\": \"2018-04-04T00:33:59.874Z\",\n \"freeformTags\": {\"Type\": \"CTM\"},\n \"definedTags\":\n {\n \"MyFirstNamespace\":\n {\n \"CostCenter\": \"SmartAlec\",\n \"Project\": \"42\",\n \"CreatedBy\": \"SmartAlec\",\n \"CreatedDate\": \"9/21/2017T14:00\"\n },\n \"Audit\":\n {\n \"DataSensitivity\": \"PII\",\n \"CageSecurity\": \"High\",\n \"Simplicity\": \"complex\"\n }\n }\n \"lifecycleState\": \"CREATING\",\n \"lifecycleDetails\": \"Resource is being created\",\n \"externalKeyManagerIp\": \"1.2.3.4\",\n \"port\": 1234,\n \"caBundle\": \"----- BEGIN CERTIFICATE ----- abcRTynddf567= ---- END CERTIFICATE ---\",\n \"privateEndpointIp\": \"5.6.7.8\"\n}\n"
Error:
description: The desciption of Error message.
properties:
code:
description: 'A short error code that defines the error, meant for programmatic parsing. See
[API Errors](/Content/API/References/apierrors.htm).
'
type: string
message:
description: A human-readable error string.
type: string
required:
- code
- message
CreateEkmsPrivateEndpointDetails:
description: Information needed to create EKMS private endpoint resource
properties:
caBundle:
description: 'CABundle to validate TLS certificate of the external key manager system in PEM format
'
type: string
compartmentId:
description: Compartment identifier.
maxLength: 255
minLength: 1
type: string
definedTags:
additionalProperties:
additionalProperties:
description: 'The value of the tag. Only string, integer, and boolean types are supported.
'
type: object
description: 'Key-value pair representing predefined tags, keys, and values scoped to a namespace.
Example: `{"bar-key": "value"}`
'
type: object
description: 'Usage of predefined tag keys. These predefined keys are scoped to namespaces.
Example: `{"foo-namespace": {"bar-key": "value"}}`
'
type: object
displayName:
description: Display name of the EKMS private endpoint resource being created.
maxLength: 100
minLength: 1
type: string
externalKeyManagerIp:
description: 'External private IP to connect to from this EKMS private endpoint
'
maxLength: 15
minLength: 7
type: string
freeformTags:
additionalProperties:
type: string
description: 'Simple key-value pair that is applied without any predefined name, type, or scope. Exists for cross-compatibility only.
Example: `{"bar-key": "value"}`
'
type: object
port:
description: The port of the external key manager system
type: integer
subnetId:
description: 'The OCID of subnet in which the EKMS private endpoint is to be created
'
maxLength: 255
minLength: 1
type: string
required:
- subnetId
- compartmentId
- externalKeyManagerIp
- caBundle
- displayName
type: object
x-example: "{\n \"subnetId\": \"ocid1.subnet.oc1.phx.exampleaaaarzlbjasxeir5mg5sux6fcah2lsdmgpytduuuv4ktnjpb2hpwqunq\",\n \"freeformTags\": {\"Type\": \"CTM\"},\n \"definedTags\":\n {\n \"MyFirstNamespace\":\n {\n \"CostCenter\": \"SmartAlec\",\n \"Project\": \"42\",\n \"CreatedBy\": \"SmartAlec\",\n \"CreatedDate\": \"9/21/2017T14:00\"\n },\n \"Audit\":\n {\n \"DataSensitivity\": \"PII\",\n \"CageSecurity\": \"High\",\n \"Simplicity\": \"complex\"\n }\n }\n \"compartmentId\": \"ocid1.tenancy.oc1..exampleati4wjo6cvbxq4iusld5ltpneskcfy7lr4a6wfauxuwrwed5b3xea\",\n \"displayName\": \"EKMS Private Endpoint 1\",\n \"caBundle\": \"----- BEGIN CERTIFICATE ----- abcRTynddf567= ---- END CERTIFICATE ---\",\n \"externalKeyManagerIp\": \"1.2.3.4\",\n \"port\": 1234\n}\n"
responses:
DefaultError:
description: An error has occurred.
headers:
opc-request-id:
description: 'Unique Oracle-assigned identifier for the request. If you need to contact Oracle about
a particular request, please provide the request ID.
'
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Error'