Definitions for @turbot/gcp-kms

cryptoKey

{
"type": "object",
"properties": {
"name": {
"$ref": "#/definitions/cryptoKeyName"
},
"primary": {
"type": "object"
},
"purpose": {
"type": "string"
},
"createTime": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"nextRotationTime": {
"type": "string"
},
"rotationPeriod": {
"type": "string"
},
"versionTemplate": {
"type": "object"
},
"labels": {
"type": "object"
},
"iamPolicy": {
"$ref": "gcp-iam#/definitions/projectIamPolicy"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/cryptoKeyAka"
}
},
"title": {
"$ref": "#/definitions/cryptoKeyName"
},
"custom": {
"type": "object",
"properties": {
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"gcp": {
"$ref": "gcp#/definitions/gcpMetadata"
}
}
}
}
}
},
"required": [
"name"
],
"additionalProperties": true,
"tests": [
{
"description": "valid Input - all details provided",
"input": {
"name": "projects/cse-legolas-2/locations/asia-south1/keyRings/test-key/cryptoKeys/test",
"turbot": {
"akas": [
"gcp://cloudkms.googleapis.com/projects/cse-legolas-2/locations/eur4/keyRings/test/cryptoKeys/test"
],
"title": "projects/cse-legolas-2/locations/asia-south1/keyRings/test-key/cryptoKeys/test",
"custom": {
"createTimestamp": "2019-02-13T16:06:19.156Z",
"gcp": {
"projectId": "cse-legolas-2",
"regionName": "us-east1"
}
}
}
}
},
{
"description": "invalid case - name is missing",
"input": {
"turbot": {
"akas": [
"gcp://cloudkms.googleapis.com/projects/cse-legolas-2/locations/eur4/keyRings/test/cryptoKeys/test"
],
"title": "projects/cse-legolas-2/locations/asia-south1/keyRings/test-key/cryptoKeys/test",
"custom": {
"createTimestamp": "2019-02-13T16:06:19.156Z",
"gcp": {
"projectId": "cse-legolas-2",
"regionName": "us-east1"
}
}
}
},
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-kms#/definitions/cryptoKey",
"modUri": "tmod:@turbot/gcp-kms"
}
}

cryptoKeyAka

