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'