Virtru policy.keymanagement.KeyManagementService API
The policy.keymanagement.KeyManagementService API from Virtru — 5 operation(s) for policy.keymanagement.keymanagementservice.
The policy.keymanagement.KeyManagementService API from Virtru — 5 operation(s) for policy.keymanagement.keymanagementservice.
openapi: 3.1.0
info:
title: authorization authorization.AuthorizationService policy.keymanagement.KeyManagementService API
security: []
tags:
- name: policy.keymanagement.KeyManagementService
paths:
/policy.keymanagement.KeyManagementService/CreateProviderConfig:
post:
tags:
- policy.keymanagement.KeyManagementService
summary: CreateProviderConfig
description: "Key Management\n Provider Management"
operationId: policy.keymanagement.KeyManagementService.CreateProviderConfig
parameters:
- name: Connect-Protocol-Version
in: header
required: true
schema:
$ref: '#/components/schemas/connect-protocol-version'
- name: Connect-Timeout-Ms
in: header
schema:
$ref: '#/components/schemas/connect-timeout-header'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/policy.keymanagement.CreateProviderConfigRequest'
required: true
responses:
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/connect.error'
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/policy.keymanagement.CreateProviderConfigResponse'
/policy.keymanagement.KeyManagementService/GetProviderConfig:
post:
tags:
- policy.keymanagement.KeyManagementService
summary: GetProviderConfig
operationId: policy.keymanagement.KeyManagementService.GetProviderConfig
parameters:
- name: Connect-Protocol-Version
in: header
required: true
schema:
$ref: '#/components/schemas/connect-protocol-version'
- name: Connect-Timeout-Ms
in: header
schema:
$ref: '#/components/schemas/connect-timeout-header'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/policy.keymanagement.GetProviderConfigRequest'
required: true
responses:
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/connect.error'
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/policy.keymanagement.GetProviderConfigResponse'
/policy.keymanagement.KeyManagementService/ListProviderConfigs:
post:
tags:
- policy.keymanagement.KeyManagementService
summary: ListProviderConfigs
operationId: policy.keymanagement.KeyManagementService.ListProviderConfigs
parameters:
- name: Connect-Protocol-Version
in: header
required: true
schema:
$ref: '#/components/schemas/connect-protocol-version'
- name: Connect-Timeout-Ms
in: header
schema:
$ref: '#/components/schemas/connect-timeout-header'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/policy.keymanagement.ListProviderConfigsRequest'
required: true
responses:
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/connect.error'
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/policy.keymanagement.ListProviderConfigsResponse'
/policy.keymanagement.KeyManagementService/UpdateProviderConfig:
post:
tags:
- policy.keymanagement.KeyManagementService
summary: UpdateProviderConfig
operationId: policy.keymanagement.KeyManagementService.UpdateProviderConfig
parameters:
- name: Connect-Protocol-Version
in: header
required: true
schema:
$ref: '#/components/schemas/connect-protocol-version'
- name: Connect-Timeout-Ms
in: header
schema:
$ref: '#/components/schemas/connect-timeout-header'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/policy.keymanagement.UpdateProviderConfigRequest'
required: true
responses:
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/connect.error'
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/policy.keymanagement.UpdateProviderConfigResponse'
/policy.keymanagement.KeyManagementService/DeleteProviderConfig:
post:
tags:
- policy.keymanagement.KeyManagementService
summary: DeleteProviderConfig
operationId: policy.keymanagement.KeyManagementService.DeleteProviderConfig
parameters:
- name: Connect-Protocol-Version
in: header
required: true
schema:
$ref: '#/components/schemas/connect-protocol-version'
- name: Connect-Timeout-Ms
in: header
schema:
$ref: '#/components/schemas/connect-timeout-header'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/policy.keymanagement.DeleteProviderConfigRequest'
required: true
responses:
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/connect.error'
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/policy.keymanagement.DeleteProviderConfigResponse'
components:
schemas:
policy.keymanagement.UpdateProviderConfigRequest:
type: object
properties:
id:
type: string
title: id
format: uuid
description: Required
name:
type: string
title: name
description: Optional
configJson:
type: string
title: config_json
format: byte
description: Optional
manager:
type: string
title: manager
description: Optional
metadata:
title: metadata
description: "Optional\n Common metadata"
$ref: '#/components/schemas/common.MetadataMutable'
metadataUpdateBehavior:
title: metadata_update_behavior
$ref: '#/components/schemas/common.MetadataUpdateEnum'
title: UpdateProviderConfigRequest
additionalProperties: false
common.Metadata:
type: object
properties:
createdAt:
title: created_at
description: created_at set by server (entity who created will recorded in an audit event)
$ref: '#/components/schemas/google.protobuf.Timestamp'
updatedAt:
title: updated_at
description: updated_at set by server (entity who updated will recorded in an audit event)
$ref: '#/components/schemas/google.protobuf.Timestamp'
labels:
type: object
title: labels
additionalProperties:
type: string
title: value
description: optional short description
title: Metadata
additionalProperties: false
description: Struct to uniquely identify a resource with optional additional metadata
connect-protocol-version:
type: number
title: Connect-Protocol-Version
enum:
- 1
description: Define the version of the Connect protocol
const: 1
policy.keymanagement.CreateProviderConfigResponse:
type: object
properties:
providerConfig:
title: provider_config
$ref: '#/components/schemas/policy.KeyProviderConfig'
title: CreateProviderConfigResponse
additionalProperties: false
google.protobuf.Any:
type: object
properties:
type:
type: string
value:
type: string
format: binary
debug:
type: object
additionalProperties: true
additionalProperties: true
description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.
google.protobuf.Timestamp:
type: string
examples:
- 1s
- 1.000340012s
format: date-time
description: "A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(&tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(&ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format."
policy.PageResponse:
type: object
properties:
currentOffset:
type: integer
title: current_offset
format: int32
description: Requested pagination offset
nextOffset:
type: integer
title: next_offset
format: int32
description: "Calculated with request limit + offset or defaults\n Empty when none remain after current page"
total:
type: integer
title: total
format: int32
description: Total count of entire list
title: PageResponse
additionalProperties: false
policy.keymanagement.CreateProviderConfigRequest:
type: object
properties:
name:
type: string
title: name
description: "Required\n The name of the key provider. (e.g. \"AWS KMS Instance 1\", \"Google Cloud KMS Instance 2\")"
configJson:
type: string
title: config_json
format: byte
description: "Required\n JSON configuration for the key provider. This is unique to individual key providers."
manager:
type: string
title: manager
description: "Required\n The type of key manager (e.g. \"aws\", \"gcp\", \"azure\", \"opentdf.io/basic\")"
metadata:
title: metadata
description: Common metadata
$ref: '#/components/schemas/common.MetadataMutable'
title: CreateProviderConfigRequest
required:
- name
- configJson
- manager
additionalProperties: false
description: Provider Configuration Requests and Response Messages
policy.keymanagement.ListProviderConfigsRequest:
type: object
properties:
pagination:
title: pagination
description: Optional
$ref: '#/components/schemas/policy.PageRequest'
title: ListProviderConfigsRequest
additionalProperties: false
policy.keymanagement.DeleteProviderConfigRequest:
type: object
properties:
id:
type: string
title: id
format: uuid
description: Required
title: DeleteProviderConfigRequest
additionalProperties: false
description: In order to delete a provider configuration you must first delete all keys associated with the provider.
policy.keymanagement.GetProviderConfigRequest:
type: object
oneOf:
- properties:
id:
type: string
title: id
format: uuid
title: id
required:
- id
- properties:
name:
type: string
title: name
minLength: 1
description: DEPRECATED, please use the NameManager and specify manager + name together.
deprecated: true
title: name
required:
- name
- properties:
nameManager:
title: name_manager
description: Search by name and manager.
$ref: '#/components/schemas/policy.keymanagement.GetProviderConfigRequest.NameManager'
title: name_manager
required:
- nameManager
properties:
manager:
type: string
title: manager
description: DEPRECATED, please use the NameManager and specify manager + name together.
deprecated: true
title: GetProviderConfigRequest
additionalProperties: false
policy.KeyProviderConfig:
type: object
properties:
id:
type: string
title: id
name:
type: string
title: name
configJson:
type: string
title: config_json
format: byte
manager:
type: string
title: manager
metadata:
title: metadata
description: Common metadata
$ref: '#/components/schemas/common.Metadata'
title: KeyProviderConfig
additionalProperties: false
policy.keymanagement.GetProviderConfigRequest.NameManager:
type: object
properties:
name:
type: string
title: name
minLength: 1
description: The name of the key provider
manager:
type: string
title: manager
minLength: 1
description: The type of key manager.
title: NameManager
additionalProperties: false
policy.keymanagement.GetProviderConfigResponse:
type: object
properties:
providerConfig:
title: provider_config
$ref: '#/components/schemas/policy.KeyProviderConfig'
title: GetProviderConfigResponse
additionalProperties: false
common.MetadataUpdateEnum:
type: string
title: MetadataUpdateEnum
enum:
- METADATA_UPDATE_ENUM_UNSPECIFIED
- METADATA_UPDATE_ENUM_EXTEND
- METADATA_UPDATE_ENUM_REPLACE
connect-timeout-header:
type: number
title: Connect-Timeout-Ms
description: Define the timeout, in ms
common.MetadataMutable:
type: object
properties:
labels:
type: object
title: labels
additionalProperties:
type: string
title: value
description: optional labels
title: MetadataMutable
additionalProperties: false
policy.keymanagement.DeleteProviderConfigResponse:
type: object
properties:
providerConfig:
title: provider_config
$ref: '#/components/schemas/policy.KeyProviderConfig'
title: DeleteProviderConfigResponse
additionalProperties: false
policy.PageRequest:
type: object
properties:
limit:
type: integer
title: limit
format: int32
description: "Optional\n Set to configured default limit if not provided\n Maximum limit set in platform config and enforced by services"
offset:
type: integer
title: offset
format: int32
description: "Optional\n Defaulted if not provided"
title: PageRequest
additionalProperties: false
policy.keymanagement.UpdateProviderConfigResponse:
type: object
properties:
providerConfig:
title: provider_config
$ref: '#/components/schemas/policy.KeyProviderConfig'
title: UpdateProviderConfigResponse
additionalProperties: false
connect.error:
type: object
properties:
code:
type: string
examples:
- not_found
enum:
- canceled
- unknown
- invalid_argument
- deadline_exceeded
- not_found
- already_exists
- permission_denied
- resource_exhausted
- failed_precondition
- aborted
- out_of_range
- unimplemented
- internal
- unavailable
- data_loss
- unauthenticated
description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
message:
type: string
description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
detail:
$ref: '#/components/schemas/google.protobuf.Any'
title: Connect Error
additionalProperties: true
description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation'
policy.keymanagement.ListProviderConfigsResponse:
type: object
properties:
providerConfigs:
type: array
items:
$ref: '#/components/schemas/policy.KeyProviderConfig'
title: provider_configs
pagination:
title: pagination
$ref: '#/components/schemas/policy.PageResponse'
title: ListProviderConfigsResponse
additionalProperties: false