{
"type": "string",
"pattern": "^gcp://cloudkms.googleapis.com/projects/[a-z][a-z0-9-]{4,28}[a-z0-9]/locations/[a-z0-9-._]{3,63}/keyRings/[a-zA-Z0-9_-]{1,63}/cryptoKeys/[a-zA-Z0-9-_]{1,63}$",
"tests": [
{
"descritpion": "base case",
"input": "gcp://cloudkms.googleapis.com/projects/cse-legolas-2/locations/eur4/keyRings/test/cryptoKeys/test"
},
{
"descritpion": "invalid - invalid cryptoKey name",
"input": "gcp://cloudkms.googleapis.com/projects/cse-legolas-2/locations/eur4/keyRings/test/cryptoKeys/@test",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-kms#/definitions/cryptoKeyAka",
"modUri": "tmod:@turbot/gcp-kms"
}
}

cryptoKeyName

{
"type": "string",
".turbot": {
"uri": "tmod:@turbot/gcp-kms#/definitions/cryptoKeyName",
"modUri": "tmod:@turbot/gcp-kms"
}
}

cryptoKeyServiceNow

{
"defaultColumns": {
"create_time": {
"column": "enabled",
"label": "Create Time"
},
"cryptokey_name": {
"column": "enabled",
"label": "CryptoKey Name",
"path": "data.primary.name"
},
"destroy_scheduled_duration": {
"column": "enabled",
"label": "Destroy Scheduled Duration",
"path": "data.destroyScheduledDuration"
},
"iam_policy": {
"column": "enabled",
"label": "IAM Policy",
"type": "string",
"size": 1000
},
"key_ring_name": {
"column": "enabled",
"label": "Name",
"path": "data.name"
},
"labels": {
"column": "enabled",
"label": "Labels",
"type": "string",
"size": 1000,
"path": "data.labels"
},
"next_rotation_time": {
"column": "enabled",
"label": "Next Rotation Time",
"path": "data.nextRotationTime"
},
"primary": {
"column": "enabled",
"label": "Primary",
"type": "string",
"size": 1000,
"path": "data.primary"
},
"project": {
"column": "enabled",
"label": "Project",
"path": "metadata.gcp.projectId"
},
"purpose": {
"column": "enabled",
"label": "Purpose"
},
"region_name": {
"column": "enabled",
"label": "Region Name",
"path": "metadata.gcp.regionName"
},
"rotation_period": {
"column": "enabled",
"label": "Rotation Period"
},
"version_template": {
"column": "enabled",
"label": "Version Template",
"type": "string",
"size": 1000,
"path": "data.versionTemplate"
}
},
".turbot": {
"uri": "tmod:@turbot/gcp-kms#/definitions/cryptoKeyServiceNow",
"modUri": "tmod:@turbot/gcp-kms"
}
}

keyRing

{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"createTime": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"iamPolicy": {
"$ref": "gcp-iam#/definitions/projectIamPolicy"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/keyRingAka"
}
},
"title": {
"$ref": "#/definitions/keyRingName"
},
"custom": {
"type": "object",
"properties": {
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"gcp": {
"$ref": "gcp#/definitions/gcpMetadata"
}
}
}
}
}
},
"required": [
"name"
],
"additionalProperties": true,
"tests": [
{
"description": "valid Input - all details provided",
"input": {
"name": "projects/cse-legolas-2/locations/asia-south1/keyRings/test-key",
"title": "projects/cse-legolas-2/locations/asia-south1/keyRings/test-key",
"turbot": {
"akas": [
"gcp://cloudkms.googleapis.com/projects/cse-legolas-2/locations/eur4/keyRings/test"
],
"title": "projects/cse-legolas-2/locations/asia-south1/keyRings/test-key",
"custom": {
"createTimestamp": "2019-02-13T16:06:19.156Z",
"gcp": {
"projectId": "cse-legolas-2",
"regionName": "us-east1"
}
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-kms#/definitions/keyRing",
"modUri": "tmod:@turbot/gcp-kms"
}
}

keyRingAka

{
"type": "string",
"pattern": "^gcp://cloudkms.googleapis.com/projects/[a-z][a-z0-9-]{4,28}[a-z0-9]/locations/[a-z0-9-._]{3,63}/keyRings/[a-zA-Z0-9_-]{1,63}$",
"tests": [
{
"descritpion": "base case",
"input": "gcp://cloudkms.googleapis.com/projects/cse-legolas-2/locations/eur4/keyRings/test"
},
{
"descritpion": "invalid - invalid bucket name",
"input": "gcp://cloudkms.googleapis.com/projects/cse-legolas-2/locations/eur4/keyRings/@test",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-kms#/definitions/keyRingAka",
"modUri": "tmod:@turbot/gcp-kms"
}
}

keyRingName

{
"type": "string",
".turbot": {
"uri": "tmod:@turbot/gcp-kms#/definitions/keyRingName",
"modUri": "tmod:@turbot/gcp-kms"
}
}

keyRingServiceNow

{
"defaultColumns": {
"create_time": {
"column": "enabled",
"label": "Create Time"
},
"iam_policy": {
"column": "enabled",
"label": "IAM Policy",
"type": "string",
"size": 1000,
"path": "data.iamPolicy"
},
"keyring_name": {
"column": "enabled",
"label": "Name",
"path": "data.name"
},
"project": {
"column": "enabled",
"label": "Project",
"path": "metadata.gcp.projectId"
},
"region_name": {
"column": "enabled",
"label": "Region Name",
"path": "metadata.gcp.regionName"
}
},
".turbot": {
"uri": "tmod:@turbot/gcp-kms#/definitions/keyRingServiceNow",
"modUri": "tmod:@turbot/gcp-kms"
}
}

kms

{
"type": "object",
"properties": {
"name": {
"$ref": "#/definitions/kmsName"
},
"state": {
"$ref": "gcp#/definitions/state"
},
"config": {
"type": "object"
},
"parent": {
"type": "string"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/kmsAka"
}
},
"title": {
"type": "string"
},
"custom": {
"type": "object",
"properties": {
"gcp": {
"$ref": "gcp#/definitions/gcpMetadata"
}
}
}
}
}
},
"required": [
"name"
],
"tests": [
{
"description": "Valid - base test",
"input": {
"name": "projects/932405488407/services/cloudkms.googleapis.com",
"turbot": {
"akas": [
"gcp://serviceusage.googleapis.com/projects/932405488407/services/cloudkms.googleapis.com"
],
"title": "Cloud Functions API",
"custom": {
"gcp": {
"projectId": "cse-legolas-2"
}
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-kms#/definitions/kms",
"modUri": "tmod:@turbot/gcp-kms"
}
}

kmsAka

{
"type": "string",
"pattern": "^gcp://serviceusage.googleapis.com/projects/[0-9]{12}/services/cloudkms.googleapis.com",
"tests": [
{
"description": "base",
"input": "gcp://serviceusage.googleapis.com/projects/932405488407/services/cloudkms.googleapis.com"
},
{
"description": "invalid aka",
"input": "gcp://serviceusage.googleapis.com/projects/cse-legolas-2/services/cloudkms.googleapis.com",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-kms#/definitions/kmsAka",
"modUri": "tmod:@turbot/gcp-kms"
}
}

kmsName

{
"type": "string",
"pattern": "^projects/[0-9]{1,12}/services/cloudkms.googleapis.com$",
"tests": [
{
"description": "base",
"input": "projects/932405488407/services/cloudkms.googleapis.com"
},
{
"description": "invalid aka",
"input": "gcp://serviceusage.googleapis.com/projects/cse-legolas-2/services/cloudkms.googleapis.com",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-kms#/definitions/kmsName",
"modUri": "tmod:@turbot/gcp-kms"
}
}

kmsSupportedRegions

{
"type": "array",
"items": {
"$ref": "#/definitions/regionName"
},
"minItems": 1,
"example": [
[
"us-central1",
"us-east1"
]
],
"default": [
"asia-east1",
"asia-east2",
"asia-northeast1",
"asia-south1",
"asia-southeast1",
"australia-southeast1",
"europe-north1",
"europe-west1",
"europe-west2",
"europe-west3",
"europe-west4",
"europe-west6",
"northamerica-northeast1",
"us-central1",
"us-east1",
"us-east4",
"us-west1",
"us-west2",
"southamerica-east1",
"eur4",
"nam4",
"asia",
"europe",
"us"
],
"tests": [
{
"description": "one region",
"input": [
"us-east1"
]
},
{
"description": "all supported regions",
"input": [
"asia-east1",
"asia-east2",
"asia-northeast1",
"asia-south1",
"asia-southeast1",
"australia-southeast1",
"europe-north1",
"europe-west1",
"europe-west2",
"europe-west3",
"europe-west4",
"europe-west6",
"northamerica-northeast1",
"us-central1",
"us-east1",
"us-east4",
"us-west1",
"us-west2",
"southamerica-east1",
"eur4",
"nam4",
"asia",
"europe",
"us"
]
},
{
"description": "invalid - no regions",
"input": [],
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-kms#/definitions/kmsSupportedRegions",
"modUri": "tmod:@turbot/gcp-kms"
}
}

regionName

{
"type": "string",
"enum": [
"asia",
"asia-east1",
"asia-east2",
"asia-northeast1",
"asia-northeast2",
"asia-south1",
"asia-southeast1",
"australia-southeast1",
"eur4",
"europe",
"europe-north1",
"europe-west1",
"europe-west2",
"europe-west3",
"europe-west4",
"europe-west6",
"nam4",
"northamerica-northeast1",
"southamerica-east1",
"us",
"us-central1",
"us-east1",
"us-east4",
"us-west1",
"us-west2"
],
"tests": [
{
"description": "valid",
"input": "us-east1"
},
{
"description": "invalid - usea1",
"input": "usea1",
"expected": false
},
{
"description": "invalid - au-north-1",
"input": "au-north-1",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-kms#/definitions/regionName",
"modUri": "tmod:@turbot/gcp-kms"
}
}