* Support service_agents_config.skip_iam in project-factory and fast stages * Fix inventories * Change service-agent creation/iam order
2031 lines
56 KiB
JSON
2031 lines
56 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"title": "Project",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"asset_feeds": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z0-9-]+$": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"feed_output_config"
|
|
],
|
|
"properties": {
|
|
"billing_project": {
|
|
"type": "string"
|
|
},
|
|
"content_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"RESOURCE",
|
|
"IAM_POLICY",
|
|
"ORG_POLICY",
|
|
"ACCESS_POLICY",
|
|
"OS_INVENTORY",
|
|
"RELATIONSHIP"
|
|
]
|
|
},
|
|
"asset_types": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"asset_names": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"feed_output_config": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"pubsub_destination"
|
|
],
|
|
"properties": {
|
|
"pubsub_destination": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"topic"
|
|
],
|
|
"properties": {
|
|
"topic": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"condition": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"expression"
|
|
],
|
|
"properties": {
|
|
"expression": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"location": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"automation": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"project"
|
|
],
|
|
"properties": {
|
|
"prefix": {
|
|
"type": "string"
|
|
},
|
|
"project": {
|
|
"type": "string"
|
|
},
|
|
"bucket": {
|
|
"$ref": "#/$defs/bucket"
|
|
},
|
|
"service_accounts": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z0-9-]+$": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"display_name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"prefix": {
|
|
"type": "string"
|
|
},
|
|
"iam": {
|
|
"$ref": "#/$defs/iam"
|
|
},
|
|
"iam_bindings": {
|
|
"$ref": "#/$defs/iam_bindings"
|
|
},
|
|
"iam_bindings_additive": {
|
|
"$ref": "#/$defs/iam_bindings_additive"
|
|
},
|
|
"iam_billing_roles": {
|
|
"$ref": "#/$defs/iam_billing_roles"
|
|
},
|
|
"iam_folder_roles": {
|
|
"$ref": "#/$defs/iam_folder_roles"
|
|
},
|
|
"iam_organization_roles": {
|
|
"$ref": "#/$defs/iam_organization_roles"
|
|
},
|
|
"iam_project_roles": {
|
|
"$ref": "#/$defs/iam_project_roles"
|
|
},
|
|
"iam_sa_roles": {
|
|
"$ref": "#/$defs/iam_sa_roles"
|
|
},
|
|
"iam_storage_roles": {
|
|
"$ref": "#/$defs/iam_storage_roles"
|
|
},
|
|
"tag_bindings": {
|
|
"$ref": "#/$defs/tag_bindings"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"billing_account": {
|
|
"type": "string"
|
|
},
|
|
"billing_budgets": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"buckets": {
|
|
"$ref": "#/$defs/buckets"
|
|
},
|
|
"contacts": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^(\\S+@\\S+\\.\\S+|\\$email_addresses:\\S+)$": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"ALL",
|
|
"BILLING",
|
|
"LEGAL",
|
|
"SECURITY",
|
|
"PRODUCT_UPDATES",
|
|
"SUSPENSION",
|
|
"TECHNICAL"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"data_access_logs": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^([a-z][a-z-]+\\.googleapis\\.com|allServices)$": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"ADMIN_READ": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"exempted_members": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"DATA_READ": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"exempted_members": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"DATA_WRITE": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"exempted_members": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"datasets": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z0-9_]+$": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"friendly_name": {
|
|
"type": "string"
|
|
},
|
|
"location": {
|
|
"type": "string"
|
|
},
|
|
"encryption_key": {
|
|
"type": "string"
|
|
},
|
|
"iam": {
|
|
"$ref": "#/$defs/iam"
|
|
},
|
|
"iam_bindings": {
|
|
"$ref": "#/$defs/iam_bindings"
|
|
},
|
|
"iam_bindings_additive": {
|
|
"$ref": "#/$defs/iam_bindings_additive"
|
|
},
|
|
"iam_by_principals": {
|
|
"$ref": "#/$defs/iam_by_principals"
|
|
},
|
|
"options": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"default_table_expiration_ms": {
|
|
"type": "number"
|
|
},
|
|
"default_partition_expiration_ms": {
|
|
"type": "number"
|
|
},
|
|
"delete_contents_on_destroy": {
|
|
"type": "boolean"
|
|
},
|
|
"max_time_travel_hours": {
|
|
"type": "number"
|
|
}
|
|
}
|
|
},
|
|
"tag_bindings": {
|
|
"$ref": "#/$defs/tag_bindings"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"deletion_policy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"PREVENT",
|
|
"DELETE",
|
|
"ABANDON"
|
|
]
|
|
},
|
|
"factories_config": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"aspect_types": {
|
|
"type": "string"
|
|
},
|
|
"custom_roles": {
|
|
"type": "string"
|
|
},
|
|
"data_catalog_taxonomy": {
|
|
"type": "string"
|
|
},
|
|
"observability": {
|
|
"type": "string"
|
|
},
|
|
"org_policies": {
|
|
"type": "string"
|
|
},
|
|
"quotas": {
|
|
"type": "string"
|
|
},
|
|
"scc_sha_custom_modules": {
|
|
"type": "string"
|
|
},
|
|
"tags": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"iam": {
|
|
"$ref": "#/$defs/iam"
|
|
},
|
|
"iam_bindings": {
|
|
"$ref": "#/$defs/iam_bindings"
|
|
},
|
|
"iam_bindings_additive": {
|
|
"$ref": "#/$defs/iam_bindings_additive"
|
|
},
|
|
"iam_by_principals": {
|
|
"$ref": "#/$defs/iam_by_principals"
|
|
},
|
|
"iam_by_principals_conditional": {
|
|
"$ref": "#/$defs/iam_by_principals_conditional"
|
|
},
|
|
"iam_by_principals_additive": {
|
|
"$ref": "#/$defs/iam_by_principals"
|
|
},
|
|
"iam_deny_policies": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z0-9-]+$": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"rules"
|
|
],
|
|
"properties": {
|
|
"display_name": {
|
|
"type": "string"
|
|
},
|
|
"rules": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"denied_permissions",
|
|
"denied_principals"
|
|
],
|
|
"properties": {
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"denied_permissions": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"denied_principals": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"denial_condition": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"expression"
|
|
],
|
|
"properties": {
|
|
"expression": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"location": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"exception_permissions": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"exception_principals": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"kms": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"autokeys": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z][a-z0-9-]+[a-z0-9]$": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"location",
|
|
"resource_type_selector"
|
|
],
|
|
"properties": {
|
|
"location": {
|
|
"type": "string"
|
|
},
|
|
"resource_type_selector": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"keyrings": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z][a-z0-9-]+[a-z0-9]$": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"location"
|
|
],
|
|
"properties": {
|
|
"location": {
|
|
"type": "string"
|
|
},
|
|
"iam": {
|
|
"$ref": "#/$defs/iam"
|
|
},
|
|
"iam_bindings": {
|
|
"$ref": "#/$defs/iam_bindings"
|
|
},
|
|
"iam_bindings_additive": {
|
|
"$ref": "#/$defs/iam_bindings_additive"
|
|
},
|
|
"tag_bindings": {
|
|
"$ref": "#/$defs/tag_bindings"
|
|
},
|
|
"keys": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z][a-z0-9-]+[a-z0-9]$": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"destroy_scheduled_duration": {
|
|
"type": "string"
|
|
},
|
|
"rotation_period": {
|
|
"type": "string"
|
|
},
|
|
"iam": {
|
|
"$ref": "#/$defs/iam"
|
|
},
|
|
"iam_bindings": {
|
|
"$ref": "#/$defs/iam_bindings"
|
|
},
|
|
"iam_bindings_additive": {
|
|
"$ref": "#/$defs/iam_bindings_additive"
|
|
},
|
|
"purpose": {
|
|
"type": "string",
|
|
"default": "ENCRYPT_DECRYPT",
|
|
"enum": [
|
|
"CRYPTO_KEY_PURPOSE_UNSPECIFIED",
|
|
"ENCRYPT_DECRYPT",
|
|
"ASYMMETRIC_SIGN",
|
|
"ASYMMETRIC_DECRYPT",
|
|
"RAW_ENCRYPT_DECRYPT",
|
|
"MAC"
|
|
]
|
|
},
|
|
"version_template": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"algorithm"
|
|
],
|
|
"properties": {
|
|
"algorithm": {
|
|
"type": "string"
|
|
},
|
|
"protection_level": {
|
|
"type": "string",
|
|
"default": "SOFTWARE",
|
|
"enum": [
|
|
"SOFTWARE",
|
|
"HSM",
|
|
"EXTERNAL",
|
|
"EXTERNAL_VPC"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"labels": {
|
|
"type": "object"
|
|
},
|
|
"pam_entitlements": {
|
|
"$ref": "#/$defs/pam_entitlements"
|
|
},
|
|
"log_buckets": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-zA-Z0-9_-]+$": {
|
|
"$ref": "#/$defs/log_bucket"
|
|
}
|
|
}
|
|
},
|
|
"metric_scopes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"descriptive_name": {
|
|
"type": "string"
|
|
},
|
|
"dns_threat_detector": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"excluded_networks": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"labels": {
|
|
"type": "object"
|
|
},
|
|
"location": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"threat_detector_provider": {
|
|
"type": "string",
|
|
"enum": [
|
|
"INFOBLOX"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"org_policies": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z]+\\.": {
|
|
"type": "object",
|
|
"properties": {
|
|
"inherit_from_parent": {
|
|
"type": "boolean"
|
|
},
|
|
"reset": {
|
|
"type": "boolean"
|
|
},
|
|
"rules": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"allow": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"all": {
|
|
"type": "boolean"
|
|
},
|
|
"values": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"deny": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"all": {
|
|
"type": "boolean"
|
|
},
|
|
"values": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"enforce": {
|
|
"type": "boolean"
|
|
},
|
|
"condition": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"expression": {
|
|
"type": "string"
|
|
},
|
|
"location": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"quotas": {
|
|
"title": "Quotas",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-zA-Z0-9_-]+$": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"service",
|
|
"quota_id",
|
|
"preferred_value"
|
|
],
|
|
"properties": {
|
|
"service": {
|
|
"type": "string"
|
|
},
|
|
"quota_id": {
|
|
"type": "string"
|
|
},
|
|
"preferred_value": {
|
|
"type": "number"
|
|
},
|
|
"dimensions": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"justification": {
|
|
"type": "string"
|
|
},
|
|
"contact_email": {
|
|
"type": "string"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"ignore_safety_checks": {
|
|
"type": "string",
|
|
"enum": [
|
|
"QUOTA_DECREASE_BELOW_USAGE",
|
|
"QUOTA_DECREASE_PERCENTAGE_TOO_HIGH",
|
|
"QUOTA_SAFETY_CHECK_UNSPECIFIED"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"parent": {
|
|
"type": "string"
|
|
},
|
|
"prefix": {
|
|
"type": "string"
|
|
},
|
|
"project_reuse": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"use_data_source": {
|
|
"type": "boolean"
|
|
},
|
|
"attributes": {
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"number"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"number": {
|
|
"type": "number"
|
|
},
|
|
"services_enabled": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"project_template": {
|
|
"type": "string"
|
|
},
|
|
"pubsub_topics": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-zA-Z0-9_-]+$": {
|
|
"$ref": "#/$defs/pubsub_topic"
|
|
}
|
|
}
|
|
},
|
|
"service_accounts": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z0-9-]+$": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"display_name": {
|
|
"type": "string"
|
|
},
|
|
"iam": {
|
|
"$ref": "#/$defs/iam"
|
|
},
|
|
"iam_bindings": {
|
|
"$ref": "#/$defs/iam_bindings"
|
|
},
|
|
"iam_bindings_additive": {
|
|
"$ref": "#/$defs/iam_bindings_additive"
|
|
},
|
|
"iam_self_roles": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"iam_project_roles": {
|
|
"$ref": "#/$defs/iam_project_roles"
|
|
},
|
|
"iam_sa_roles": {
|
|
"$ref": "#/$defs/iam_sa_roles"
|
|
},
|
|
"tag_bindings": {
|
|
"$ref": "#/$defs/tag_bindings"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"service_agents_config": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"create_primary_agents": {
|
|
"type": "boolean"
|
|
},
|
|
"grant_default_roles": {
|
|
"type": "boolean"
|
|
},
|
|
"grant_service_agent_editor": {
|
|
"type": "boolean"
|
|
},
|
|
"skip_iam": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"service_encryption_key_ids": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z-]+\\.googleapis\\.com$": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"services": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^[a-z-]+\\.googleapis\\.com$"
|
|
}
|
|
},
|
|
"shared_vpc_host_config": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"enabled"
|
|
],
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"service_projects": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"shared_vpc_service_config": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"host_project"
|
|
],
|
|
"properties": {
|
|
"host_project": {
|
|
"type": "string"
|
|
},
|
|
"iam_bindings_additive": {
|
|
"$ref": "#/$defs/iam_bindings_additive"
|
|
},
|
|
"network_users": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"service_agent_iam": {
|
|
"type": "object",
|
|
"additionalItems": false,
|
|
"patternProperties": {
|
|
"^[a-z0-9_-]+$": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"service_agent_subnet_iam": {
|
|
"type": "object",
|
|
"additionalItems": false,
|
|
"patternProperties": {
|
|
"^[a-z0-9_-]+$": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"service_iam_grants": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"network_subnet_users": {
|
|
"type": "object",
|
|
"additionalItems": false,
|
|
"patternProperties": {
|
|
"^[a-z0-9_-]+$": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"tags": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"allowed_values_regex": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"iam": {
|
|
"$ref": "#/$defs/iam"
|
|
},
|
|
"iam_bindings": {
|
|
"$ref": "#/$defs/iam_bindings"
|
|
},
|
|
"iam_bindings_additive": {
|
|
"$ref": "#/$defs/iam_bindings_additive"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"values": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"iam": {
|
|
"$ref": "#/$defs/iam"
|
|
},
|
|
"iam_bindings": {
|
|
"$ref": "#/$defs/iam_bindings"
|
|
},
|
|
"iam_bindings_additive": {
|
|
"$ref": "#/$defs/iam_bindings_additive"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"allOf": [
|
|
{
|
|
"if": {
|
|
"required": [
|
|
"allowed_values_regex"
|
|
]
|
|
},
|
|
"then": {
|
|
"not": {
|
|
"required": [
|
|
"values"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"tag_bindings": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z0-9_-]+$": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"universe": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"prefix": {
|
|
"type": "string"
|
|
},
|
|
"forced_jit_service_identities": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"unavailable_services": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"unavailable_service_identities": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"vpc_sc": {
|
|
"type": "object",
|
|
"additionalItems": false,
|
|
"required": [
|
|
"perimeter_name"
|
|
],
|
|
"properties": {
|
|
"perimeter_name": {
|
|
"type": "string"
|
|
},
|
|
"is_dry_run": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"workload_identity_pools": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z][a-z0-9-]+[a-z0-9]$": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"display_name": {
|
|
"type": "string"
|
|
},
|
|
"disabled": {
|
|
"type": "boolean"
|
|
},
|
|
"providers": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z][a-z0-9-]+[a-z0-9]$": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"display_name": {
|
|
"type": "string"
|
|
},
|
|
"disabled": {
|
|
"type": "boolean"
|
|
},
|
|
"attribute_condition": {
|
|
"type": "string"
|
|
},
|
|
"attribute_mapping": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"identity_provider": {
|
|
"type": "object",
|
|
"oneOf": [
|
|
{
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"aws"
|
|
],
|
|
"properties": {
|
|
"aws": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"account_id"
|
|
],
|
|
"properties": {
|
|
"account_id": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"oidc"
|
|
],
|
|
"properties": {
|
|
"oidc": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"allowed_audiences": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"issuer_uri": {
|
|
"type": "string"
|
|
},
|
|
"jwks_json": {
|
|
"type": "string"
|
|
},
|
|
"template": {
|
|
"type": "string",
|
|
"enum": [
|
|
"github",
|
|
"gitlab",
|
|
"okta",
|
|
"terraform"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"saml"
|
|
],
|
|
"properties": {
|
|
"saml": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"idp_metadata_xml"
|
|
],
|
|
"properties": {
|
|
"idp_metadata_xml": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"$defs": {
|
|
"bucket": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"create": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"encryption_key": {
|
|
"type": "string"
|
|
},
|
|
"iam": {
|
|
"$ref": "#/$defs/iam"
|
|
},
|
|
"iam_bindings": {
|
|
"$ref": "#/$defs/iam_bindings"
|
|
},
|
|
"iam_bindings_additive": {
|
|
"$ref": "#/$defs/iam_bindings_additive"
|
|
},
|
|
"force_destroy": {
|
|
"type": "boolean"
|
|
},
|
|
"labels": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"lifecycle_rules": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-zA-Z0-9_-]+$": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"action",
|
|
"condition"
|
|
],
|
|
"properties": {
|
|
"action": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"type"
|
|
],
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Delete",
|
|
"SetStorageClass",
|
|
"AbortIncompleteMultipartUpload"
|
|
]
|
|
},
|
|
"storage_class": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"condition": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"age": {
|
|
"type": "number"
|
|
},
|
|
"created_before": {
|
|
"type": "string"
|
|
},
|
|
"custom_time_before": {
|
|
"type": "string"
|
|
},
|
|
"days_since_custom_time": {
|
|
"type": "number"
|
|
},
|
|
"days_since_noncurrent_time": {
|
|
"type": "number"
|
|
},
|
|
"matches_prefix": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"matches_storage_class": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"STANDARD",
|
|
"MULTI_REGIONAL",
|
|
"REGIONAL",
|
|
"NEARLINE",
|
|
"COLDLINE",
|
|
"ARCHIVE",
|
|
"DURABLE_REDUCED_AVAILABILITY"
|
|
]
|
|
}
|
|
},
|
|
"matches_suffix": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"noncurrent_time_before": {
|
|
"type": "string"
|
|
},
|
|
"num_newer_versions": {
|
|
"type": "number"
|
|
},
|
|
"with_state": {
|
|
"type": "string",
|
|
"enum": [
|
|
"LIVE",
|
|
"ARCHIVED",
|
|
"ANY"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"logging_config": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"log_bucket": {
|
|
"type": "string"
|
|
},
|
|
"log_object_prefix": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"log_bucket"
|
|
]
|
|
},
|
|
"location": {
|
|
"type": "string"
|
|
},
|
|
"managed_folders": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-zA-Z0-9][a-zA-Z0-9_/-]+$": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"force_destroy": {
|
|
"type": "boolean"
|
|
},
|
|
"iam": {
|
|
"$ref": "#/$defs/iam"
|
|
},
|
|
"iam_bindings": {
|
|
"$ref": "#/$defs/iam_bindings"
|
|
},
|
|
"iam_bindings_additive": {
|
|
"$ref": "#/$defs/iam_bindings_additive"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"prefix": {
|
|
"type": "string"
|
|
},
|
|
"storage_class": {
|
|
"type": "string"
|
|
},
|
|
"uniform_bucket_level_access": {
|
|
"type": "boolean"
|
|
},
|
|
"versioning": {
|
|
"type": "boolean"
|
|
},
|
|
"retention_policy": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"retention_period": {
|
|
"type": "string"
|
|
},
|
|
"is_locked": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"soft_delete_retention": {
|
|
"type": "number"
|
|
},
|
|
"enable_object_retention": {
|
|
"type": "boolean"
|
|
},
|
|
"tag_bindings": {
|
|
"$ref": "#/$defs/tag_bindings"
|
|
},
|
|
"custom_placement_config": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"buckets": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z0-9-]+$": {
|
|
"$ref": "#/$defs/bucket"
|
|
}
|
|
}
|
|
},
|
|
"iam": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:||\\$iam_principals:[a-z0-9_-]+)"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"iam_bindings": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z0-9_-]+$": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"members": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\\$iam_principals:[a-z0-9_-]+)"
|
|
}
|
|
},
|
|
"role": {
|
|
"type": "string",
|
|
"pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
|
|
},
|
|
"condition": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"expression",
|
|
"title"
|
|
],
|
|
"properties": {
|
|
"expression": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"iam_bindings_additive": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z0-9_-]+$": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"member": {
|
|
"type": "string",
|
|
"pattern": "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\\$iam_principals:[a-z0-9_-]+)"
|
|
},
|
|
"role": {
|
|
"type": "string",
|
|
"pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
|
|
},
|
|
"condition": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"expression",
|
|
"title"
|
|
],
|
|
"properties": {
|
|
"expression": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"iam_by_principals": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\\$iam_principals:[a-z0-9_-]+)": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"iam_by_principals_conditional": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\\$iam_principals:[a-z0-9_-]+)": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"condition",
|
|
"roles"
|
|
],
|
|
"properties": {
|
|
"condition": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"expression",
|
|
"title"
|
|
],
|
|
"properties": {
|
|
"expression": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"roles": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"iam_billing_roles": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z0-9-]+$": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"iam_folder_roles": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z0-9-]+$": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"iam_organization_roles": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z0-9-]+$": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"iam_project_roles": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^(?:[a-z0-9-]|\\$project_ids:[a-z0-9_-])+$": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"iam_sa_roles": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^(?:\\$service_account_ids:|projects/)": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"iam_storage_roles": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z0-9-]+$": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"log_bucket": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"kms_key_name": {
|
|
"type": "string"
|
|
},
|
|
"location": {
|
|
"type": "string"
|
|
},
|
|
"log_analytics": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"enable": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"dataset_link_id": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"retention": {
|
|
"type": "number"
|
|
}
|
|
}
|
|
},
|
|
"pam_entitlements": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z][a-z0-9-]{0,61}[a-z0-9]$": {
|
|
"type": "object",
|
|
"properties": {
|
|
"max_request_duration": {
|
|
"type": "string"
|
|
},
|
|
"eligible_users": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"privileged_access": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"role": {
|
|
"type": "string"
|
|
},
|
|
"condition": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"role"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"requester_justification_config": {
|
|
"type": "object",
|
|
"properties": {
|
|
"not_mandatory": {
|
|
"type": "boolean"
|
|
},
|
|
"unstructured": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"manual_approvals": {
|
|
"type": "object",
|
|
"properties": {
|
|
"require_approver_justification": {
|
|
"type": "boolean"
|
|
},
|
|
"steps": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"approvers": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"approvals_needed": {
|
|
"type": "number"
|
|
},
|
|
"approver_email_recipients": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"approvers"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"require_approver_justification",
|
|
"steps"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"additional_notification_targets": {
|
|
"type": "object",
|
|
"properties": {
|
|
"admin_email_recipients": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"requester_email_recipients": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"max_request_duration",
|
|
"eligible_users",
|
|
"privileged_access"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
},
|
|
"pubsub_topic": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"iam": {
|
|
"$ref": "#/$defs/iam"
|
|
},
|
|
"iam_bindings": {
|
|
"$ref": "#/$defs/iam_bindings"
|
|
},
|
|
"iam_bindings_additive": {
|
|
"$ref": "#/$defs/iam_bindings_additive"
|
|
},
|
|
"iam_by_principals": {
|
|
"$ref": "#/$defs/iam_by_principals"
|
|
},
|
|
"kms_key": {
|
|
"type": "string"
|
|
},
|
|
"labels": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"message_retention_duration": {
|
|
"type": "string"
|
|
},
|
|
"regions": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"definition",
|
|
"schema_type"
|
|
],
|
|
"properties": {
|
|
"definition": {
|
|
"type": "string"
|
|
},
|
|
"msg_encoding": {
|
|
"type": "string"
|
|
},
|
|
"schema_type": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"subscriptions": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-zA-Z0-9_-]+$": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"ack_deadline_seconds": {
|
|
"type": "number"
|
|
},
|
|
"enable_exactly_once_delivery": {
|
|
"type": "boolean"
|
|
},
|
|
"enable_message_ordering": {
|
|
"type": "boolean"
|
|
},
|
|
"expiration_policy_ttl": {
|
|
"type": "string"
|
|
},
|
|
"filter": {
|
|
"type": "string"
|
|
},
|
|
"iam": {
|
|
"$ref": "#/$defs/iam"
|
|
},
|
|
"iam_bindings": {
|
|
"$ref": "#/$defs/iam_bindings"
|
|
},
|
|
"iam_bindings_additive": {
|
|
"$ref": "#/$defs/iam_bindings_additive"
|
|
},
|
|
"labels": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"message_retention_duration": {
|
|
"type": "string"
|
|
},
|
|
"retain_acked_messages": {
|
|
"type": "boolean"
|
|
},
|
|
"bigquery": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"table"
|
|
],
|
|
"properties": {
|
|
"table": {
|
|
"type": "string"
|
|
},
|
|
"drop_unknown_fields": {
|
|
"type": "boolean"
|
|
},
|
|
"service_account_email": {
|
|
"type": "string"
|
|
},
|
|
"use_table_schema": {
|
|
"type": "boolean"
|
|
},
|
|
"use_topic_schema": {
|
|
"type": "boolean"
|
|
},
|
|
"write_metadata": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"cloud_storage": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"bucket"
|
|
],
|
|
"properties": {
|
|
"bucket": {
|
|
"type": "string"
|
|
},
|
|
"filename_prefix": {
|
|
"type": "string"
|
|
},
|
|
"filename_suffix": {
|
|
"type": "string"
|
|
},
|
|
"max_duration": {
|
|
"type": "string"
|
|
},
|
|
"max_bytes": {
|
|
"type": "number"
|
|
},
|
|
"avro_config": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"write_metadata": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"dead_letter_policy": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"topic"
|
|
],
|
|
"properties": {
|
|
"topic": {
|
|
"type": "string"
|
|
},
|
|
"max_delivery_attempts": {
|
|
"type": "number"
|
|
}
|
|
}
|
|
},
|
|
"push": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"endpoint"
|
|
],
|
|
"properties": {
|
|
"endpoint": {
|
|
"type": "string"
|
|
},
|
|
"attributes": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"no_wrapper": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"write_metadata": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"oidc_token": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"service_account_email"
|
|
],
|
|
"properties": {
|
|
"audience": {
|
|
"type": "string"
|
|
},
|
|
"service_account_email": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"retry_policy": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"minimum_backoff": {
|
|
"type": "number"
|
|
},
|
|
"maximum_backoff": {
|
|
"type": "number"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"tag_bindings": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^[a-z0-9_-]+$": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|