Definitions for @turbot/gcp-spanner

backupInfo

{
"type": "object",
"properties": {
"backup": {
"type": "string"
},
"versionTime": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"createTime": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"sourceDatabase": {
"type": "string"
}
},
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/backupInfo",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

database

{
"type": "object",
"properties": {
"name": {
"$ref": "#/definitions/databaseName"
},
"state": {
"$ref": "#/definitions/databaseState"
},
"createTime": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"versionRetentionPeriod": {
"type": "string"
},
"earliestVersionTime": {
"type": "string"
},
"defaultLeader": {
"type": "string"
},
"databaseDialect": {
"$ref": "#/definitions/databaseDialect"
},
"restoreInfo": {
"$ref": "#/definitions/databaseRestoreInfo"
},
"encryptionConfig": {
"$ref": "#/definitions/databaseEncryptionConfig"
},
"encryptionInfo": {
"$ref": "#/definitions/databaseEncryptionInfo"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/databaseAka"
}
},
"title": {
"$ref": "#/definitions/databaseTitle"
},
"custom": {
"type": "object",
"properties": {
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"gcp": {
"$ref": "gcp#/definitions/gcpMetadata"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "All details provided",
"input": {
"name": "projects/parker-aaa/instances/test121/databases/testspannerdatabase",
"state": "READY",
"createTime": "2023-01-11T13:58:05.590Z",
"versionRetentionPeriod": "1h",
"earliestVersionTime": "2023-01-11T13:58:05.590Z",
"encryptionInfo": [
{
"encryptionType": "GOOGLE_DEFAULT_ENCRYPTION"
}
],
"databaseDialect": "GOOGLE_STANDARD_SQL",
"turbot": {
"custom": {
"gcp": {
"projectId": "parker-aaa"
}
},
"title": "testspannerdatabase"
}
}
},
{
"description": "invalid case - title cannot start with number",
"input": {
"name": "projects/parker-aaa/instances/test121/databases/testspannerdatabase",
"state": "READY",
"createTime": "2023-01-11T13:58:05.590Z",
"versionRetentionPeriod": "1h",
"earliestVersionTime": "2023-01-11T13:58:05.590Z",
"encryptionInfo": [
{
"encryptionType": "GOOGLE_DEFAULT_ENCRYPTION"
}
],
"databaseDialect": "GOOGLE_STANDARD_SQL",
"turbot": {
"custom": {
"gcp": {
"projectId": "parker-aaa"
}
},
"title": "1testspannerdatabase"
}
},
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/database",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

databaseAka

{
"type": "string",
"pattern": "^gcp://spanner.googleapis.com/projects/[a-z0-9-]{5,29}[a-z0-9]{1}/instances/[-a-z0-9]{1,63}[a-z0-9]/databases/[a-z][-_a-z0-9]{1,29}$",
"tests": [
{
"descritpion": "base case",
"input": "gcp://spanner.googleapis.com/projects/cse-legolas-2/instances/test-topic/databases/testdb12"
},
{
"description": "invalid - invalid Aka",
"input": "gcp://spanner.googleapis.com/projects/cse-legolas-2/project/instances/test-topic/databases/testdb12",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/databaseAka",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

databaseDialect

{
"type": "string",
"enum": [
"DATABASE_DIALECT_UNSPECIFIED",
"GOOGLE_STANDARD_SQL",
"POSTGRESQL"
],
"tests": [
{
"input": "POSTGRESQL"
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/databaseDialect",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

databaseEncryptionConfig

{
"type": "object",
"properties": {
"kmsKeyName": {
"type": "string"
}
},
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/databaseEncryptionConfig",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

databaseEncryptionInfo

{
"type": "array",
"items": {
"$ref": "#/definitions/encryptionInfoItems"
},
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/databaseEncryptionInfo",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

databaseName

{
"type": "string",
"pattern": "^projects/[a-z0-9-]{5,29}[a-z0-9]{1}/instances/[a-z][-a-z0-9]{5,29}/databases/[a-z][-_a-z0-9]{1,29}$",
"tests": [
{
"input": "projects/cse-legolas/instances/test01/databases/testdb"
},
{
"description": "invalid - project name not project",
"input": "projects//instances/test01/databases/testdb",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/databaseName",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

databaseRestoreInfo

{
"type": "object",
"properties": {
"sourceType": {
"$ref": "#/definitions/srcType"
},
"backupInfo": {
"$ref": "#/definitions/backupInfo"
}
},
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/databaseRestoreInfo",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

databaseServiceNow

{
"defaultColumns": {
"create_time": {
"column": "enabled",
"type": "string"
},
"database_dialect": {
"column": "enabled"
},
"database_name": {
"column": "enabled",
"label": "Name",
"path": "data.name",
"type": "string"
},
"enable_drop_protection": {
"column": "enabled",
"type": "boolean"
},
"encryption_config": {
"column": "enabled",
"size": 1000,
"type": "string"
},
"encryption_info": {
"column": "enabled",
"size": 1000,
"type": "string"
},
"iam_policy": {
"column": "enabled",
"label": "IAM Policy",
"size": 1000,
"type": "string"
},
"project": {
"column": "enabled",
"path": "metadata.gcp.projectId",
"type": "string"
},
"restore_info": {
"column": "enabled",
"size": 1000,
"type": "string"
},
"region": {
"column": "enabled",
"path": "metadata.gcp.regionName"
},
"state": {
"column": "enabled"
},
"version_retention_period": {
"column": "enabled"
}
},
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/databaseServiceNow",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

databaseState

{
"type": "string",
"enum": [
"STATE_UNSPECIFIED",
"CREATING",
"READY",
"READY_OPTIMIZING"
],
"tests": [
{
"input": "READY"
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/databaseState",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

databaseTitle

{
"type": "string",
"pattern": "^[a-z][-_a-z0-9]{1,29}$",
"tests": [
{
"input": "testdb"
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/databaseTitle",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

dbEncryptionType

{
"type": "string",
"enum": [
"CUSTOMER_MANAGED_ENCRYPTION",
"GOOGLE_DEFAULT_ENCRYPTION",
"TYPE_UNSPECIFIED"
],
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/dbEncryptionType",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

encryptionInfoItems

{
"type": "object",
"properties": {
"encryptionType": {
"$ref": "#/definitions/dbEncryptionType"
},
"encryptionStatus": {
"type": "object"
},
"kmsKeyVersion": {
"type": "string"
}
},
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/encryptionInfoItems",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

instance

{
"type": "object",
"properties": {
"id": {
"$ref": "#/definitions/instanceId"
},
"name": {
"$ref": "#/definitions/instanceName"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"iamPolicy": {
"$ref": "gcp-iam#/definitions/projectIamPolicy"
},
"labels": {
"$ref": "gcp#/definitions/labels"
},
"state": {
"$ref": "#/definitions/instanceStatus"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/instanceAka"
}
},
"tags": {
"$ref": "gcp#/definitions/labels"
},
"title": {
"$ref": "#/definitions/instanceId"
},
"custom": {
"type": "object",
"properties": {
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"gcp": {
"$ref": "gcp#/definitions/gcpMetadata"
}
}
}
}
}
},
"required": [
"id",
"turbot"
],
"tests": [
{
"description": "All details provided",
"input": {
"id": "testfunction01",
"name": "projects/cse-legolas/instances/test01",
"turbot": {
"custom": {
"gcp": {
"projectId": "cse-legolas-2"
}
},
"tags": {
"foo": "bar",
"foo1": "bar1"
},
"title": "testfunction01"
}
}
},
{
"description": "invalid case - id data is missing",
"input": {
"name": "projects/cse-legolas/instances/test01",
"turbot": {
"custom": {
"gcp": {
"projectId": "cse-legolas-2"
}
},
"tags": {
"foo": "bar",
"foo1": "bar1"
},
"title": "testfunction01"
}
},
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/instance",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

instanceAka

{
"type": "string",
"pattern": "^gcp://spanner.googleapis.com/projects/[a-z0-9-]{5,29}[a-z0-9]{1}/instances/[-a-z0-9]{1,63}[a-z0-9]$",
"tests": [
{
"descritpion": "base case",
"input": "gcp://spanner.googleapis.com/projects/cse-legolas-2/instances/test-topic"
},
{
"description": "invalid - invalid Aka",
"input": "gcp://spanner.googleapis.com/projects/cse-legolas-2/project/instances/test-topic",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/instanceAka",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

instanceId

{
"type": "string",
"pattern": "^[a-z][-a-z0-9]{5,29}$",
"tests": [
{
"description": "valid case",
"input": "testfunction01"
},
{
"description": "invalid case - using underscore character",
"input": "test_function-01",
"expected": false
},
{
"description": "invalid case - using special characters other than hypens",
"input": "test-function_02$",
"expected": false
},
{
"description": "valid case - min legth",
"input": "test-f"
},
{
"description": "valid case - max legth",
"input": "test-ftest-ftest-ftest-ftest-f"
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/instanceId",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

instanceName

{
"type": "string",
"pattern": "^projects/[a-z0-9-]{5,29}[a-z0-9]{1}/instances/[a-z][-a-z0-9]{5,29}$",
"tests": [
{
"input": "projects/cse-legolas/instances/test01"
},
{
"description": "invalid - project name not project",
"input": "projects//instances/test01",
"expected": false
},
{
"description": "invalid - instances is not passed",
"input": "projects/cse-legolas//test01",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/instanceName",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

instanceServiceNow

{
"defaultColumns": {
"config": {
"column": "enabled"
},
"create_time": {
"column": "enabled",
"type": "string"
},
"iam_policy": {
"column": "enabled",
"label": "IAM Policy",
"size": 1000,
"type": "string"
},
"instance_name": {
"column": "enabled",
"label": "Name",
"path": "data.name",
"type": "string"
},
"instance_type": {
"column": "enabled"
},
"labels": {
"column": "enabled",
"size": 1000,
"type": "string"
},
"node_count": {
"column": "enabled"
},
"processing_units": {
"column": "enabled"
},
"project": {
"column": "enabled",
"path": "metadata.gcp.projectId",
"type": "string"
},
"region": {
"column": "enabled",
"path": "metadata.gcp.regionName"
},
"state": {
"column": "enabled"
}
},
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/instanceServiceNow",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

instanceStatus

{
"type": "string",
"enum": [
"READY",
"STATE_UNSPECIFIED",
"CREATING"
],
"tests": [
{
"input": "READY"
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/instanceStatus",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

regionName

{
"type": "string",
"enum": [
"asia-east1",
"asia-east2",
"asia-northeast1",
"asia-south1",
"asia-southeast1",
"australia-southeast1",
"europe-north1",
"europe-west1",
"europe-west2",
"europe-west4",
"northamerica-northeast1",
"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-spanner#/definitions/regionName",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

spanner

{
"allOf": [
{
"$ref": "turbot#/definitions/service"
},
{
"type": "object",
"properties": {
"name": {
"$ref": "#/definitions/spannerName"
},
"state": {
"$ref": "gcp#/definitions/state"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/spannerAka"
}
},
"title": {
"const": "Spanner"
},
"custom": {
"type": "object",
"properties": {
"gcp": {
"$ref": "gcp#/definitions/gcpMetadata"
}
}
}
}
}
},
"required": [
"name",
"turbot"
],
"additionalProperties": true,
"tests": [
{
"description": "Valid title",
"input": {
"name": "projects/932405488407/services/spanner.googleapis.com",
"turbot": {
"akas": [
"gcp://serviceusage.googleapis.com/projects/932405488407/services/spanner.googleapis.com"
],
"title": "Spanner",
"custom": {
"gcp": {
"projectId": "cse-legolas-2"
}
}
}
}
},
{
"description": "invalid - service provider name prefixed",
"input": {
"turbot": {
"akas": [
"gcp://serviceusage.googleapis.com/projects/932405488407/services/spanner.googleapis.com"
],
"title": "GCP Spanner",
"custom": {
"gcp": {
"projectId": "cse-legolas-2"
}
}
}
},
"expected": false
}
]
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/spanner",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

spannerAka

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

spannerName

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

spannerSupportedRegions

{
"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-west4",
"northamerica-northeast1",
"us-central1",
"us-east1",
"us-east4",
"us-west1",
"us-west2"
],
"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-west4",
"northamerica-northeast1",
"us-central1",
"us-east1",
"us-east4",
"us-west1",
"us-west2"
]
},
{
"description": "invalid - no regions",
"input": [],
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/spannerSupportedRegions",
"modUri": "tmod:@turbot/gcp-spanner"
}
}

srcType

{
"type": "string",
"enum": [
"TYPE_UNSPECIFIED",
"BACKUP"
],
".turbot": {
"uri": "tmod:@turbot/gcp-spanner#/definitions/srcType",
"modUri": "tmod:@turbot/gcp-spanner"
}
}