diff --git a/Makefile b/Makefile index b9c6965a..a306a39d 100644 --- a/Makefile +++ b/Makefile @@ -4,11 +4,11 @@ PROJECT_NAME := provider-jet-gcp PROJECT_REPO := github.com/crossplane-contrib/$(PROJECT_NAME) -export TERRAFORM_VERSION := 1.0.11 +export TERRAFORM_VERSION := 1.1.9 export TERRAFORM_PROVIDER_SOURCE := hashicorp/google -export TERRAFORM_PROVIDER_VERSION := 4.0.0 +export TERRAFORM_PROVIDER_VERSION := 4.18.0 export TERRAFORM_PROVIDER_DOWNLOAD_NAME := terraform-provider-google -export TERRAFORM_PROVIDER_DOWNLOAD_URL_PREFIX := https://releases.hashicorp.com/terraform-provider-google/4.0.0 +export TERRAFORM_PROVIDER_DOWNLOAD_URL_PREFIX := https://releases.hashicorp.com/terraform-provider-google/$(TERRAFORM_PROVIDER_VERSION) PLATFORMS ?= linux_amd64 linux_arm64 diff --git a/apis/compute/v1alpha2/zz_address_types.go b/apis/compute/v1alpha2/zz_address_types.go index 3ea7a10d..63f96ed1 100755 --- a/apis/compute/v1alpha2/zz_address_types.go +++ b/apis/compute/v1alpha2/zz_address_types.go @@ -40,7 +40,7 @@ type AddressParameters struct { // The static external IP address represented by this resource. Only // IPv4 is supported. An address may only be specified for INTERNAL // address types. The IP address must be inside the specified subnetwork, - // if any. + // if any. Set by the API if undefined. // +kubebuilder:validation:Optional Address *string `json:"address,omitempty" tf:"address,omitempty"` diff --git a/apis/compute/v1alpha2/zz_firewall_types.go b/apis/compute/v1alpha2/zz_firewall_types.go index fd3d337d..5ec7dba5 100755 --- a/apis/compute/v1alpha2/zz_firewall_types.go +++ b/apis/compute/v1alpha2/zz_firewall_types.go @@ -158,7 +158,8 @@ type FirewallParameters struct { // apply to traffic that has source IP address within sourceRanges OR the // source IP that belongs to a tag listed in the sourceTags property. The // connection does not need to match both properties for the firewall to - // apply. Only IPv4 is supported. + // apply. Only IPv4 is supported. For INGRESS traffic, one of 'source_ranges', + // 'source_tags' or 'source_service_accounts' is required. // +kubebuilder:validation:Optional SourceRanges []*string `json:"sourceRanges,omitempty" tf:"source_ranges,omitempty"` @@ -172,7 +173,8 @@ type FirewallParameters struct { // source IP belongs to an instance with service account listed in // sourceServiceAccount. The connection does not need to match both // properties for the firewall to apply. sourceServiceAccounts cannot be - // used at the same time as sourceTags or targetTags. + // used at the same time as sourceTags or targetTags. For INGRESS traffic, + // one of 'source_ranges', 'source_tags' or 'source_service_accounts' is required. // +kubebuilder:validation:Optional SourceServiceAccounts []*string `json:"sourceServiceAccounts,omitempty" tf:"source_service_accounts,omitempty"` @@ -184,7 +186,8 @@ type FirewallParameters struct { // both properties are set, the firewall will apply to traffic that has // source IP address within sourceRanges OR the source IP that belongs to // a tag listed in the sourceTags property. The connection does not need - // to match both properties for the firewall to apply. + // to match both properties for the firewall to apply. For INGRESS traffic, + // one of 'source_ranges', 'source_tags' or 'source_service_accounts' is required. // +kubebuilder:validation:Optional SourceTags []*string `json:"sourceTags,omitempty" tf:"source_tags,omitempty"` diff --git a/apis/compute/v1alpha2/zz_generated.deepcopy.go b/apis/compute/v1alpha2/zz_generated.deepcopy.go index 43e7375a..403d2e72 100644 --- a/apis/compute/v1alpha2/zz_generated.deepcopy.go +++ b/apis/compute/v1alpha2/zz_generated.deepcopy.go @@ -562,6 +562,11 @@ func (in *BGPParameters) DeepCopyInto(out *BGPParameters) { *out = new(float64) **out = **in } + if in.KeepaliveInterval != nil { + in, out := &in.KeepaliveInterval, &out.KeepaliveInterval + *out = new(float64) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BGPParameters. @@ -1849,6 +1854,11 @@ func (in *NetworkInterfaceParameters) DeepCopyInto(out *NetworkInterfaceParamete *out = new(string) **out = **in } + if in.QueueCount != nil { + in, out := &in.QueueCount, &out.QueueCount + *out = new(float64) + **out = **in + } if in.StackType != nil { in, out := &in.StackType, &out.StackType *out = new(string) diff --git a/apis/compute/v1alpha2/zz_instance_types.go b/apis/compute/v1alpha2/zz_instance_types.go index b0e6e441..d4acdadc 100755 --- a/apis/compute/v1alpha2/zz_instance_types.go +++ b/apis/compute/v1alpha2/zz_instance_types.go @@ -362,6 +362,10 @@ type NetworkInterfaceParameters struct { // +kubebuilder:validation:Optional NicType *string `json:"nicType,omitempty" tf:"nic_type,omitempty"` + // The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It will be empty if not specified. + // +kubebuilder:validation:Optional + QueueCount *float64 `json:"queueCount,omitempty" tf:"queue_count,omitempty"` + // The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used. // +kubebuilder:validation:Optional StackType *string `json:"stackType,omitempty" tf:"stack_type,omitempty"` diff --git a/apis/compute/v1alpha2/zz_router_types.go b/apis/compute/v1alpha2/zz_router_types.go index 64427573..7739aabd 100755 --- a/apis/compute/v1alpha2/zz_router_types.go +++ b/apis/compute/v1alpha2/zz_router_types.go @@ -73,6 +73,14 @@ type BGPParameters struct { // will have the same local ASN. // +kubebuilder:validation:Required Asn *float64 `json:"asn" tf:"asn,omitempty"` + + // The interval in seconds between BGP keepalive messages that are sent to the peer. + // Hold time is three times the interval at which keepalive messages are sent, and the hold time is the + // maximum number of seconds allowed to elapse between successive keepalive messages that BGP receives from a peer. + // BGP will use the smaller of either the local hold time value or the peer's hold time value as the hold time for + // the BGP connection between the two peers. If set, this value must be between 20 and 60. The default is 20. + // +kubebuilder:validation:Optional + KeepaliveInterval *float64 `json:"keepaliveInterval,omitempty" tf:"keepalive_interval,omitempty"` } type RouterObservation struct { diff --git a/apis/compute/v1alpha2/zz_subnetwork_types.go b/apis/compute/v1alpha2/zz_subnetwork_types.go index a2dbf30b..5f1af078 100755 --- a/apis/compute/v1alpha2/zz_subnetwork_types.go +++ b/apis/compute/v1alpha2/zz_subnetwork_types.go @@ -142,13 +142,11 @@ type SubnetworkParameters_2 struct { // +kubebuilder:validation:Optional Project *string `json:"project,omitempty" tf:"project,omitempty"` - // The purpose of the resource. This field can be either PRIVATE - // or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to + // The purpose of the resource. A subnetwork with purpose set to // INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is - // reserved for Internal HTTP(S) Load Balancing. If unspecified, the - // purpose defaults to PRIVATE. + // reserved for Internal HTTP(S) Load Balancing. // - // If set to INTERNAL_HTTPS_LOAD_BALANCER you must also set 'role'. + // If set to INTERNAL_HTTPS_LOAD_BALANCER you must also set the 'role' field. // +kubebuilder:validation:Optional Purpose *string `json:"purpose,omitempty" tf:"purpose,omitempty"` diff --git a/apis/container/v1alpha2/zz_cluster_types.go b/apis/container/v1alpha2/zz_cluster_types.go index 62125f13..acb9ee44 100755 --- a/apis/container/v1alpha2/zz_cluster_types.go +++ b/apis/container/v1alpha2/zz_cluster_types.go @@ -34,6 +34,10 @@ type AddonsConfigParameters struct { // +kubebuilder:validation:Optional CloudrunConfig []CloudrunConfigParameters `json:"cloudrunConfig,omitempty" tf:"cloudrun_config,omitempty"` + // The status of the Filestore CSI driver addon, which allows the usage of filestore instance as volumes. Defaults to disabled; set enabled = true to enable. + // +kubebuilder:validation:Optional + GCPFilestoreCsiDriverConfig []GCPFilestoreCsiDriverConfigParameters `json:"gcpFilestoreCsiDriverConfig,omitempty" tf:"gcp_filestore_csi_driver_config,omitempty"` + // The status of the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster. It is enabled by default; set disabled = true to disable. // +kubebuilder:validation:Optional HTTPLoadBalancing []HTTPLoadBalancingParameters `json:"httpLoadBalancing,omitempty" tf:"http_load_balancing,omitempty"` @@ -62,6 +66,10 @@ type AutoProvisioningDefaultsObservation struct { type AutoProvisioningDefaultsParameters struct { + // The default image type used by NAP once a new node pool is being created. + // +kubebuilder:validation:Optional + ImageType *string `json:"imageType,omitempty" tf:"image_type,omitempty"` + // Scopes that are used by NAP when creating node pools. // +kubebuilder:validation:Optional OAuthScopes []*string `json:"oauthScopes,omitempty" tf:"oauth_scopes,omitempty"` @@ -185,6 +193,14 @@ type ClusterParameters struct { // +kubebuilder:validation:Optional ClusterIPv4Cidr *string `json:"clusterIpv4Cidr,omitempty" tf:"cluster_ipv4_cidr,omitempty"` + // Configuration for the confidential nodes feature, which makes nodes run on confidential VMs. Warning: This configuration can't be changed (or added/removed) after cluster creation without deleting and recreating the entire cluster. + // +kubebuilder:validation:Optional + ConfidentialNodes []ConfidentialNodesParameters `json:"confidentialNodes,omitempty" tf:"confidential_nodes,omitempty"` + + // Configuration for Cloud DNS for Kubernetes Engine. + // +kubebuilder:validation:Optional + DNSConfig []DNSConfigParameters `json:"dnsConfig,omitempty" tf:"dns_config,omitempty"` + // Application-layer Secrets Encryption settings. The object format is {state = string, key_name = string}. Valid values of state are: "ENCRYPTED"; "DECRYPTED". key_name is the name of a CloudKMS key. // +kubebuilder:validation:Optional DatabaseEncryption []DatabaseEncryptionParameters `json:"databaseEncryption,omitempty" tf:"database_encryption,omitempty"` @@ -346,6 +362,34 @@ type ClusterParameters struct { WorkloadIdentityConfig []WorkloadIdentityConfigParameters `json:"workloadIdentityConfig,omitempty" tf:"workload_identity_config,omitempty"` } +type ConfidentialNodesObservation struct { +} + +type ConfidentialNodesParameters struct { + + // Whether Confidential Nodes feature is enabled for all nodes in this cluster. + // +kubebuilder:validation:Required + Enabled *bool `json:"enabled" tf:"enabled,omitempty"` +} + +type DNSConfigObservation struct { +} + +type DNSConfigParameters struct { + + // Which in-cluster DNS provider should be used. + // +kubebuilder:validation:Optional + ClusterDNS *string `json:"clusterDns,omitempty" tf:"cluster_dns,omitempty"` + + // The suffix used for all cluster service records. + // +kubebuilder:validation:Optional + ClusterDNSDomain *string `json:"clusterDnsDomain,omitempty" tf:"cluster_dns_domain,omitempty"` + + // The scope of access to cluster DNS records. + // +kubebuilder:validation:Optional + ClusterDNSScope *string `json:"clusterDnsScope,omitempty" tf:"cluster_dns_scope,omitempty"` +} + type DailyMaintenanceWindowObservation struct { Duration *string `json:"duration,omitempty" tf:"duration,omitempty"` } @@ -380,6 +424,25 @@ type DefaultSnatStatusParameters struct { Disabled *bool `json:"disabled" tf:"disabled,omitempty"` } +type GCPFilestoreCsiDriverConfigObservation struct { +} + +type GCPFilestoreCsiDriverConfigParameters struct { + + // +kubebuilder:validation:Required + Enabled *bool `json:"enabled" tf:"enabled,omitempty"` +} + +type GcfsConfigObservation struct { +} + +type GcfsConfigParameters struct { + + // Whether or not GCFS is enabled + // +kubebuilder:validation:Required + Enabled *bool `json:"enabled" tf:"enabled,omitempty"` +} + type GuestAcceleratorObservation struct { } @@ -395,6 +458,16 @@ type GuestAcceleratorParameters struct { Type *string `json:"type,omitempty" tf:"type"` } +type GvnicObservation struct { +} + +type GvnicParameters struct { + + // Whether or not gvnic is enabled + // +kubebuilder:validation:Required + Enabled *bool `json:"enabled" tf:"enabled,omitempty"` +} + type HTTPLoadBalancingObservation struct { } @@ -558,6 +631,16 @@ type NetworkPolicyParameters struct { Provider *string `json:"provider,omitempty" tf:"provider,omitempty"` } +type NodeConfigGcfsConfigObservation struct { +} + +type NodeConfigGcfsConfigParameters struct { + + // Whether or not GCFS is enabled + // +kubebuilder:validation:Required + Enabled *bool `json:"enabled" tf:"enabled,omitempty"` +} + type NodeConfigGuestAcceleratorObservation struct { } @@ -573,11 +656,25 @@ type NodeConfigGuestAcceleratorParameters struct { Type *string `json:"type,omitempty" tf:"type"` } +type NodeConfigGvnicObservation struct { +} + +type NodeConfigGvnicParameters struct { + + // Whether or not gvnic is enabled + // +kubebuilder:validation:Required + Enabled *bool `json:"enabled" tf:"enabled,omitempty"` +} + type NodeConfigObservation struct { } type NodeConfigParameters struct { + // The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. + // +kubebuilder:validation:Optional + BootDiskKMSKey *string `json:"bootDiskKmsKey,omitempty" tf:"boot_disk_kms_key,omitempty"` + // Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. // +kubebuilder:validation:Optional DiskSizeGb *float64 `json:"diskSizeGb,omitempty" tf:"disk_size_gb,omitempty"` @@ -586,10 +683,18 @@ type NodeConfigParameters struct { // +kubebuilder:validation:Optional DiskType *string `json:"diskType,omitempty" tf:"disk_type,omitempty"` + // GCFS configuration for this node. + // +kubebuilder:validation:Optional + GcfsConfig []GcfsConfigParameters `json:"gcfsConfig,omitempty" tf:"gcfs_config,omitempty"` + // List of the type and count of accelerator cards attached to the instance. // +kubebuilder:validation:Optional GuestAccelerator []GuestAcceleratorParameters `json:"guestAccelerator,omitempty" tf:"guest_accelerator,omitempty"` + // Enable or disable gvnic in the node pool. + // +kubebuilder:validation:Optional + Gvnic []GvnicParameters `json:"gvnic,omitempty" tf:"gvnic,omitempty"` + // The image type to use for this node. Note that for a given image type, the latest version of it will be used. // +kubebuilder:validation:Optional ImageType *string `json:"imageType,omitempty" tf:"image_type,omitempty"` @@ -614,6 +719,10 @@ type NodeConfigParameters struct { // +kubebuilder:validation:Optional MinCPUPlatform *string `json:"minCpuPlatform,omitempty" tf:"min_cpu_platform,omitempty"` + // Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on sole tenant nodes. + // +kubebuilder:validation:Optional + NodeGroup *string `json:"nodeGroup,omitempty" tf:"node_group,omitempty"` + // The set of Google API scopes to be made available on all of the node VMs. // +kubebuilder:validation:Optional OAuthScopes []*string `json:"oauthScopes,omitempty" tf:"oauth_scopes,omitempty"` @@ -687,6 +796,10 @@ type NodePoolNodeConfigObservation struct { type NodePoolNodeConfigParameters struct { + // The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. + // +kubebuilder:validation:Optional + BootDiskKMSKey *string `json:"bootDiskKmsKey,omitempty" tf:"boot_disk_kms_key,omitempty"` + // Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. // +kubebuilder:validation:Optional DiskSizeGb *float64 `json:"diskSizeGb,omitempty" tf:"disk_size_gb,omitempty"` @@ -695,10 +808,18 @@ type NodePoolNodeConfigParameters struct { // +kubebuilder:validation:Optional DiskType *string `json:"diskType,omitempty" tf:"disk_type,omitempty"` + // GCFS configuration for this node. + // +kubebuilder:validation:Optional + GcfsConfig []NodeConfigGcfsConfigParameters `json:"gcfsConfig,omitempty" tf:"gcfs_config,omitempty"` + // List of the type and count of accelerator cards attached to the instance. // +kubebuilder:validation:Optional GuestAccelerator []NodeConfigGuestAcceleratorParameters `json:"guestAccelerator,omitempty" tf:"guest_accelerator,omitempty"` + // Enable or disable gvnic in the node pool. + // +kubebuilder:validation:Optional + Gvnic []NodeConfigGvnicParameters `json:"gvnic,omitempty" tf:"gvnic,omitempty"` + // The image type to use for this node. Note that for a given image type, the latest version of it will be used. // +kubebuilder:validation:Optional ImageType *string `json:"imageType,omitempty" tf:"image_type,omitempty"` @@ -723,6 +844,10 @@ type NodePoolNodeConfigParameters struct { // +kubebuilder:validation:Optional MinCPUPlatform *string `json:"minCpuPlatform,omitempty" tf:"min_cpu_platform,omitempty"` + // Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on sole tenant nodes. + // +kubebuilder:validation:Optional + NodeGroup *string `json:"nodeGroup,omitempty" tf:"node_group,omitempty"` + // The set of Google API scopes to be made available on all of the node VMs. // +kubebuilder:validation:Optional OAuthScopes []*string `json:"oauthScopes,omitempty" tf:"oauth_scopes,omitempty"` diff --git a/apis/container/v1alpha2/zz_generated.deepcopy.go b/apis/container/v1alpha2/zz_generated.deepcopy.go index 54fe68bf..ef3fcd0a 100644 --- a/apis/container/v1alpha2/zz_generated.deepcopy.go +++ b/apis/container/v1alpha2/zz_generated.deepcopy.go @@ -51,6 +51,13 @@ func (in *AddonsConfigParameters) DeepCopyInto(out *AddonsConfigParameters) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.GCPFilestoreCsiDriverConfig != nil { + in, out := &in.GCPFilestoreCsiDriverConfig, &out.GCPFilestoreCsiDriverConfig + *out = make([]GCPFilestoreCsiDriverConfigParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.HTTPLoadBalancing != nil { in, out := &in.HTTPLoadBalancing, &out.HTTPLoadBalancing *out = make([]HTTPLoadBalancingParameters, len(*in)) @@ -137,6 +144,11 @@ func (in *AutoProvisioningDefaultsObservation) DeepCopy() *AutoProvisioningDefau // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AutoProvisioningDefaultsParameters) DeepCopyInto(out *AutoProvisioningDefaultsParameters) { *out = *in + if in.ImageType != nil { + in, out := &in.ImageType, &out.ImageType + *out = new(string) + **out = **in + } if in.OAuthScopes != nil { in, out := &in.OAuthScopes, &out.OAuthScopes *out = make([]*string, len(*in)) @@ -547,6 +559,20 @@ func (in *ClusterParameters) DeepCopyInto(out *ClusterParameters) { *out = new(string) **out = **in } + if in.ConfidentialNodes != nil { + in, out := &in.ConfidentialNodes, &out.ConfidentialNodes + *out = make([]ConfidentialNodesParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DNSConfig != nil { + in, out := &in.DNSConfig, &out.DNSConfig + *out = make([]DNSConfigParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.DatabaseEncryption != nil { in, out := &in.DatabaseEncryption, &out.DatabaseEncryption *out = make([]DatabaseEncryptionParameters, len(*in)) @@ -841,6 +867,86 @@ func (in *ClusterStatus) DeepCopy() *ClusterStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConfidentialNodesObservation) DeepCopyInto(out *ConfidentialNodesObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfidentialNodesObservation. +func (in *ConfidentialNodesObservation) DeepCopy() *ConfidentialNodesObservation { + if in == nil { + return nil + } + out := new(ConfidentialNodesObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConfidentialNodesParameters) DeepCopyInto(out *ConfidentialNodesParameters) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfidentialNodesParameters. +func (in *ConfidentialNodesParameters) DeepCopy() *ConfidentialNodesParameters { + if in == nil { + return nil + } + out := new(ConfidentialNodesParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DNSConfigObservation) DeepCopyInto(out *DNSConfigObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSConfigObservation. +func (in *DNSConfigObservation) DeepCopy() *DNSConfigObservation { + if in == nil { + return nil + } + out := new(DNSConfigObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DNSConfigParameters) DeepCopyInto(out *DNSConfigParameters) { + *out = *in + if in.ClusterDNS != nil { + in, out := &in.ClusterDNS, &out.ClusterDNS + *out = new(string) + **out = **in + } + if in.ClusterDNSDomain != nil { + in, out := &in.ClusterDNSDomain, &out.ClusterDNSDomain + *out = new(string) + **out = **in + } + if in.ClusterDNSScope != nil { + in, out := &in.ClusterDNSScope, &out.ClusterDNSScope + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSConfigParameters. +func (in *DNSConfigParameters) DeepCopy() *DNSConfigParameters { + if in == nil { + return nil + } + out := new(DNSConfigParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DailyMaintenanceWindowObservation) DeepCopyInto(out *DailyMaintenanceWindowObservation) { *out = *in @@ -956,6 +1062,76 @@ func (in *DefaultSnatStatusParameters) DeepCopy() *DefaultSnatStatusParameters { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GCPFilestoreCsiDriverConfigObservation) DeepCopyInto(out *GCPFilestoreCsiDriverConfigObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPFilestoreCsiDriverConfigObservation. +func (in *GCPFilestoreCsiDriverConfigObservation) DeepCopy() *GCPFilestoreCsiDriverConfigObservation { + if in == nil { + return nil + } + out := new(GCPFilestoreCsiDriverConfigObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GCPFilestoreCsiDriverConfigParameters) DeepCopyInto(out *GCPFilestoreCsiDriverConfigParameters) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPFilestoreCsiDriverConfigParameters. +func (in *GCPFilestoreCsiDriverConfigParameters) DeepCopy() *GCPFilestoreCsiDriverConfigParameters { + if in == nil { + return nil + } + out := new(GCPFilestoreCsiDriverConfigParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GcfsConfigObservation) DeepCopyInto(out *GcfsConfigObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GcfsConfigObservation. +func (in *GcfsConfigObservation) DeepCopy() *GcfsConfigObservation { + if in == nil { + return nil + } + out := new(GcfsConfigObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GcfsConfigParameters) DeepCopyInto(out *GcfsConfigParameters) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GcfsConfigParameters. +func (in *GcfsConfigParameters) DeepCopy() *GcfsConfigParameters { + if in == nil { + return nil + } + out := new(GcfsConfigParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *GuestAcceleratorObservation) DeepCopyInto(out *GuestAcceleratorObservation) { *out = *in @@ -1001,6 +1177,41 @@ func (in *GuestAcceleratorParameters) DeepCopy() *GuestAcceleratorParameters { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GvnicObservation) DeepCopyInto(out *GvnicObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GvnicObservation. +func (in *GvnicObservation) DeepCopy() *GvnicObservation { + if in == nil { + return nil + } + out := new(GvnicObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GvnicParameters) DeepCopyInto(out *GvnicParameters) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GvnicParameters. +func (in *GvnicParameters) DeepCopy() *GvnicParameters { + if in == nil { + return nil + } + out := new(GvnicParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *HTTPLoadBalancingObservation) DeepCopyInto(out *HTTPLoadBalancingObservation) { *out = *in @@ -1533,6 +1744,41 @@ func (in *NetworkPolicyParameters) DeepCopy() *NetworkPolicyParameters { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeConfigGcfsConfigObservation) DeepCopyInto(out *NodeConfigGcfsConfigObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfigGcfsConfigObservation. +func (in *NodeConfigGcfsConfigObservation) DeepCopy() *NodeConfigGcfsConfigObservation { + if in == nil { + return nil + } + out := new(NodeConfigGcfsConfigObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeConfigGcfsConfigParameters) DeepCopyInto(out *NodeConfigGcfsConfigParameters) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfigGcfsConfigParameters. +func (in *NodeConfigGcfsConfigParameters) DeepCopy() *NodeConfigGcfsConfigParameters { + if in == nil { + return nil + } + out := new(NodeConfigGcfsConfigParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NodeConfigGuestAcceleratorObservation) DeepCopyInto(out *NodeConfigGuestAcceleratorObservation) { *out = *in @@ -1578,6 +1824,41 @@ func (in *NodeConfigGuestAcceleratorParameters) DeepCopy() *NodeConfigGuestAccel return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeConfigGvnicObservation) DeepCopyInto(out *NodeConfigGvnicObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfigGvnicObservation. +func (in *NodeConfigGvnicObservation) DeepCopy() *NodeConfigGvnicObservation { + if in == nil { + return nil + } + out := new(NodeConfigGvnicObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeConfigGvnicParameters) DeepCopyInto(out *NodeConfigGvnicParameters) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfigGvnicParameters. +func (in *NodeConfigGvnicParameters) DeepCopy() *NodeConfigGvnicParameters { + if in == nil { + return nil + } + out := new(NodeConfigGvnicParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NodeConfigObservation) DeepCopyInto(out *NodeConfigObservation) { *out = *in @@ -1596,6 +1877,11 @@ func (in *NodeConfigObservation) DeepCopy() *NodeConfigObservation { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NodeConfigParameters) DeepCopyInto(out *NodeConfigParameters) { *out = *in + if in.BootDiskKMSKey != nil { + in, out := &in.BootDiskKMSKey, &out.BootDiskKMSKey + *out = new(string) + **out = **in + } if in.DiskSizeGb != nil { in, out := &in.DiskSizeGb, &out.DiskSizeGb *out = new(float64) @@ -1606,6 +1892,13 @@ func (in *NodeConfigParameters) DeepCopyInto(out *NodeConfigParameters) { *out = new(string) **out = **in } + if in.GcfsConfig != nil { + in, out := &in.GcfsConfig, &out.GcfsConfig + *out = make([]GcfsConfigParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.GuestAccelerator != nil { in, out := &in.GuestAccelerator, &out.GuestAccelerator *out = make([]GuestAcceleratorParameters, len(*in)) @@ -1613,6 +1906,13 @@ func (in *NodeConfigParameters) DeepCopyInto(out *NodeConfigParameters) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.Gvnic != nil { + in, out := &in.Gvnic, &out.Gvnic + *out = make([]GvnicParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.ImageType != nil { in, out := &in.ImageType, &out.ImageType *out = new(string) @@ -1663,6 +1963,11 @@ func (in *NodeConfigParameters) DeepCopyInto(out *NodeConfigParameters) { *out = new(string) **out = **in } + if in.NodeGroup != nil { + in, out := &in.NodeGroup, &out.NodeGroup + *out = new(string) + **out = **in + } if in.OAuthScopes != nil { in, out := &in.OAuthScopes, &out.OAuthScopes *out = make([]*string, len(*in)) @@ -1987,6 +2292,41 @@ func (in *NodePoolManagementParameters) DeepCopy() *NodePoolManagementParameters return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodePoolNodeConfigGcfsConfigObservation) DeepCopyInto(out *NodePoolNodeConfigGcfsConfigObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodePoolNodeConfigGcfsConfigObservation. +func (in *NodePoolNodeConfigGcfsConfigObservation) DeepCopy() *NodePoolNodeConfigGcfsConfigObservation { + if in == nil { + return nil + } + out := new(NodePoolNodeConfigGcfsConfigObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodePoolNodeConfigGcfsConfigParameters) DeepCopyInto(out *NodePoolNodeConfigGcfsConfigParameters) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodePoolNodeConfigGcfsConfigParameters. +func (in *NodePoolNodeConfigGcfsConfigParameters) DeepCopy() *NodePoolNodeConfigGcfsConfigParameters { + if in == nil { + return nil + } + out := new(NodePoolNodeConfigGcfsConfigParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NodePoolNodeConfigGuestAcceleratorObservation) DeepCopyInto(out *NodePoolNodeConfigGuestAcceleratorObservation) { *out = *in @@ -2032,6 +2372,41 @@ func (in *NodePoolNodeConfigGuestAcceleratorParameters) DeepCopy() *NodePoolNode return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodePoolNodeConfigGvnicObservation) DeepCopyInto(out *NodePoolNodeConfigGvnicObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodePoolNodeConfigGvnicObservation. +func (in *NodePoolNodeConfigGvnicObservation) DeepCopy() *NodePoolNodeConfigGvnicObservation { + if in == nil { + return nil + } + out := new(NodePoolNodeConfigGvnicObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodePoolNodeConfigGvnicParameters) DeepCopyInto(out *NodePoolNodeConfigGvnicParameters) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodePoolNodeConfigGvnicParameters. +func (in *NodePoolNodeConfigGvnicParameters) DeepCopy() *NodePoolNodeConfigGvnicParameters { + if in == nil { + return nil + } + out := new(NodePoolNodeConfigGvnicParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NodePoolNodeConfigObservation) DeepCopyInto(out *NodePoolNodeConfigObservation) { *out = *in @@ -2065,6 +2440,11 @@ func (in *NodePoolNodeConfigObservation_2) DeepCopy() *NodePoolNodeConfigObserva // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NodePoolNodeConfigParameters) DeepCopyInto(out *NodePoolNodeConfigParameters) { *out = *in + if in.BootDiskKMSKey != nil { + in, out := &in.BootDiskKMSKey, &out.BootDiskKMSKey + *out = new(string) + **out = **in + } if in.DiskSizeGb != nil { in, out := &in.DiskSizeGb, &out.DiskSizeGb *out = new(float64) @@ -2075,6 +2455,13 @@ func (in *NodePoolNodeConfigParameters) DeepCopyInto(out *NodePoolNodeConfigPara *out = new(string) **out = **in } + if in.GcfsConfig != nil { + in, out := &in.GcfsConfig, &out.GcfsConfig + *out = make([]NodeConfigGcfsConfigParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.GuestAccelerator != nil { in, out := &in.GuestAccelerator, &out.GuestAccelerator *out = make([]NodeConfigGuestAcceleratorParameters, len(*in)) @@ -2082,6 +2469,13 @@ func (in *NodePoolNodeConfigParameters) DeepCopyInto(out *NodePoolNodeConfigPara (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.Gvnic != nil { + in, out := &in.Gvnic, &out.Gvnic + *out = make([]NodeConfigGvnicParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.ImageType != nil { in, out := &in.ImageType, &out.ImageType *out = new(string) @@ -2132,6 +2526,11 @@ func (in *NodePoolNodeConfigParameters) DeepCopyInto(out *NodePoolNodeConfigPara *out = new(string) **out = **in } + if in.NodeGroup != nil { + in, out := &in.NodeGroup, &out.NodeGroup + *out = new(string) + **out = **in + } if in.OAuthScopes != nil { in, out := &in.OAuthScopes, &out.OAuthScopes *out = make([]*string, len(*in)) @@ -2200,6 +2599,11 @@ func (in *NodePoolNodeConfigParameters) DeepCopy() *NodePoolNodeConfigParameters // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NodePoolNodeConfigParameters_2) DeepCopyInto(out *NodePoolNodeConfigParameters_2) { *out = *in + if in.BootDiskKMSKey != nil { + in, out := &in.BootDiskKMSKey, &out.BootDiskKMSKey + *out = new(string) + **out = **in + } if in.DiskSizeGb != nil { in, out := &in.DiskSizeGb, &out.DiskSizeGb *out = new(float64) @@ -2210,6 +2614,13 @@ func (in *NodePoolNodeConfigParameters_2) DeepCopyInto(out *NodePoolNodeConfigPa *out = new(string) **out = **in } + if in.GcfsConfig != nil { + in, out := &in.GcfsConfig, &out.GcfsConfig + *out = make([]NodePoolNodeConfigGcfsConfigParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.GuestAccelerator != nil { in, out := &in.GuestAccelerator, &out.GuestAccelerator *out = make([]NodePoolNodeConfigGuestAcceleratorParameters, len(*in)) @@ -2217,6 +2628,13 @@ func (in *NodePoolNodeConfigParameters_2) DeepCopyInto(out *NodePoolNodeConfigPa (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.Gvnic != nil { + in, out := &in.Gvnic, &out.Gvnic + *out = make([]NodePoolNodeConfigGvnicParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.ImageType != nil { in, out := &in.ImageType, &out.ImageType *out = new(string) @@ -2267,6 +2685,11 @@ func (in *NodePoolNodeConfigParameters_2) DeepCopyInto(out *NodePoolNodeConfigPa *out = new(string) **out = **in } + if in.NodeGroup != nil { + in, out := &in.NodeGroup, &out.NodeGroup + *out = new(string) + **out = **in + } if in.OAuthScopes != nil { in, out := &in.OAuthScopes, &out.OAuthScopes *out = make([]*string, len(*in)) diff --git a/apis/container/v1alpha2/zz_nodepool_types.go b/apis/container/v1alpha2/zz_nodepool_types.go index d1b01823..9d60ba63 100755 --- a/apis/container/v1alpha2/zz_nodepool_types.go +++ b/apis/container/v1alpha2/zz_nodepool_types.go @@ -53,6 +53,16 @@ type NodePoolManagementParameters struct { AutoUpgrade *bool `json:"autoUpgrade,omitempty" tf:"auto_upgrade,omitempty"` } +type NodePoolNodeConfigGcfsConfigObservation struct { +} + +type NodePoolNodeConfigGcfsConfigParameters struct { + + // Whether or not GCFS is enabled + // +kubebuilder:validation:Required + Enabled *bool `json:"enabled" tf:"enabled,omitempty"` +} + type NodePoolNodeConfigGuestAcceleratorObservation struct { } @@ -68,11 +78,25 @@ type NodePoolNodeConfigGuestAcceleratorParameters struct { Type *string `json:"type,omitempty" tf:"type"` } +type NodePoolNodeConfigGvnicObservation struct { +} + +type NodePoolNodeConfigGvnicParameters struct { + + // Whether or not gvnic is enabled + // +kubebuilder:validation:Required + Enabled *bool `json:"enabled" tf:"enabled,omitempty"` +} + type NodePoolNodeConfigObservation_2 struct { } type NodePoolNodeConfigParameters_2 struct { + // The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. + // +kubebuilder:validation:Optional + BootDiskKMSKey *string `json:"bootDiskKmsKey,omitempty" tf:"boot_disk_kms_key,omitempty"` + // Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. // +kubebuilder:validation:Optional DiskSizeGb *float64 `json:"diskSizeGb,omitempty" tf:"disk_size_gb,omitempty"` @@ -81,10 +105,18 @@ type NodePoolNodeConfigParameters_2 struct { // +kubebuilder:validation:Optional DiskType *string `json:"diskType,omitempty" tf:"disk_type,omitempty"` + // GCFS configuration for this node. + // +kubebuilder:validation:Optional + GcfsConfig []NodePoolNodeConfigGcfsConfigParameters `json:"gcfsConfig,omitempty" tf:"gcfs_config,omitempty"` + // List of the type and count of accelerator cards attached to the instance. // +kubebuilder:validation:Optional GuestAccelerator []NodePoolNodeConfigGuestAcceleratorParameters `json:"guestAccelerator,omitempty" tf:"guest_accelerator,omitempty"` + // Enable or disable gvnic in the node pool. + // +kubebuilder:validation:Optional + Gvnic []NodePoolNodeConfigGvnicParameters `json:"gvnic,omitempty" tf:"gvnic,omitempty"` + // The image type to use for this node. Note that for a given image type, the latest version of it will be used. // +kubebuilder:validation:Optional ImageType *string `json:"imageType,omitempty" tf:"image_type,omitempty"` @@ -109,6 +141,10 @@ type NodePoolNodeConfigParameters_2 struct { // +kubebuilder:validation:Optional MinCPUPlatform *string `json:"minCpuPlatform,omitempty" tf:"min_cpu_platform,omitempty"` + // Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on sole tenant nodes. + // +kubebuilder:validation:Optional + NodeGroup *string `json:"nodeGroup,omitempty" tf:"node_group,omitempty"` + // The set of Google API scopes to be made available on all of the node VMs. // +kubebuilder:validation:Optional OAuthScopes []*string `json:"oauthScopes,omitempty" tf:"oauth_scopes,omitempty"` diff --git a/apis/monitoring/v1alpha2/zz_alertpolicy_types.go b/apis/monitoring/v1alpha2/zz_alertpolicy_types.go index ab1515ab..e123a15b 100755 --- a/apis/monitoring/v1alpha2/zz_alertpolicy_types.go +++ b/apis/monitoring/v1alpha2/zz_alertpolicy_types.go @@ -126,6 +126,10 @@ type AlertPolicyObservation struct { type AlertPolicyParameters struct { + // Control over how this alert policy's notification channels are notified. + // +kubebuilder:validation:Optional + AlertStrategy []AlertStrategyParameters `json:"alertStrategy,omitempty" tf:"alert_strategy,omitempty"` + // How to combine the results of multiple conditions to // determine if an incident should be opened. Possible values: ["AND", "OR", "AND_WITH_MATCHING_RESOURCE"] // +kubebuilder:validation:Required @@ -179,6 +183,21 @@ type AlertPolicyParameters struct { UserLabels map[string]*string `json:"userLabels,omitempty" tf:"user_labels,omitempty"` } +type AlertStrategyObservation struct { +} + +type AlertStrategyParameters struct { + + // If an alert policy that was active has no data for this long, any open incidents will close. + // +kubebuilder:validation:Optional + AutoClose *string `json:"autoClose,omitempty" tf:"auto_close,omitempty"` + + // Required for alert policies with a LogMatch condition. + // This limit is not implemented for alert policies that are not log-based. + // +kubebuilder:validation:Optional + NotificationRateLimit []NotificationRateLimitParameters `json:"notificationRateLimit,omitempty" tf:"notification_rate_limit,omitempty"` +} + type ConditionAbsentObservation struct { } @@ -229,6 +248,26 @@ type ConditionAbsentParameters struct { Trigger []TriggerParameters `json:"trigger,omitempty" tf:"trigger,omitempty"` } +type ConditionMatchedLogObservation struct { +} + +type ConditionMatchedLogParameters struct { + + // A logs-based filter. + // +kubebuilder:validation:Required + Filter *string `json:"filter" tf:"filter,omitempty"` + + // A map from a label key to an extractor expression, which is used to + // extract the value for this label key. Each entry in this map is + // a specification for how data should be extracted from log entries that + // match filter. Each combination of extracted values is treated as + // a separate rule for the purposes of triggering notifications. + // Label keys and corresponding values can be used in notifications + // generated by this condition. + // +kubebuilder:validation:Optional + LabelExtractors map[string]*string `json:"labelExtractors,omitempty" tf:"label_extractors,omitempty"` +} + type ConditionMonitoringQueryLanguageObservation struct { } @@ -525,6 +564,11 @@ type ConditionsParameters struct { // +kubebuilder:validation:Optional ConditionAbsent []ConditionAbsentParameters `json:"conditionAbsent,omitempty" tf:"condition_absent,omitempty"` + // A condition that checks for log messages matching given constraints. + // If set, no other conditions can be present. + // +kubebuilder:validation:Optional + ConditionMatchedLog []ConditionMatchedLogParameters `json:"conditionMatchedLog,omitempty" tf:"condition_matched_log,omitempty"` + // A Monitoring Query Language query that outputs a boolean stream // +kubebuilder:validation:Optional ConditionMonitoringQueryLanguage []ConditionMonitoringQueryLanguageParameters `json:"conditionMonitoringQueryLanguage,omitempty" tf:"condition_monitoring_query_language,omitempty"` @@ -661,6 +705,16 @@ type DocumentationParameters struct { MimeType *string `json:"mimeType,omitempty" tf:"mime_type,omitempty"` } +type NotificationRateLimitObservation struct { +} + +type NotificationRateLimitParameters struct { + + // Not more than one notification per period. + // +kubebuilder:validation:Optional + Period *string `json:"period,omitempty" tf:"period,omitempty"` +} + type TriggerObservation struct { } diff --git a/apis/monitoring/v1alpha2/zz_generated.deepcopy.go b/apis/monitoring/v1alpha2/zz_generated.deepcopy.go index 7813a71b..41b81daa 100644 --- a/apis/monitoring/v1alpha2/zz_generated.deepcopy.go +++ b/apis/monitoring/v1alpha2/zz_generated.deepcopy.go @@ -176,6 +176,13 @@ func (in *AlertPolicyObservation) DeepCopy() *AlertPolicyObservation { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AlertPolicyParameters) DeepCopyInto(out *AlertPolicyParameters) { *out = *in + if in.AlertStrategy != nil { + in, out := &in.AlertStrategy, &out.AlertStrategy + *out = make([]AlertStrategyParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.Combiner != nil { in, out := &in.Combiner, &out.Combiner *out = new(string) @@ -282,6 +289,48 @@ func (in *AlertPolicyStatus) DeepCopy() *AlertPolicyStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AlertStrategyObservation) DeepCopyInto(out *AlertStrategyObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlertStrategyObservation. +func (in *AlertStrategyObservation) DeepCopy() *AlertStrategyObservation { + if in == nil { + return nil + } + out := new(AlertStrategyObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AlertStrategyParameters) DeepCopyInto(out *AlertStrategyParameters) { + *out = *in + if in.AutoClose != nil { + in, out := &in.AutoClose, &out.AutoClose + *out = new(string) + **out = **in + } + if in.NotificationRateLimit != nil { + in, out := &in.NotificationRateLimit, &out.NotificationRateLimit + *out = make([]NotificationRateLimitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlertStrategyParameters. +func (in *AlertStrategyParameters) DeepCopy() *AlertStrategyParameters { + if in == nil { + return nil + } + out := new(AlertStrategyParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AuthInfoObservation) DeepCopyInto(out *AuthInfoObservation) { *out = *in @@ -372,6 +421,56 @@ func (in *ConditionAbsentParameters) DeepCopy() *ConditionAbsentParameters { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConditionMatchedLogObservation) DeepCopyInto(out *ConditionMatchedLogObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConditionMatchedLogObservation. +func (in *ConditionMatchedLogObservation) DeepCopy() *ConditionMatchedLogObservation { + if in == nil { + return nil + } + out := new(ConditionMatchedLogObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConditionMatchedLogParameters) DeepCopyInto(out *ConditionMatchedLogParameters) { + *out = *in + if in.Filter != nil { + in, out := &in.Filter, &out.Filter + *out = new(string) + **out = **in + } + if in.LabelExtractors != nil { + in, out := &in.LabelExtractors, &out.LabelExtractors + *out = make(map[string]*string, len(*in)) + for key, val := range *in { + var outVal *string + if val == nil { + (*out)[key] = nil + } else { + in, out := &val, &outVal + *out = new(string) + **out = **in + } + (*out)[key] = outVal + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConditionMatchedLogParameters. +func (in *ConditionMatchedLogParameters) DeepCopy() *ConditionMatchedLogParameters { + if in == nil { + return nil + } + out := new(ConditionMatchedLogParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ConditionMonitoringQueryLanguageObservation) DeepCopyInto(out *ConditionMonitoringQueryLanguageObservation) { *out = *in @@ -661,6 +760,13 @@ func (in *ConditionsParameters) DeepCopyInto(out *ConditionsParameters) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.ConditionMatchedLog != nil { + in, out := &in.ConditionMatchedLog, &out.ConditionMatchedLog + *out = make([]ConditionMatchedLogParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.ConditionMonitoringQueryLanguage != nil { in, out := &in.ConditionMonitoringQueryLanguage, &out.ConditionMonitoringQueryLanguage *out = make([]ConditionMonitoringQueryLanguageParameters, len(*in)) @@ -1210,6 +1316,41 @@ func (in *NotificationChannelStatus) DeepCopy() *NotificationChannelStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NotificationRateLimitObservation) DeepCopyInto(out *NotificationRateLimitObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NotificationRateLimitObservation. +func (in *NotificationRateLimitObservation) DeepCopy() *NotificationRateLimitObservation { + if in == nil { + return nil + } + out := new(NotificationRateLimitObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NotificationRateLimitParameters) DeepCopyInto(out *NotificationRateLimitParameters) { + *out = *in + if in.Period != nil { + in, out := &in.Period, &out.Period + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NotificationRateLimitParameters. +func (in *NotificationRateLimitParameters) DeepCopy() *NotificationRateLimitParameters { + if in == nil { + return nil + } + out := new(NotificationRateLimitParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ResourceGroupObservation) DeepCopyInto(out *ResourceGroupObservation) { *out = *in diff --git a/apis/monitoring/v1alpha2/zz_uptimecheckconfig_types.go b/apis/monitoring/v1alpha2/zz_uptimecheckconfig_types.go index e8bc4d6f..9081dce9 100755 --- a/apis/monitoring/v1alpha2/zz_uptimecheckconfig_types.go +++ b/apis/monitoring/v1alpha2/zz_uptimecheckconfig_types.go @@ -78,7 +78,7 @@ type HTTPCheckParameters struct { // +kubebuilder:validation:Optional MaskHeaders *bool `json:"maskHeaders,omitempty" tf:"mask_headers,omitempty"` - // The path to the page to run the check against. Will be combined with the host (specified within the MonitoredResource) and port to construct the full URL. Optional (defaults to "/"). + // The path to the page to run the check against. Will be combined with the host (specified within the MonitoredResource) and port to construct the full URL. If the provided path does not begin with "/", a "/" will be prepended automatically. Optional (defaults to "/"). // +kubebuilder:validation:Optional Path *string `json:"path,omitempty" tf:"path,omitempty"` diff --git a/apis/redis/v1alpha2/zz_generated.deepcopy.go b/apis/redis/v1alpha2/zz_generated.deepcopy.go index 2f259052..83215677 100644 --- a/apis/redis/v1alpha2/zz_generated.deepcopy.go +++ b/apis/redis/v1alpha2/zz_generated.deepcopy.go @@ -107,6 +107,13 @@ func (in *InstanceObservation) DeepCopyInto(out *InstanceObservation) { *out = new(string) **out = **in } + if in.Nodes != nil { + in, out := &in.Nodes, &out.Nodes + *out = make([]NodesObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.PersistenceIAMIdentity != nil { in, out := &in.PersistenceIAMIdentity, &out.PersistenceIAMIdentity *out = new(string) @@ -117,6 +124,16 @@ func (in *InstanceObservation) DeepCopyInto(out *InstanceObservation) { *out = new(float64) **out = **in } + if in.ReadEndpoint != nil { + in, out := &in.ReadEndpoint, &out.ReadEndpoint + *out = new(string) + **out = **in + } + if in.ReadEndpointPort != nil { + in, out := &in.ReadEndpointPort, &out.ReadEndpointPort + *out = new(float64) + **out = **in + } if in.ServerCACerts != nil { in, out := &in.ServerCACerts, &out.ServerCACerts *out = make([]ServerCACertsObservation, len(*in)) @@ -184,6 +201,18 @@ func (in *InstanceParameters) DeepCopyInto(out *InstanceParameters) { *out = new(string) **out = **in } + if in.MaintenancePolicy != nil { + in, out := &in.MaintenancePolicy, &out.MaintenancePolicy + *out = make([]MaintenancePolicyParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.MaintenanceSchedule != nil { + in, out := &in.MaintenanceSchedule, &out.MaintenanceSchedule + *out = make([]MaintenanceScheduleParameters, len(*in)) + copy(*out, *in) + } if in.MemorySizeGb != nil { in, out := &in.MemorySizeGb, &out.MemorySizeGb *out = new(float64) @@ -194,6 +223,11 @@ func (in *InstanceParameters) DeepCopyInto(out *InstanceParameters) { *out = new(string) **out = **in } + if in.ReadReplicasMode != nil { + in, out := &in.ReadReplicasMode, &out.ReadReplicasMode + *out = new(string) + **out = **in + } if in.RedisConfigs != nil { in, out := &in.RedisConfigs, &out.RedisConfigs *out = make(map[string]*string, len(*in)) @@ -219,6 +253,11 @@ func (in *InstanceParameters) DeepCopyInto(out *InstanceParameters) { *out = new(string) **out = **in } + if in.ReplicaCount != nil { + in, out := &in.ReplicaCount, &out.ReplicaCount + *out = new(float64) + **out = **in + } if in.ReservedIPRange != nil { in, out := &in.ReservedIPRange, &out.ReservedIPRange *out = new(string) @@ -280,6 +319,143 @@ func (in *InstanceStatus) DeepCopy() *InstanceStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MaintenancePolicyObservation) DeepCopyInto(out *MaintenancePolicyObservation) { + *out = *in + if in.CreateTime != nil { + in, out := &in.CreateTime, &out.CreateTime + *out = new(string) + **out = **in + } + if in.UpdateTime != nil { + in, out := &in.UpdateTime, &out.UpdateTime + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaintenancePolicyObservation. +func (in *MaintenancePolicyObservation) DeepCopy() *MaintenancePolicyObservation { + if in == nil { + return nil + } + out := new(MaintenancePolicyObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MaintenancePolicyParameters) DeepCopyInto(out *MaintenancePolicyParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.WeeklyMaintenanceWindow != nil { + in, out := &in.WeeklyMaintenanceWindow, &out.WeeklyMaintenanceWindow + *out = make([]WeeklyMaintenanceWindowParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaintenancePolicyParameters. +func (in *MaintenancePolicyParameters) DeepCopy() *MaintenancePolicyParameters { + if in == nil { + return nil + } + out := new(MaintenancePolicyParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MaintenanceScheduleObservation) DeepCopyInto(out *MaintenanceScheduleObservation) { + *out = *in + if in.EndTime != nil { + in, out := &in.EndTime, &out.EndTime + *out = new(string) + **out = **in + } + if in.ScheduleDeadlineTime != nil { + in, out := &in.ScheduleDeadlineTime, &out.ScheduleDeadlineTime + *out = new(string) + **out = **in + } + if in.StartTime != nil { + in, out := &in.StartTime, &out.StartTime + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaintenanceScheduleObservation. +func (in *MaintenanceScheduleObservation) DeepCopy() *MaintenanceScheduleObservation { + if in == nil { + return nil + } + out := new(MaintenanceScheduleObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MaintenanceScheduleParameters) DeepCopyInto(out *MaintenanceScheduleParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaintenanceScheduleParameters. +func (in *MaintenanceScheduleParameters) DeepCopy() *MaintenanceScheduleParameters { + if in == nil { + return nil + } + out := new(MaintenanceScheduleParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodesObservation) DeepCopyInto(out *NodesObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Zone != nil { + in, out := &in.Zone, &out.Zone + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodesObservation. +func (in *NodesObservation) DeepCopy() *NodesObservation { + if in == nil { + return nil + } + out := new(NodesObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodesParameters) DeepCopyInto(out *NodesParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodesParameters. +func (in *NodesParameters) DeepCopy() *NodesParameters { + if in == nil { + return nil + } + out := new(NodesParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ServerCACertsObservation) DeepCopyInto(out *ServerCACertsObservation) { *out = *in @@ -334,3 +510,100 @@ func (in *ServerCACertsParameters) DeepCopy() *ServerCACertsParameters { in.DeepCopyInto(out) return out } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StartTimeObservation) DeepCopyInto(out *StartTimeObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StartTimeObservation. +func (in *StartTimeObservation) DeepCopy() *StartTimeObservation { + if in == nil { + return nil + } + out := new(StartTimeObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StartTimeParameters) DeepCopyInto(out *StartTimeParameters) { + *out = *in + if in.Hours != nil { + in, out := &in.Hours, &out.Hours + *out = new(float64) + **out = **in + } + if in.Minutes != nil { + in, out := &in.Minutes, &out.Minutes + *out = new(float64) + **out = **in + } + if in.Nanos != nil { + in, out := &in.Nanos, &out.Nanos + *out = new(float64) + **out = **in + } + if in.Seconds != nil { + in, out := &in.Seconds, &out.Seconds + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StartTimeParameters. +func (in *StartTimeParameters) DeepCopy() *StartTimeParameters { + if in == nil { + return nil + } + out := new(StartTimeParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WeeklyMaintenanceWindowObservation) DeepCopyInto(out *WeeklyMaintenanceWindowObservation) { + *out = *in + if in.Duration != nil { + in, out := &in.Duration, &out.Duration + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WeeklyMaintenanceWindowObservation. +func (in *WeeklyMaintenanceWindowObservation) DeepCopy() *WeeklyMaintenanceWindowObservation { + if in == nil { + return nil + } + out := new(WeeklyMaintenanceWindowObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WeeklyMaintenanceWindowParameters) DeepCopyInto(out *WeeklyMaintenanceWindowParameters) { + *out = *in + if in.Day != nil { + in, out := &in.Day, &out.Day + *out = new(string) + **out = **in + } + if in.StartTime != nil { + in, out := &in.StartTime, &out.StartTime + *out = make([]StartTimeParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WeeklyMaintenanceWindowParameters. +func (in *WeeklyMaintenanceWindowParameters) DeepCopy() *WeeklyMaintenanceWindowParameters { + if in == nil { + return nil + } + out := new(WeeklyMaintenanceWindowParameters) + in.DeepCopyInto(out) + return out +} diff --git a/apis/redis/v1alpha2/zz_instance_types.go b/apis/redis/v1alpha2/zz_instance_types.go index ac23e153..3b09fbbc 100755 --- a/apis/redis/v1alpha2/zz_instance_types.go +++ b/apis/redis/v1alpha2/zz_instance_types.go @@ -34,10 +34,16 @@ type InstanceObservation struct { ID *string `json:"id,omitempty" tf:"id,omitempty"` + Nodes []NodesObservation `json:"nodes,omitempty" tf:"nodes,omitempty"` + PersistenceIAMIdentity *string `json:"persistenceIamIdentity,omitempty" tf:"persistence_iam_identity,omitempty"` Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + ReadEndpoint *string `json:"readEndpoint,omitempty" tf:"read_endpoint,omitempty"` + + ReadEndpointPort *float64 `json:"readEndpointPort,omitempty" tf:"read_endpoint_port,omitempty"` + ServerCACerts []ServerCACertsObservation `json:"serverCaCerts,omitempty" tf:"server_ca_certs,omitempty"` } @@ -82,6 +88,14 @@ type InstanceParameters struct { // +kubebuilder:validation:Optional LocationID *string `json:"locationId,omitempty" tf:"location_id,omitempty"` + // Maintenance policy for an instance. + // +kubebuilder:validation:Optional + MaintenancePolicy []MaintenancePolicyParameters `json:"maintenancePolicy,omitempty" tf:"maintenance_policy,omitempty"` + + // Upcoming maintenance schedule. + // +kubebuilder:validation:Optional + MaintenanceSchedule []MaintenanceScheduleParameters `json:"maintenanceSchedule,omitempty" tf:"maintenance_schedule,omitempty"` + // Redis memory size in GiB. // +kubebuilder:validation:Required MemorySizeGb *float64 `json:"memorySizeGb" tf:"memory_size_gb,omitempty"` @@ -89,6 +103,15 @@ type InstanceParameters struct { // +kubebuilder:validation:Optional Project *string `json:"project,omitempty" tf:"project,omitempty"` + // Optional. Read replica mode. Can only be specified when trying to create the instance. + // If not set, Memorystore Redis backend will default to READ_REPLICAS_DISABLED. + // - READ_REPLICAS_DISABLED: If disabled, read endpoint will not be provided and the + // instance cannot scale up or down the number of replicas. + // - READ_REPLICAS_ENABLED: If enabled, read endpoint will be provided and the instance + // can scale up and down the number of replicas. Possible values: ["READ_REPLICAS_DISABLED", "READ_REPLICAS_ENABLED"] + // +kubebuilder:validation:Optional + ReadReplicasMode *string `json:"readReplicasMode,omitempty" tf:"read_replicas_mode,omitempty"` + // Redis configuration parameters, according to http://redis.io/topics/config. // Please check Memorystore documentation for the list of supported parameters: // https://cloud.google.com/memorystore/docs/redis/reference/rest/v1/projects.locations.instances#Instance.FIELDS.redis_configs @@ -105,6 +128,13 @@ type InstanceParameters struct { // +kubebuilder:validation:Optional Region *string `json:"region,omitempty" tf:"region,omitempty"` + // Optional. The number of replica nodes. The valid range for the Standard Tier with + // read replicas enabled is [1-5] and defaults to 2. If read replicas are not enabled + // for a Standard Tier instance, the only valid value is 1 and the default is 1. + // The valid value for basic tier is 0 and the default is also 0. + // +kubebuilder:validation:Optional + ReplicaCount *float64 `json:"replicaCount,omitempty" tf:"replica_count,omitempty"` + // The CIDR range of internal addresses that are reserved for this // instance. If not provided, the service will choose an unused /29 // block, for example, 10.0.0.0/29 or 192.168.0.0/29. Ranges must be @@ -122,11 +152,52 @@ type InstanceParameters struct { // The TLS mode of the Redis instance, If not provided, TLS is disabled for the instance. // - // - SERVER_AUTHENTICATION: Client to Server traffic encryption enabled with server authentcation Default value: "DISABLED" Possible values: ["SERVER_AUTHENTICATION", "DISABLED"] + // - SERVER_AUTHENTICATION: Client to Server traffic encryption enabled with server authentication Default value: "DISABLED" Possible values: ["SERVER_AUTHENTICATION", "DISABLED"] // +kubebuilder:validation:Optional TransitEncryptionMode *string `json:"transitEncryptionMode,omitempty" tf:"transit_encryption_mode,omitempty"` } +type MaintenancePolicyObservation struct { + CreateTime *string `json:"createTime,omitempty" tf:"create_time,omitempty"` + + UpdateTime *string `json:"updateTime,omitempty" tf:"update_time,omitempty"` +} + +type MaintenancePolicyParameters struct { + + // Optional. Description of what this policy is for. + // Create/Update methods return INVALID_ARGUMENT if the + // length is greater than 512. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Optional. Maintenance window that is applied to resources covered by this policy. + // Minimum 1. For the current version, the maximum number + // of weekly_window is expected to be one. + // +kubebuilder:validation:Optional + WeeklyMaintenanceWindow []WeeklyMaintenanceWindowParameters `json:"weeklyMaintenanceWindow,omitempty" tf:"weekly_maintenance_window,omitempty"` +} + +type MaintenanceScheduleObservation struct { + EndTime *string `json:"endTime,omitempty" tf:"end_time,omitempty"` + + ScheduleDeadlineTime *string `json:"scheduleDeadlineTime,omitempty" tf:"schedule_deadline_time,omitempty"` + + StartTime *string `json:"startTime,omitempty" tf:"start_time,omitempty"` +} + +type MaintenanceScheduleParameters struct { +} + +type NodesObservation struct { + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + Zone *string `json:"zone,omitempty" tf:"zone,omitempty"` +} + +type NodesParameters struct { +} + type ServerCACertsObservation struct { Cert *string `json:"cert,omitempty" tf:"cert,omitempty"` @@ -142,6 +213,54 @@ type ServerCACertsObservation struct { type ServerCACertsParameters struct { } +type StartTimeObservation struct { +} + +type StartTimeParameters struct { + + // Hours of day in 24 hour format. Should be from 0 to 23. + // An API may choose to allow the value "24:00:00" for scenarios like business closing time. + // +kubebuilder:validation:Optional + Hours *float64 `json:"hours,omitempty" tf:"hours,omitempty"` + + // Minutes of hour of day. Must be from 0 to 59. + // +kubebuilder:validation:Optional + Minutes *float64 `json:"minutes,omitempty" tf:"minutes,omitempty"` + + // Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. + // +kubebuilder:validation:Optional + Nanos *float64 `json:"nanos,omitempty" tf:"nanos,omitempty"` + + // Seconds of minutes of the time. Must normally be from 0 to 59. + // An API may allow the value 60 if it allows leap-seconds. + // +kubebuilder:validation:Optional + Seconds *float64 `json:"seconds,omitempty" tf:"seconds,omitempty"` +} + +type WeeklyMaintenanceWindowObservation struct { + Duration *string `json:"duration,omitempty" tf:"duration,omitempty"` +} + +type WeeklyMaintenanceWindowParameters struct { + + // Required. The day of week that maintenance updates occur. + // + // - DAY_OF_WEEK_UNSPECIFIED: The day of the week is unspecified. + // - MONDAY: Monday + // - TUESDAY: Tuesday + // - WEDNESDAY: Wednesday + // - THURSDAY: Thursday + // - FRIDAY: Friday + // - SATURDAY: Saturday + // - SUNDAY: Sunday Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"] + // +kubebuilder:validation:Required + Day *string `json:"day" tf:"day,omitempty"` + + // Required. Start time of the window in UTC time. + // +kubebuilder:validation:Required + StartTime []StartTimeParameters `json:"startTime" tf:"start_time,omitempty"` +} + // InstanceSpec defines the desired state of Instance type InstanceSpec struct { v1.ResourceSpec `json:",inline"` diff --git a/apis/sql/v1alpha2/zz_databaseinstance_types.go b/apis/sql/v1alpha2/zz_databaseinstance_types.go index ff17dc88..56601286 100755 --- a/apis/sql/v1alpha2/zz_databaseinstance_types.go +++ b/apis/sql/v1alpha2/zz_databaseinstance_types.go @@ -92,6 +92,10 @@ type CloneObservation struct { type CloneParameters struct { + // The name of the allocated ip range for the private ip CloudSQL instance. For example: "google-managed-services-default". If set, the cloned instance ip will be created in the allocated range. The range name must comply with [RFC 1035](https://tools.ietf.org/html/rfc1035). Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. + // +kubebuilder:validation:Optional + AllocatedIPRange *string `json:"allocatedIpRange,omitempty" tf:"allocated_ip_range,omitempty"` + // The timestamp of the point in time that should be restored. // +kubebuilder:validation:Optional PointInTime *string `json:"pointInTime,omitempty" tf:"point_in_time,omitempty"` @@ -193,6 +197,10 @@ type IPConfigurationObservation struct { type IPConfigurationParameters struct { + // The name of the allocated ip range for the private ip CloudSQL instance. For example: "google-managed-services-default". If set, the instance ip will be created in the allocated range. The range name must comply with RFC 1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. + // +kubebuilder:validation:Optional + AllocatedIPRange *string `json:"allocatedIpRange,omitempty" tf:"allocated_ip_range,omitempty"` + // +kubebuilder:validation:Optional AuthorizedNetworks []AuthorizedNetworksParameters `json:"authorizedNetworks,omitempty" tf:"authorized_networks,omitempty"` diff --git a/apis/sql/v1alpha2/zz_generated.deepcopy.go b/apis/sql/v1alpha2/zz_generated.deepcopy.go index 2df156d8..af2da72a 100644 --- a/apis/sql/v1alpha2/zz_generated.deepcopy.go +++ b/apis/sql/v1alpha2/zz_generated.deepcopy.go @@ -196,6 +196,11 @@ func (in *CloneObservation) DeepCopy() *CloneObservation { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CloneParameters) DeepCopyInto(out *CloneParameters) { *out = *in + if in.AllocatedIPRange != nil { + in, out := &in.AllocatedIPRange, &out.AllocatedIPRange + *out = new(string) + **out = **in + } if in.PointInTime != nil { in, out := &in.PointInTime, &out.PointInTime *out = new(string) @@ -714,6 +719,11 @@ func (in *IPConfigurationObservation) DeepCopy() *IPConfigurationObservation { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *IPConfigurationParameters) DeepCopyInto(out *IPConfigurationParameters) { *out = *in + if in.AllocatedIPRange != nil { + in, out := &in.AllocatedIPRange, &out.AllocatedIPRange + *out = new(string) + **out = **in + } if in.AuthorizedNetworks != nil { in, out := &in.AuthorizedNetworks, &out.AuthorizedNetworks *out = make([]AuthorizedNetworksParameters, len(*in)) diff --git a/apis/storage/v1alpha2/zz_bucket_types.go b/apis/storage/v1alpha2/zz_bucket_types.go index 7b4984ea..2d137540 100755 --- a/apis/storage/v1alpha2/zz_bucket_types.go +++ b/apis/storage/v1alpha2/zz_bucket_types.go @@ -53,6 +53,7 @@ type BucketParameters struct { // +kubebuilder:validation:Optional Cors []CorsParameters `json:"cors,omitempty" tf:"cors,omitempty"` + // Whether or not to automatically apply an eventBasedHold to new objects added to the bucket. // +kubebuilder:validation:Optional DefaultEventBasedHold *bool `json:"defaultEventBasedHold,omitempty" tf:"default_event_based_hold,omitempty"` diff --git a/config/schema.json b/config/schema.json index 778f0761..e9d62fcf 100644 --- a/config/schema.json +++ b/config/schema.json @@ -1 +1 @@ -{"format_version":"0.2","provider_schemas":{"registry.terraform.io/hashicorp/google":{"provider":{"version":0,"block":{"attributes":{"access_approval_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"access_context_manager_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"access_token":{"type":"string","description_kind":"plain","optional":true},"active_directory_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"apigee_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"app_engine_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"assured_workloads_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"big_query_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"bigquery_data_transfer_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"bigquery_reservation_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"bigtable_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"billing_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"billing_project":{"type":"string","description_kind":"plain","optional":true},"binary_authorization_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"cloud_asset_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"cloud_billing_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"cloud_build_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"cloud_functions_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"cloud_identity_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"cloud_iot_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"cloud_resource_manager_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"cloud_run_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"cloud_scheduler_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"cloud_tasks_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"composer_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"compute_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"container_analysis_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"container_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"credentials":{"type":"string","description_kind":"plain","optional":true},"data_catalog_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"data_loss_prevention_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"dataflow_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"dataproc_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"datastore_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"deployment_manager_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"dialogflow_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"dialogflow_cx_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"dns_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"essential_contacts_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"eventarc_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"filestore_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"firestore_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"game_services_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"gke_hub_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"gkehub_feature_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"healthcare_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"iam_credentials_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"iam_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"iap_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"identity_platform_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"impersonate_service_account":{"type":"string","description_kind":"plain","optional":true},"impersonate_service_account_delegates":{"type":["list","string"],"description_kind":"plain","optional":true},"kms_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"logging_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"memcache_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"ml_engine_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"monitoring_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"network_management_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"network_services_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"notebooks_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"org_policy_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"os_config_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"os_login_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"privateca_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true},"pubsub_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"pubsub_lite_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"redis_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true},"request_reason":{"type":"string","description_kind":"plain","optional":true},"request_timeout":{"type":"string","description_kind":"plain","optional":true},"resource_manager_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"resource_manager_v2_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"scopes":{"type":["list","string"],"description_kind":"plain","optional":true},"secret_manager_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"security_center_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"service_management_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"service_networking_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"service_usage_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"source_repo_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"spanner_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"sql_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"storage_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"storage_transfer_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"tags_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"tpu_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"user_project_override":{"type":"bool","description_kind":"plain","optional":true},"vertex_ai_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"vpc_access_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"workflows_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"zone":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"batching":{"nesting_mode":"list","block":{"attributes":{"enable_batching":{"type":"bool","description_kind":"plain","optional":true},"send_after":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"resource_schemas":{"google_access_context_manager_access_level":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Description of the AccessLevel and its use. Does not affect behavior.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Resource name for the Access Level. The short_name component must begin\nwith a letter and only include alphanumeric and '_'.\nFormat: accessPolicies/{policy_id}/accessLevels/{short_name}","description_kind":"plain","required":true},"parent":{"type":"string","description":"The AccessPolicy this AccessLevel lives in.\nFormat: accessPolicies/{policy_id}","description_kind":"plain","required":true},"title":{"type":"string","description":"Human readable title. Must be unique within the Policy.","description_kind":"plain","required":true}},"block_types":{"basic":{"nesting_mode":"list","block":{"attributes":{"combining_function":{"type":"string","description":"How the conditions list should be combined to determine if a request\nis granted this AccessLevel. If AND is used, each Condition in\nconditions must be satisfied for the AccessLevel to be applied. If\nOR is used, at least one Condition in conditions must be satisfied\nfor the AccessLevel to be applied. Default value: \"AND\" Possible values: [\"AND\", \"OR\"]","description_kind":"plain","optional":true}},"block_types":{"conditions":{"nesting_mode":"list","block":{"attributes":{"ip_subnetworks":{"type":["list","string"],"description":"A list of CIDR block IP subnetwork specification. May be IPv4\nor IPv6.\nNote that for a CIDR IP address block, the specified IP address\nportion must be properly truncated (i.e. all the host bits must\nbe zero) or the input is considered malformed. For example,\n\"192.0.2.0/24\" is accepted but \"192.0.2.1/24\" is not. Similarly,\nfor IPv6, \"2001:db8::/32\" is accepted whereas \"2001:db8::1/32\"\nis not. The originating IP of a request must be in one of the\nlisted subnets in order for this Condition to be true.\nIf empty, all IP addresses are allowed.","description_kind":"plain","optional":true},"members":{"type":["list","string"],"description":"An allowed list of members (users, service accounts).\nUsing groups is not supported yet.\n\nThe signed-in user originating the request must be a part of one\nof the provided members. If not specified, a request may come\nfrom any user (logged in/not logged in, not present in any\ngroups, etc.).\nFormats: 'user:{emailid}', 'serviceAccount:{emailid}'","description_kind":"plain","optional":true},"negate":{"type":"bool","description":"Whether to negate the Condition. If true, the Condition becomes\na NAND over its non-empty fields, each field must be false for\nthe Condition overall to be satisfied. Defaults to false.","description_kind":"plain","optional":true},"regions":{"type":["list","string"],"description":"The request must originate from one of the provided\ncountries/regions.\nFormat: A valid ISO 3166-1 alpha-2 code.","description_kind":"plain","optional":true},"required_access_levels":{"type":["list","string"],"description":"A list of other access levels defined in the same Policy,\nreferenced by resource name. Referencing an AccessLevel which\ndoes not exist is an error. All access levels listed must be\ngranted for the Condition to be true.\nFormat: accessPolicies/{policy_id}/accessLevels/{short_name}","description_kind":"plain","optional":true}},"block_types":{"device_policy":{"nesting_mode":"list","block":{"attributes":{"allowed_device_management_levels":{"type":["list","string"],"description":"A list of allowed device management levels.\nAn empty list allows all management levels. Possible values: [\"MANAGEMENT_UNSPECIFIED\", \"NONE\", \"BASIC\", \"COMPLETE\"]","description_kind":"plain","optional":true},"allowed_encryption_statuses":{"type":["list","string"],"description":"A list of allowed encryptions statuses.\nAn empty list allows all statuses. Possible values: [\"ENCRYPTION_UNSPECIFIED\", \"ENCRYPTION_UNSUPPORTED\", \"UNENCRYPTED\", \"ENCRYPTED\"]","description_kind":"plain","optional":true},"require_admin_approval":{"type":"bool","description":"Whether the device needs to be approved by the customer admin.","description_kind":"plain","optional":true},"require_corp_owned":{"type":"bool","description":"Whether the device needs to be corp owned.","description_kind":"plain","optional":true},"require_screen_lock":{"type":"bool","description":"Whether or not screenlock is required for the DevicePolicy\nto be true. Defaults to false.","description_kind":"plain","optional":true}},"block_types":{"os_constraints":{"nesting_mode":"list","block":{"attributes":{"minimum_version":{"type":"string","description":"The minimum allowed OS version. If not set, any version\nof this OS satisfies the constraint.\nFormat: \"major.minor.patch\" such as \"10.5.301\", \"9.2.1\".","description_kind":"plain","optional":true},"os_type":{"type":"string","description":"The operating system type of the device. Possible values: [\"OS_UNSPECIFIED\", \"DESKTOP_MAC\", \"DESKTOP_WINDOWS\", \"DESKTOP_LINUX\", \"DESKTOP_CHROME_OS\", \"ANDROID\", \"IOS\"]","description_kind":"plain","required":true},"require_verified_chrome_os":{"type":"bool","description":"If you specify DESKTOP_CHROME_OS for osType, you can optionally include requireVerifiedChromeOs to require Chrome Verified Access.","description_kind":"plain","optional":true}},"description":"A list of allowed OS versions.\nAn empty list allows all types and all versions.","description_kind":"plain"}}},"description":"Device specific restrictions, all restrictions must hold for\nthe Condition to be true. If not specified, all devices are\nallowed.","description_kind":"plain"},"max_items":1}},"description":"A set of requirements for the AccessLevel to be granted.","description_kind":"plain"},"min_items":1}},"description":"A set of predefined conditions for the access level and a combining function.","description_kind":"plain"},"max_items":1},"custom":{"nesting_mode":"list","block":{"block_types":{"expr":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Description of the expression","description_kind":"plain","optional":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.","description_kind":"plain","required":true},"location":{"type":"string","description":"String indicating the location of the expression for error reporting, e.g. a file name and a position in the file","description_kind":"plain","optional":true},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its purpose.","description_kind":"plain","optional":true}},"description":"Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language.\nThis page details the objects and attributes that are used to the build the CEL expressions for \ncustom access levels - https://cloud.google.com/access-context-manager/docs/custom-access-level-spec.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Custom access level conditions are set using the Cloud Common Expression Language to represent the necessary conditions for the level to apply to a request. \nSee CEL spec at: https://github.com/google/cel-spec.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_access_context_manager_access_level_condition":{"version":0,"block":{"attributes":{"access_level":{"type":"string","description":"The name of the Access Level to add this condition to.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_subnetworks":{"type":["list","string"],"description":"A list of CIDR block IP subnetwork specification. May be IPv4\nor IPv6.\nNote that for a CIDR IP address block, the specified IP address\nportion must be properly truncated (i.e. all the host bits must\nbe zero) or the input is considered malformed. For example,\n\"192.0.2.0/24\" is accepted but \"192.0.2.1/24\" is not. Similarly,\nfor IPv6, \"2001:db8::/32\" is accepted whereas \"2001:db8::1/32\"\nis not. The originating IP of a request must be in one of the\nlisted subnets in order for this Condition to be true.\nIf empty, all IP addresses are allowed.","description_kind":"plain","optional":true},"members":{"type":["list","string"],"description":"An allowed list of members (users, service accounts).\nUsing groups is not supported yet.\n\nThe signed-in user originating the request must be a part of one\nof the provided members. If not specified, a request may come\nfrom any user (logged in/not logged in, not present in any\ngroups, etc.).\nFormats: 'user:{emailid}', 'serviceAccount:{emailid}'","description_kind":"plain","optional":true},"negate":{"type":"bool","description":"Whether to negate the Condition. If true, the Condition becomes\na NAND over its non-empty fields, each field must be false for\nthe Condition overall to be satisfied. Defaults to false.","description_kind":"plain","optional":true},"regions":{"type":["list","string"],"description":"The request must originate from one of the provided\ncountries/regions.\nFormat: A valid ISO 3166-1 alpha-2 code.","description_kind":"plain","optional":true},"required_access_levels":{"type":["list","string"],"description":"A list of other access levels defined in the same Policy,\nreferenced by resource name. Referencing an AccessLevel which\ndoes not exist is an error. All access levels listed must be\ngranted for the Condition to be true.\nFormat: accessPolicies/{policy_id}/accessLevels/{short_name}","description_kind":"plain","optional":true}},"block_types":{"device_policy":{"nesting_mode":"list","block":{"attributes":{"allowed_device_management_levels":{"type":["list","string"],"description":"A list of allowed device management levels.\nAn empty list allows all management levels. Possible values: [\"MANAGEMENT_UNSPECIFIED\", \"NONE\", \"BASIC\", \"COMPLETE\"]","description_kind":"plain","optional":true},"allowed_encryption_statuses":{"type":["list","string"],"description":"A list of allowed encryptions statuses.\nAn empty list allows all statuses. Possible values: [\"ENCRYPTION_UNSPECIFIED\", \"ENCRYPTION_UNSUPPORTED\", \"UNENCRYPTED\", \"ENCRYPTED\"]","description_kind":"plain","optional":true},"require_admin_approval":{"type":"bool","description":"Whether the device needs to be approved by the customer admin.","description_kind":"plain","optional":true},"require_corp_owned":{"type":"bool","description":"Whether the device needs to be corp owned.","description_kind":"plain","optional":true},"require_screen_lock":{"type":"bool","description":"Whether or not screenlock is required for the DevicePolicy\nto be true. Defaults to false.","description_kind":"plain","optional":true}},"block_types":{"os_constraints":{"nesting_mode":"list","block":{"attributes":{"minimum_version":{"type":"string","description":"The minimum allowed OS version. If not set, any version\nof this OS satisfies the constraint.\nFormat: \"major.minor.patch\" such as \"10.5.301\", \"9.2.1\".","description_kind":"plain","optional":true},"os_type":{"type":"string","description":"The operating system type of the device. Possible values: [\"OS_UNSPECIFIED\", \"DESKTOP_MAC\", \"DESKTOP_WINDOWS\", \"DESKTOP_LINUX\", \"DESKTOP_CHROME_OS\", \"ANDROID\", \"IOS\"]","description_kind":"plain","required":true}},"description":"A list of allowed OS versions.\nAn empty list allows all types and all versions.","description_kind":"plain"}}},"description":"Device specific restrictions, all restrictions must hold for\nthe Condition to be true. If not specified, all devices are\nallowed.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_access_context_manager_access_levels":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"parent":{"type":"string","description":"The AccessPolicy this AccessLevel lives in.\nFormat: accessPolicies/{policy_id}","description_kind":"plain","required":true}},"block_types":{"access_levels":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"Description of the AccessLevel and its use. Does not affect behavior.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Resource name for the Access Level. The short_name component must begin\nwith a letter and only include alphanumeric and '_'.\nFormat: accessPolicies/{policy_id}/accessLevels/{short_name}","description_kind":"plain","required":true},"title":{"type":"string","description":"Human readable title. Must be unique within the Policy.","description_kind":"plain","required":true}},"block_types":{"basic":{"nesting_mode":"list","block":{"attributes":{"combining_function":{"type":"string","description":"How the conditions list should be combined to determine if a request\nis granted this AccessLevel. If AND is used, each Condition in\nconditions must be satisfied for the AccessLevel to be applied. If\nOR is used, at least one Condition in conditions must be satisfied\nfor the AccessLevel to be applied. Default value: \"AND\" Possible values: [\"AND\", \"OR\"]","description_kind":"plain","optional":true}},"block_types":{"conditions":{"nesting_mode":"list","block":{"attributes":{"ip_subnetworks":{"type":["list","string"],"description":"A list of CIDR block IP subnetwork specification. May be IPv4\nor IPv6.\nNote that for a CIDR IP address block, the specified IP address\nportion must be properly truncated (i.e. all the host bits must\nbe zero) or the input is considered malformed. For example,\n\"192.0.2.0/24\" is accepted but \"192.0.2.1/24\" is not. Similarly,\nfor IPv6, \"2001:db8::/32\" is accepted whereas \"2001:db8::1/32\"\nis not. The originating IP of a request must be in one of the\nlisted subnets in order for this Condition to be true.\nIf empty, all IP addresses are allowed.","description_kind":"plain","optional":true},"members":{"type":["list","string"],"description":"An allowed list of members (users, service accounts).\nUsing groups is not supported yet.\n\nThe signed-in user originating the request must be a part of one\nof the provided members. If not specified, a request may come\nfrom any user (logged in/not logged in, not present in any\ngroups, etc.).\nFormats: 'user:{emailid}', 'serviceAccount:{emailid}'","description_kind":"plain","optional":true},"negate":{"type":"bool","description":"Whether to negate the Condition. If true, the Condition becomes\na NAND over its non-empty fields, each field must be false for\nthe Condition overall to be satisfied. Defaults to false.","description_kind":"plain","optional":true},"regions":{"type":["list","string"],"description":"The request must originate from one of the provided\ncountries/regions.\nFormat: A valid ISO 3166-1 alpha-2 code.","description_kind":"plain","optional":true},"required_access_levels":{"type":["list","string"],"description":"A list of other access levels defined in the same Policy,\nreferenced by resource name. Referencing an AccessLevel which\ndoes not exist is an error. All access levels listed must be\ngranted for the Condition to be true.\nFormat: accessPolicies/{policy_id}/accessLevels/{short_name}","description_kind":"plain","optional":true}},"block_types":{"device_policy":{"nesting_mode":"list","block":{"attributes":{"allowed_device_management_levels":{"type":["list","string"],"description":"A list of allowed device management levels.\nAn empty list allows all management levels. Possible values: [\"MANAGEMENT_UNSPECIFIED\", \"NONE\", \"BASIC\", \"COMPLETE\"]","description_kind":"plain","optional":true},"allowed_encryption_statuses":{"type":["list","string"],"description":"A list of allowed encryptions statuses.\nAn empty list allows all statuses. Possible values: [\"ENCRYPTION_UNSPECIFIED\", \"ENCRYPTION_UNSUPPORTED\", \"UNENCRYPTED\", \"ENCRYPTED\"]","description_kind":"plain","optional":true},"require_admin_approval":{"type":"bool","description":"Whether the device needs to be approved by the customer admin.","description_kind":"plain","optional":true},"require_corp_owned":{"type":"bool","description":"Whether the device needs to be corp owned.","description_kind":"plain","optional":true},"require_screen_lock":{"type":"bool","description":"Whether or not screenlock is required for the DevicePolicy\nto be true. Defaults to false.","description_kind":"plain","optional":true}},"block_types":{"os_constraints":{"nesting_mode":"list","block":{"attributes":{"minimum_version":{"type":"string","description":"The minimum allowed OS version. If not set, any version\nof this OS satisfies the constraint.\nFormat: \"major.minor.patch\" such as \"10.5.301\", \"9.2.1\".","description_kind":"plain","optional":true},"os_type":{"type":"string","description":"The operating system type of the device. Possible values: [\"OS_UNSPECIFIED\", \"DESKTOP_MAC\", \"DESKTOP_WINDOWS\", \"DESKTOP_LINUX\", \"DESKTOP_CHROME_OS\", \"ANDROID\", \"IOS\"]","description_kind":"plain","required":true}},"description":"A list of allowed OS versions.\nAn empty list allows all types and all versions.","description_kind":"plain"}}},"description":"Device specific restrictions, all restrictions must hold for\nthe Condition to be true. If not specified, all devices are\nallowed.","description_kind":"plain"},"max_items":1}},"description":"A set of requirements for the AccessLevel to be granted.","description_kind":"plain"},"min_items":1}},"description":"A set of predefined conditions for the access level and a combining function.","description_kind":"plain"},"max_items":1},"custom":{"nesting_mode":"list","block":{"block_types":{"expr":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Description of the expression","description_kind":"plain","optional":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.","description_kind":"plain","required":true},"location":{"type":"string","description":"String indicating the location of the expression for error reporting, e.g. a file name and a position in the file","description_kind":"plain","optional":true},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its purpose.","description_kind":"plain","optional":true}},"description":"Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language.\nThis page details the objects and attributes that are used to the build the CEL expressions for \ncustom access levels - https://cloud.google.com/access-context-manager/docs/custom-access-level-spec.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Custom access level conditions are set using the Cloud Common Expression Language to represent the necessary conditions for the level to apply to a request. \nSee CEL spec at: https://github.com/google/cel-spec.","description_kind":"plain"},"max_items":1}},"description":"The desired Access Levels that should replace all existing Access Levels in the Access Policy.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_access_context_manager_access_policy":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Time the AccessPolicy was created in UTC.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Resource name of the AccessPolicy. Format: {policy_id}","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The parent of this AccessPolicy in the Cloud Resource Hierarchy.\nFormat: organizations/{organization_id}","description_kind":"plain","required":true},"title":{"type":"string","description":"Human readable title. Does not affect behavior.","description_kind":"plain","required":true},"update_time":{"type":"string","description":"Time the AccessPolicy was updated in UTC.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_access_context_manager_gcp_user_access_binding":{"version":0,"block":{"attributes":{"access_levels":{"type":["list","string"],"description":"Required. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: \"accessPolicies/9522/accessLevels/device_trusted\"","description_kind":"plain","required":true},"group_key":{"type":"string","description":"Required. Immutable. Google Group id whose members are subject to this binding's restrictions. See \"id\" in the G Suite Directory API's Groups resource. If a group's email address/alias is changed, this resource will continue to point at the changed group. This field does not accept group email addresses or aliases. Example: \"01d520gv4vjcrht\"","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Immutable. Assigned by the server during creation. The last segment has an arbitrary length and has only URI unreserved characters (as defined by RFC 3986 Section 2.3). Should not be specified by the client during creation. Example: \"organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N\"","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"Required. ID of the parent organization.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_access_context_manager_service_perimeter":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Time the AccessPolicy was created in UTC.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the ServicePerimeter and its use. Does not affect\nbehavior.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Resource name for the ServicePerimeter. The short_name component must\nbegin with a letter and only include alphanumeric and '_'.\nFormat: accessPolicies/{policy_id}/servicePerimeters/{short_name}","description_kind":"plain","required":true},"parent":{"type":"string","description":"The AccessPolicy this ServicePerimeter lives in.\nFormat: accessPolicies/{policy_id}","description_kind":"plain","required":true},"perimeter_type":{"type":"string","description":"Specifies the type of the Perimeter. There are two types: regular and\nbridge. Regular Service Perimeter contains resources, access levels,\nand restricted services. Every resource can be in at most\nONE regular Service Perimeter.\n\nIn addition to being in a regular service perimeter, a resource can also\nbe in zero or more perimeter bridges. A perimeter bridge only contains\nresources. Cross project operations are permitted if all effected\nresources share some perimeter (whether bridge or regular). Perimeter\nBridge does not contain access levels or services: those are governed\nentirely by the regular perimeter that resource is in.\n\nPerimeter Bridges are typically useful when building more complex\ntopologies with many independent perimeters that need to share some data\nwith a common perimeter, but should not be able to share data among\nthemselves. Default value: \"PERIMETER_TYPE_REGULAR\" Possible values: [\"PERIMETER_TYPE_REGULAR\", \"PERIMETER_TYPE_BRIDGE\"]","description_kind":"plain","optional":true},"title":{"type":"string","description":"Human readable title. Must be unique within the Policy.","description_kind":"plain","required":true},"update_time":{"type":"string","description":"Time the AccessPolicy was updated in UTC.","description_kind":"plain","computed":true},"use_explicit_dry_run_spec":{"type":"bool","description":"Use explicit dry run spec flag. Ordinarily, a dry-run spec implicitly exists\nfor all Service Perimeters, and that spec is identical to the status for those\nService Perimeters. When this flag is set, it inhibits the generation of the\nimplicit spec, thereby allowing the user to explicitly provide a\nconfiguration (\"spec\") to use in a dry-run version of the Service Perimeter.\nThis allows the user to test changes to the enforced config (\"status\") without\nactually enforcing them. This testing is done through analyzing the differences\nbetween currently enforced and suggested restrictions. useExplicitDryRunSpec must\nbet set to True if any of the fields in the spec are set to non-default values.","description_kind":"plain","optional":true}},"block_types":{"spec":{"nesting_mode":"list","block":{"attributes":{"access_levels":{"type":["list","string"],"description":"A list of AccessLevel resource names that allow resources within\nthe ServicePerimeter to be accessed from the internet.\nAccessLevels listed must be in the same policy as this\nServicePerimeter. Referencing a nonexistent AccessLevel is a\nsyntax error. If no AccessLevel names are listed, resources within\nthe perimeter can only be accessed via GCP calls with request\norigins within the perimeter. For Service Perimeter Bridge, must\nbe empty.\n\nFormat: accessPolicies/{policy_id}/accessLevels/{access_level_name}","description_kind":"plain","optional":true},"resources":{"type":["list","string"],"description":"A list of GCP resources that are inside of the service perimeter.\nCurrently only projects are allowed.\nFormat: projects/{project_number}","description_kind":"plain","optional":true},"restricted_services":{"type":["list","string"],"description":"GCP services that are subject to the Service Perimeter\nrestrictions. Must contain a list of services. For example, if\n'storage.googleapis.com' is specified, access to the storage\nbuckets inside the perimeter must meet the perimeter's access\nrestrictions.","description_kind":"plain","optional":true}},"block_types":{"egress_policies":{"nesting_mode":"list","block":{"block_types":{"egress_from":{"nesting_mode":"list","block":{"attributes":{"identities":{"type":["list","string"],"description":"A list of identities that are allowed access through this 'EgressPolicy'. \nShould be in the format of email address. The email address should \nrepresent individual user or service account only.","description_kind":"plain","optional":true},"identity_type":{"type":"string","description":"Specifies the type of identities that are allowed access to outside the \nperimeter. If left unspecified, then members of 'identities' field will \nbe allowed access. Possible values: [\"IDENTITY_TYPE_UNSPECIFIED\", \"ANY_IDENTITY\", \"ANY_USER_ACCOUNT\", \"ANY_SERVICE_ACCOUNT\"]","description_kind":"plain","optional":true}},"description":"Defines conditions on the source of a request causing this 'EgressPolicy' to apply.","description_kind":"plain"},"max_items":1},"egress_to":{"nesting_mode":"list","block":{"attributes":{"resources":{"type":["list","string"],"description":"A list of resources, currently only projects in the form \n'projects/\u003cprojectnumber\u003e', that match this to stanza. A request matches \nif it contains a resource in this list. If * is specified for resources, \nthen this 'EgressTo' rule will authorize access to all resources outside \nthe perimeter.","description_kind":"plain","optional":true}},"block_types":{"operations":{"nesting_mode":"list","block":{"attributes":{"service_name":{"type":"string","description":"The name of the API whose methods or permissions the 'IngressPolicy' or \n'EgressPolicy' want to allow. A single 'ApiOperation' with serviceName \nfield set to '*' will allow all methods AND permissions for all services.","description_kind":"plain","optional":true}},"block_types":{"method_selectors":{"nesting_mode":"list","block":{"attributes":{"method":{"type":"string","description":"Value for 'method' should be a valid method name for the corresponding \n'serviceName' in 'ApiOperation'. If '*' used as value for method, \nthen ALL methods and permissions are allowed.","description_kind":"plain","optional":true},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the \ncorresponding 'serviceName' in 'ApiOperation'.","description_kind":"plain","optional":true}},"description":"API methods or permissions to allow. Method or permission must belong \nto the service specified by 'serviceName' field. A single MethodSelector \nentry with '*' specified for the 'method' field will allow all methods \nAND permissions for the service specified in 'serviceName'.","description_kind":"plain"}}},"description":"A list of 'ApiOperations' that this egress rule applies to. A request matches \nif it contains an operation/service in this list.","description_kind":"plain"}}},"description":"Defines the conditions on the 'ApiOperation' and destination resources that \ncause this 'EgressPolicy' to apply.","description_kind":"plain"},"max_items":1}},"description":"List of EgressPolicies to apply to the perimeter. A perimeter may \nhave multiple EgressPolicies, each of which is evaluated separately.\nAccess is granted if any EgressPolicy grants it. Must be empty for \na perimeter bridge.","description_kind":"plain"}},"ingress_policies":{"nesting_mode":"list","block":{"block_types":{"ingress_from":{"nesting_mode":"list","block":{"attributes":{"identities":{"type":["list","string"],"description":"A list of identities that are allowed access through this ingress policy.\nShould be in the format of email address. The email address should represent \nindividual user or service account only.","description_kind":"plain","optional":true},"identity_type":{"type":"string","description":"Specifies the type of identities that are allowed access from outside the \nperimeter. If left unspecified, then members of 'identities' field will be \nallowed access. Possible values: [\"IDENTITY_TYPE_UNSPECIFIED\", \"ANY_IDENTITY\", \"ANY_USER_ACCOUNT\", \"ANY_SERVICE_ACCOUNT\"]","description_kind":"plain","optional":true}},"block_types":{"sources":{"nesting_mode":"list","block":{"attributes":{"access_level":{"type":"string","description":"An 'AccessLevel' resource name that allow resources within the \n'ServicePerimeters' to be accessed from the internet. 'AccessLevels' listed \nmust be in the same policy as this 'ServicePerimeter'. Referencing a nonexistent\n'AccessLevel' will cause an error. If no 'AccessLevel' names are listed, \nresources within the perimeter can only be accessed via Google Cloud calls \nwith request origins within the perimeter. \nExample 'accessPolicies/MY_POLICY/accessLevels/MY_LEVEL.' \nIf * is specified, then all IngressSources will be allowed.","description_kind":"plain","optional":true},"resource":{"type":"string","description":"A Google Cloud resource that is allowed to ingress the perimeter. \nRequests from these resources will be allowed to access perimeter data. \nCurrently only projects are allowed. Format 'projects/{project_number}' \nThe project may be in any Google Cloud organization, not just the \norganization that the perimeter is defined in. '*' is not allowed, the case \nof allowing all Google Cloud resources only is not supported.","description_kind":"plain","optional":true}},"description":"Sources that this 'IngressPolicy' authorizes access from.","description_kind":"plain"}}},"description":"Defines the conditions on the source of a request causing this 'IngressPolicy'\nto apply.","description_kind":"plain"},"max_items":1},"ingress_to":{"nesting_mode":"list","block":{"attributes":{"resources":{"type":["list","string"],"description":"A list of resources, currently only projects in the form \n'projects/\u003cprojectnumber\u003e', protected by this 'ServicePerimeter'\nthat are allowed to be accessed by sources defined in the\ncorresponding 'IngressFrom'. A request matches if it contains\na resource in this list. If '*' is specified for resources,\nthen this 'IngressTo' rule will authorize access to all \nresources inside the perimeter, provided that the request\nalso matches the 'operations' field.","description_kind":"plain","optional":true}},"block_types":{"operations":{"nesting_mode":"list","block":{"attributes":{"service_name":{"type":"string","description":"The name of the API whose methods or permissions the 'IngressPolicy' or \n'EgressPolicy' want to allow. A single 'ApiOperation' with 'serviceName' \nfield set to '*' will allow all methods AND permissions for all services.","description_kind":"plain","optional":true}},"block_types":{"method_selectors":{"nesting_mode":"list","block":{"attributes":{"method":{"type":"string","description":"Value for method should be a valid method name for the corresponding \nserviceName in 'ApiOperation'. If '*' used as value for 'method', then \nALL methods and permissions are allowed.","description_kind":"plain","optional":true},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the \ncorresponding 'serviceName' in 'ApiOperation'.","description_kind":"plain","optional":true}},"description":"API methods or permissions to allow. Method or permission must belong to \nthe service specified by serviceName field. A single 'MethodSelector' entry \nwith '*' specified for the method field will allow all methods AND \npermissions for the service specified in 'serviceName'.","description_kind":"plain"}}},"description":"A list of 'ApiOperations' the sources specified in corresponding 'IngressFrom' \nare allowed to perform in this 'ServicePerimeter'.","description_kind":"plain"}}},"description":"Defines the conditions on the 'ApiOperation' and request destination that cause\nthis 'IngressPolicy' to apply.","description_kind":"plain"},"max_items":1}},"description":"List of 'IngressPolicies' to apply to the perimeter. A perimeter may\nhave multiple 'IngressPolicies', each of which is evaluated\nseparately. Access is granted if any 'Ingress Policy' grants it.\nMust be empty for a perimeter bridge.","description_kind":"plain"}},"vpc_accessible_services":{"nesting_mode":"list","block":{"attributes":{"allowed_services":{"type":["list","string"],"description":"The list of APIs usable within the Service Perimeter.\nMust be empty unless 'enableRestriction' is True.","description_kind":"plain","optional":true},"enable_restriction":{"type":"bool","description":"Whether to restrict API calls within the Service Perimeter to the\nlist of APIs specified in 'allowedServices'.","description_kind":"plain","optional":true}},"description":"Specifies how APIs are allowed to communicate within the Service\nPerimeter.","description_kind":"plain"},"max_items":1}},"description":"Proposed (or dry run) ServicePerimeter configuration.\nThis configuration allows to specify and test ServicePerimeter configuration\nwithout enforcing actual access restrictions. Only allowed to be set when\nthe 'useExplicitDryRunSpec' flag is set.","description_kind":"plain"},"max_items":1},"status":{"nesting_mode":"list","block":{"attributes":{"access_levels":{"type":["list","string"],"description":"A list of AccessLevel resource names that allow resources within\nthe ServicePerimeter to be accessed from the internet.\nAccessLevels listed must be in the same policy as this\nServicePerimeter. Referencing a nonexistent AccessLevel is a\nsyntax error. If no AccessLevel names are listed, resources within\nthe perimeter can only be accessed via GCP calls with request\norigins within the perimeter. For Service Perimeter Bridge, must\nbe empty.\n\nFormat: accessPolicies/{policy_id}/accessLevels/{access_level_name}","description_kind":"plain","optional":true},"resources":{"type":["list","string"],"description":"A list of GCP resources that are inside of the service perimeter.\nCurrently only projects are allowed.\nFormat: projects/{project_number}","description_kind":"plain","optional":true},"restricted_services":{"type":["set","string"],"description":"GCP services that are subject to the Service Perimeter\nrestrictions. Must contain a list of services. For example, if\n'storage.googleapis.com' is specified, access to the storage\nbuckets inside the perimeter must meet the perimeter's access\nrestrictions.","description_kind":"plain","optional":true}},"block_types":{"egress_policies":{"nesting_mode":"list","block":{"block_types":{"egress_from":{"nesting_mode":"list","block":{"attributes":{"identities":{"type":["list","string"],"description":"A list of identities that are allowed access through this 'EgressPolicy'. \nShould be in the format of email address. The email address should \nrepresent individual user or service account only.","description_kind":"plain","optional":true},"identity_type":{"type":"string","description":"Specifies the type of identities that are allowed access to outside the \nperimeter. If left unspecified, then members of 'identities' field will \nbe allowed access. Possible values: [\"IDENTITY_TYPE_UNSPECIFIED\", \"ANY_IDENTITY\", \"ANY_USER_ACCOUNT\", \"ANY_SERVICE_ACCOUNT\"]","description_kind":"plain","optional":true}},"description":"Defines conditions on the source of a request causing this 'EgressPolicy' to apply.","description_kind":"plain"},"max_items":1},"egress_to":{"nesting_mode":"list","block":{"attributes":{"resources":{"type":["list","string"],"description":"A list of resources, currently only projects in the form \n'projects/\u003cprojectnumber\u003e', that match this to stanza. A request matches \nif it contains a resource in this list. If * is specified for resources, \nthen this 'EgressTo' rule will authorize access to all resources outside \nthe perimeter.","description_kind":"plain","optional":true}},"block_types":{"operations":{"nesting_mode":"list","block":{"attributes":{"service_name":{"type":"string","description":"The name of the API whose methods or permissions the 'IngressPolicy' or \n'EgressPolicy' want to allow. A single 'ApiOperation' with serviceName \nfield set to '*' will allow all methods AND permissions for all services.","description_kind":"plain","optional":true}},"block_types":{"method_selectors":{"nesting_mode":"list","block":{"attributes":{"method":{"type":"string","description":"Value for 'method' should be a valid method name for the corresponding \n'serviceName' in 'ApiOperation'. If '*' used as value for method, \nthen ALL methods and permissions are allowed.","description_kind":"plain","optional":true},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the \ncorresponding 'serviceName' in 'ApiOperation'.","description_kind":"plain","optional":true}},"description":"API methods or permissions to allow. Method or permission must belong \nto the service specified by 'serviceName' field. A single MethodSelector \nentry with '*' specified for the 'method' field will allow all methods \nAND permissions for the service specified in 'serviceName'.","description_kind":"plain"}}},"description":"A list of 'ApiOperations' that this egress rule applies to. A request matches \nif it contains an operation/service in this list.","description_kind":"plain"}}},"description":"Defines the conditions on the 'ApiOperation' and destination resources that \ncause this 'EgressPolicy' to apply.","description_kind":"plain"},"max_items":1}},"description":"List of EgressPolicies to apply to the perimeter. A perimeter may \nhave multiple EgressPolicies, each of which is evaluated separately.\nAccess is granted if any EgressPolicy grants it. Must be empty for \na perimeter bridge.","description_kind":"plain"}},"ingress_policies":{"nesting_mode":"list","block":{"block_types":{"ingress_from":{"nesting_mode":"list","block":{"attributes":{"identities":{"type":["list","string"],"description":"A list of identities that are allowed access through this ingress policy.\nShould be in the format of email address. The email address should represent \nindividual user or service account only.","description_kind":"plain","optional":true},"identity_type":{"type":"string","description":"Specifies the type of identities that are allowed access from outside the \nperimeter. If left unspecified, then members of 'identities' field will be \nallowed access. Possible values: [\"IDENTITY_TYPE_UNSPECIFIED\", \"ANY_IDENTITY\", \"ANY_USER_ACCOUNT\", \"ANY_SERVICE_ACCOUNT\"]","description_kind":"plain","optional":true}},"block_types":{"sources":{"nesting_mode":"list","block":{"attributes":{"access_level":{"type":"string","description":"An 'AccessLevel' resource name that allow resources within the \n'ServicePerimeters' to be accessed from the internet. 'AccessLevels' listed \nmust be in the same policy as this 'ServicePerimeter'. Referencing a nonexistent\n'AccessLevel' will cause an error. If no 'AccessLevel' names are listed, \nresources within the perimeter can only be accessed via Google Cloud calls \nwith request origins within the perimeter. \nExample 'accessPolicies/MY_POLICY/accessLevels/MY_LEVEL.' \nIf * is specified, then all IngressSources will be allowed.","description_kind":"plain","optional":true},"resource":{"type":"string","description":"A Google Cloud resource that is allowed to ingress the perimeter. \nRequests from these resources will be allowed to access perimeter data. \nCurrently only projects are allowed. Format 'projects/{project_number}' \nThe project may be in any Google Cloud organization, not just the \norganization that the perimeter is defined in. '*' is not allowed, the case \nof allowing all Google Cloud resources only is not supported.","description_kind":"plain","optional":true}},"description":"Sources that this 'IngressPolicy' authorizes access from.","description_kind":"plain"}}},"description":"Defines the conditions on the source of a request causing this 'IngressPolicy'\nto apply.","description_kind":"plain"},"max_items":1},"ingress_to":{"nesting_mode":"list","block":{"attributes":{"resources":{"type":["list","string"],"description":"A list of resources, currently only projects in the form \n'projects/\u003cprojectnumber\u003e', protected by this 'ServicePerimeter'\nthat are allowed to be accessed by sources defined in the\ncorresponding 'IngressFrom'. A request matches if it contains\na resource in this list. If '*' is specified for resources,\nthen this 'IngressTo' rule will authorize access to all \nresources inside the perimeter, provided that the request\nalso matches the 'operations' field.","description_kind":"plain","optional":true}},"block_types":{"operations":{"nesting_mode":"list","block":{"attributes":{"service_name":{"type":"string","description":"The name of the API whose methods or permissions the 'IngressPolicy' or \n'EgressPolicy' want to allow. A single 'ApiOperation' with 'serviceName' \nfield set to '*' will allow all methods AND permissions for all services.","description_kind":"plain","optional":true}},"block_types":{"method_selectors":{"nesting_mode":"list","block":{"attributes":{"method":{"type":"string","description":"Value for method should be a valid method name for the corresponding \nserviceName in 'ApiOperation'. If '*' used as value for 'method', then \nALL methods and permissions are allowed.","description_kind":"plain","optional":true},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the \ncorresponding 'serviceName' in 'ApiOperation'.","description_kind":"plain","optional":true}},"description":"API methods or permissions to allow. Method or permission must belong to \nthe service specified by serviceName field. A single 'MethodSelector' entry \nwith '*' specified for the method field will allow all methods AND \npermissions for the service specified in 'serviceName'.","description_kind":"plain"}}},"description":"A list of 'ApiOperations' the sources specified in corresponding 'IngressFrom' \nare allowed to perform in this 'ServicePerimeter'.","description_kind":"plain"}}},"description":"Defines the conditions on the 'ApiOperation' and request destination that cause\nthis 'IngressPolicy' to apply.","description_kind":"plain"},"max_items":1}},"description":"List of 'IngressPolicies' to apply to the perimeter. A perimeter may\nhave multiple 'IngressPolicies', each of which is evaluated\nseparately. Access is granted if any 'Ingress Policy' grants it.\nMust be empty for a perimeter bridge.","description_kind":"plain"}},"vpc_accessible_services":{"nesting_mode":"list","block":{"attributes":{"allowed_services":{"type":["set","string"],"description":"The list of APIs usable within the Service Perimeter.\nMust be empty unless 'enableRestriction' is True.","description_kind":"plain","optional":true},"enable_restriction":{"type":"bool","description":"Whether to restrict API calls within the Service Perimeter to the\nlist of APIs specified in 'allowedServices'.","description_kind":"plain","optional":true}},"description":"Specifies how APIs are allowed to communicate within the Service\nPerimeter.","description_kind":"plain"},"max_items":1}},"description":"ServicePerimeter configuration. Specifies sets of resources,\nrestricted services and access levels that determine\nperimeter content and boundaries.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_access_context_manager_service_perimeter_resource":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"perimeter_name":{"type":"string","description":"The name of the Service Perimeter to add this resource to.","description_kind":"plain","required":true},"resource":{"type":"string","description":"A GCP resource that is inside of the service perimeter.\nCurrently only projects are allowed.\nFormat: projects/{project_number}","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_access_context_manager_service_perimeters":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"parent":{"type":"string","description":"The AccessPolicy this ServicePerimeter lives in.\nFormat: accessPolicies/{policy_id}","description_kind":"plain","required":true}},"block_types":{"service_perimeters":{"nesting_mode":"set","block":{"attributes":{"create_time":{"type":"string","description":"Time the AccessPolicy was created in UTC.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the ServicePerimeter and its use. Does not affect\nbehavior.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Resource name for the ServicePerimeter. The short_name component must\nbegin with a letter and only include alphanumeric and '_'.\nFormat: accessPolicies/{policy_id}/servicePerimeters/{short_name}","description_kind":"plain","required":true},"perimeter_type":{"type":"string","description":"Specifies the type of the Perimeter. There are two types: regular and\nbridge. Regular Service Perimeter contains resources, access levels,\nand restricted services. Every resource can be in at most\nONE regular Service Perimeter.\n\nIn addition to being in a regular service perimeter, a resource can also\nbe in zero or more perimeter bridges. A perimeter bridge only contains\nresources. Cross project operations are permitted if all effected\nresources share some perimeter (whether bridge or regular). Perimeter\nBridge does not contain access levels or services: those are governed\nentirely by the regular perimeter that resource is in.\n\nPerimeter Bridges are typically useful when building more complex\ntopologies with many independent perimeters that need to share some data\nwith a common perimeter, but should not be able to share data among\nthemselves. Default value: \"PERIMETER_TYPE_REGULAR\" Possible values: [\"PERIMETER_TYPE_REGULAR\", \"PERIMETER_TYPE_BRIDGE\"]","description_kind":"plain","optional":true},"title":{"type":"string","description":"Human readable title. Must be unique within the Policy.","description_kind":"plain","required":true},"update_time":{"type":"string","description":"Time the AccessPolicy was updated in UTC.","description_kind":"plain","computed":true},"use_explicit_dry_run_spec":{"type":"bool","description":"Use explicit dry run spec flag. Ordinarily, a dry-run spec implicitly exists\nfor all Service Perimeters, and that spec is identical to the status for those\nService Perimeters. When this flag is set, it inhibits the generation of the\nimplicit spec, thereby allowing the user to explicitly provide a\nconfiguration (\"spec\") to use in a dry-run version of the Service Perimeter.\nThis allows the user to test changes to the enforced config (\"status\") without\nactually enforcing them. This testing is done through analyzing the differences\nbetween currently enforced and suggested restrictions. useExplicitDryRunSpec must\nbet set to True if any of the fields in the spec are set to non-default values.","description_kind":"plain","optional":true}},"block_types":{"spec":{"nesting_mode":"list","block":{"attributes":{"access_levels":{"type":["list","string"],"description":"A list of AccessLevel resource names that allow resources within\nthe ServicePerimeter to be accessed from the internet.\nAccessLevels listed must be in the same policy as this\nServicePerimeter. Referencing a nonexistent AccessLevel is a\nsyntax error. If no AccessLevel names are listed, resources within\nthe perimeter can only be accessed via GCP calls with request\norigins within the perimeter. For Service Perimeter Bridge, must\nbe empty.\n\nFormat: accessPolicies/{policy_id}/accessLevels/{access_level_name}","description_kind":"plain","optional":true},"resources":{"type":["list","string"],"description":"A list of GCP resources that are inside of the service perimeter.\nCurrently only projects are allowed.\nFormat: projects/{project_number}","description_kind":"plain","optional":true},"restricted_services":{"type":["list","string"],"description":"GCP services that are subject to the Service Perimeter\nrestrictions. Must contain a list of services. For example, if\n'storage.googleapis.com' is specified, access to the storage\nbuckets inside the perimeter must meet the perimeter's access\nrestrictions.","description_kind":"plain","optional":true}},"block_types":{"egress_policies":{"nesting_mode":"list","block":{"block_types":{"egress_from":{"nesting_mode":"list","block":{"attributes":{"identities":{"type":["list","string"],"description":"A list of identities that are allowed access through this 'EgressPolicy'. \nShould be in the format of email address. The email address should \nrepresent individual user or service account only.","description_kind":"plain","optional":true},"identity_type":{"type":"string","description":"Specifies the type of identities that are allowed access to outside the \nperimeter. If left unspecified, then members of 'identities' field will \nbe allowed access. Possible values: [\"IDENTITY_TYPE_UNSPECIFIED\", \"ANY_IDENTITY\", \"ANY_USER_ACCOUNT\", \"ANY_SERVICE_ACCOUNT\"]","description_kind":"plain","optional":true}},"description":"Defines conditions on the source of a request causing this 'EgressPolicy' to apply.","description_kind":"plain"},"max_items":1},"egress_to":{"nesting_mode":"list","block":{"attributes":{"resources":{"type":["list","string"],"description":"A list of resources, currently only projects in the form \n'projects/\u003cprojectnumber\u003e', that match this to stanza. A request matches \nif it contains a resource in this list. If * is specified for resources, \nthen this 'EgressTo' rule will authorize access to all resources outside \nthe perimeter.","description_kind":"plain","optional":true}},"block_types":{"operations":{"nesting_mode":"list","block":{"attributes":{"service_name":{"type":"string","description":"The name of the API whose methods or permissions the 'IngressPolicy' or \n'EgressPolicy' want to allow. A single 'ApiOperation' with serviceName \nfield set to '*' will allow all methods AND permissions for all services.","description_kind":"plain","optional":true}},"block_types":{"method_selectors":{"nesting_mode":"list","block":{"attributes":{"method":{"type":"string","description":"Value for 'method' should be a valid method name for the corresponding \n'serviceName' in 'ApiOperation'. If '*' used as value for method, \nthen ALL methods and permissions are allowed.","description_kind":"plain","optional":true},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the \ncorresponding 'serviceName' in 'ApiOperation'.","description_kind":"plain","optional":true}},"description":"API methods or permissions to allow. Method or permission must belong \nto the service specified by 'serviceName' field. A single MethodSelector \nentry with '*' specified for the 'method' field will allow all methods \nAND permissions for the service specified in 'serviceName'.","description_kind":"plain"}}},"description":"A list of 'ApiOperations' that this egress rule applies to. A request matches \nif it contains an operation/service in this list.","description_kind":"plain"}}},"description":"Defines the conditions on the 'ApiOperation' and destination resources that \ncause this 'EgressPolicy' to apply.","description_kind":"plain"},"max_items":1}},"description":"List of EgressPolicies to apply to the perimeter. A perimeter may \nhave multiple EgressPolicies, each of which is evaluated separately.\nAccess is granted if any EgressPolicy grants it. Must be empty for \na perimeter bridge.","description_kind":"plain"}},"ingress_policies":{"nesting_mode":"list","block":{"block_types":{"ingress_from":{"nesting_mode":"list","block":{"attributes":{"identities":{"type":["list","string"],"description":"A list of identities that are allowed access through this ingress policy.\nShould be in the format of email address. The email address should represent \nindividual user or service account only.","description_kind":"plain","optional":true},"identity_type":{"type":"string","description":"Specifies the type of identities that are allowed access from outside the \nperimeter. If left unspecified, then members of 'identities' field will be \nallowed access. Possible values: [\"IDENTITY_TYPE_UNSPECIFIED\", \"ANY_IDENTITY\", \"ANY_USER_ACCOUNT\", \"ANY_SERVICE_ACCOUNT\"]","description_kind":"plain","optional":true}},"block_types":{"sources":{"nesting_mode":"list","block":{"attributes":{"access_level":{"type":"string","description":"An 'AccessLevel' resource name that allow resources within the \n'ServicePerimeters' to be accessed from the internet. 'AccessLevels' listed \nmust be in the same policy as this 'ServicePerimeter'. Referencing a nonexistent\n'AccessLevel' will cause an error. If no 'AccessLevel' names are listed, \nresources within the perimeter can only be accessed via Google Cloud calls \nwith request origins within the perimeter. \nExample 'accessPolicies/MY_POLICY/accessLevels/MY_LEVEL.' \nIf * is specified, then all IngressSources will be allowed.","description_kind":"plain","optional":true},"resource":{"type":"string","description":"A Google Cloud resource that is allowed to ingress the perimeter. \nRequests from these resources will be allowed to access perimeter data. \nCurrently only projects are allowed. Format 'projects/{project_number}' \nThe project may be in any Google Cloud organization, not just the \norganization that the perimeter is defined in. '*' is not allowed, the case \nof allowing all Google Cloud resources only is not supported.","description_kind":"plain","optional":true}},"description":"Sources that this 'IngressPolicy' authorizes access from.","description_kind":"plain"}}},"description":"Defines the conditions on the source of a request causing this 'IngressPolicy'\nto apply.","description_kind":"plain"},"max_items":1},"ingress_to":{"nesting_mode":"list","block":{"attributes":{"resources":{"type":["list","string"],"description":"A list of resources, currently only projects in the form \n'projects/\u003cprojectnumber\u003e', protected by this 'ServicePerimeter'\nthat are allowed to be accessed by sources defined in the\ncorresponding 'IngressFrom'. A request matches if it contains\na resource in this list. If '*' is specified for resources,\nthen this 'IngressTo' rule will authorize access to all \nresources inside the perimeter, provided that the request\nalso matches the 'operations' field.","description_kind":"plain","optional":true}},"block_types":{"operations":{"nesting_mode":"list","block":{"attributes":{"service_name":{"type":"string","description":"The name of the API whose methods or permissions the 'IngressPolicy' or \n'EgressPolicy' want to allow. A single 'ApiOperation' with 'serviceName' \nfield set to '*' will allow all methods AND permissions for all services.","description_kind":"plain","optional":true}},"block_types":{"method_selectors":{"nesting_mode":"list","block":{"attributes":{"method":{"type":"string","description":"Value for method should be a valid method name for the corresponding \nserviceName in 'ApiOperation'. If '*' used as value for 'method', then \nALL methods and permissions are allowed.","description_kind":"plain","optional":true},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the \ncorresponding 'serviceName' in 'ApiOperation'.","description_kind":"plain","optional":true}},"description":"API methods or permissions to allow. Method or permission must belong to \nthe service specified by serviceName field. A single 'MethodSelector' entry \nwith '*' specified for the method field will allow all methods AND \npermissions for the service specified in 'serviceName'.","description_kind":"plain"}}},"description":"A list of 'ApiOperations' the sources specified in corresponding 'IngressFrom' \nare allowed to perform in this 'ServicePerimeter'.","description_kind":"plain"}}},"description":"Defines the conditions on the 'ApiOperation' and request destination that cause\nthis 'IngressPolicy' to apply.","description_kind":"plain"},"max_items":1}},"description":"List of 'IngressPolicies' to apply to the perimeter. A perimeter may\nhave multiple 'IngressPolicies', each of which is evaluated\nseparately. Access is granted if any 'Ingress Policy' grants it.\nMust be empty for a perimeter bridge.","description_kind":"plain"}},"vpc_accessible_services":{"nesting_mode":"list","block":{"attributes":{"allowed_services":{"type":["list","string"],"description":"The list of APIs usable within the Service Perimeter.\nMust be empty unless 'enableRestriction' is True.","description_kind":"plain","optional":true},"enable_restriction":{"type":"bool","description":"Whether to restrict API calls within the Service Perimeter to the\nlist of APIs specified in 'allowedServices'.","description_kind":"plain","optional":true}},"description":"Specifies how APIs are allowed to communicate within the Service\nPerimeter.","description_kind":"plain"},"max_items":1}},"description":"Proposed (or dry run) ServicePerimeter configuration.\nThis configuration allows to specify and test ServicePerimeter configuration\nwithout enforcing actual access restrictions. Only allowed to be set when\nthe 'useExplicitDryRunSpec' flag is set.","description_kind":"plain"},"max_items":1},"status":{"nesting_mode":"list","block":{"attributes":{"access_levels":{"type":["list","string"],"description":"A list of AccessLevel resource names that allow resources within\nthe ServicePerimeter to be accessed from the internet.\nAccessLevels listed must be in the same policy as this\nServicePerimeter. Referencing a nonexistent AccessLevel is a\nsyntax error. If no AccessLevel names are listed, resources within\nthe perimeter can only be accessed via GCP calls with request\norigins within the perimeter. For Service Perimeter Bridge, must\nbe empty.\n\nFormat: accessPolicies/{policy_id}/accessLevels/{access_level_name}","description_kind":"plain","optional":true},"resources":{"type":["list","string"],"description":"A list of GCP resources that are inside of the service perimeter.\nCurrently only projects are allowed.\nFormat: projects/{project_number}","description_kind":"plain","optional":true},"restricted_services":{"type":["set","string"],"description":"GCP services that are subject to the Service Perimeter\nrestrictions. Must contain a list of services. For example, if\n'storage.googleapis.com' is specified, access to the storage\nbuckets inside the perimeter must meet the perimeter's access\nrestrictions.","description_kind":"plain","optional":true}},"block_types":{"egress_policies":{"nesting_mode":"list","block":{"block_types":{"egress_from":{"nesting_mode":"list","block":{"attributes":{"identities":{"type":["list","string"],"description":"A list of identities that are allowed access through this 'EgressPolicy'. \nShould be in the format of email address. The email address should \nrepresent individual user or service account only.","description_kind":"plain","optional":true},"identity_type":{"type":"string","description":"Specifies the type of identities that are allowed access to outside the \nperimeter. If left unspecified, then members of 'identities' field will \nbe allowed access. Possible values: [\"IDENTITY_TYPE_UNSPECIFIED\", \"ANY_IDENTITY\", \"ANY_USER_ACCOUNT\", \"ANY_SERVICE_ACCOUNT\"]","description_kind":"plain","optional":true}},"description":"Defines conditions on the source of a request causing this 'EgressPolicy' to apply.","description_kind":"plain"},"max_items":1},"egress_to":{"nesting_mode":"list","block":{"attributes":{"resources":{"type":["list","string"],"description":"A list of resources, currently only projects in the form \n'projects/\u003cprojectnumber\u003e', that match this to stanza. A request matches \nif it contains a resource in this list. If * is specified for resources, \nthen this 'EgressTo' rule will authorize access to all resources outside \nthe perimeter.","description_kind":"plain","optional":true}},"block_types":{"operations":{"nesting_mode":"list","block":{"attributes":{"service_name":{"type":"string","description":"The name of the API whose methods or permissions the 'IngressPolicy' or \n'EgressPolicy' want to allow. A single 'ApiOperation' with serviceName \nfield set to '*' will allow all methods AND permissions for all services.","description_kind":"plain","optional":true}},"block_types":{"method_selectors":{"nesting_mode":"list","block":{"attributes":{"method":{"type":"string","description":"Value for 'method' should be a valid method name for the corresponding \n'serviceName' in 'ApiOperation'. If '*' used as value for method, \nthen ALL methods and permissions are allowed.","description_kind":"plain","optional":true},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the \ncorresponding 'serviceName' in 'ApiOperation'.","description_kind":"plain","optional":true}},"description":"API methods or permissions to allow. Method or permission must belong \nto the service specified by 'serviceName' field. A single MethodSelector \nentry with '*' specified for the 'method' field will allow all methods \nAND permissions for the service specified in 'serviceName'.","description_kind":"plain"}}},"description":"A list of 'ApiOperations' that this egress rule applies to. A request matches \nif it contains an operation/service in this list.","description_kind":"plain"}}},"description":"Defines the conditions on the 'ApiOperation' and destination resources that \ncause this 'EgressPolicy' to apply.","description_kind":"plain"},"max_items":1}},"description":"List of EgressPolicies to apply to the perimeter. A perimeter may \nhave multiple EgressPolicies, each of which is evaluated separately.\nAccess is granted if any EgressPolicy grants it. Must be empty for \na perimeter bridge.","description_kind":"plain"}},"ingress_policies":{"nesting_mode":"list","block":{"block_types":{"ingress_from":{"nesting_mode":"list","block":{"attributes":{"identities":{"type":["list","string"],"description":"A list of identities that are allowed access through this ingress policy.\nShould be in the format of email address. The email address should represent \nindividual user or service account only.","description_kind":"plain","optional":true},"identity_type":{"type":"string","description":"Specifies the type of identities that are allowed access from outside the \nperimeter. If left unspecified, then members of 'identities' field will be \nallowed access. Possible values: [\"IDENTITY_TYPE_UNSPECIFIED\", \"ANY_IDENTITY\", \"ANY_USER_ACCOUNT\", \"ANY_SERVICE_ACCOUNT\"]","description_kind":"plain","optional":true}},"block_types":{"sources":{"nesting_mode":"list","block":{"attributes":{"access_level":{"type":"string","description":"An 'AccessLevel' resource name that allow resources within the \n'ServicePerimeters' to be accessed from the internet. 'AccessLevels' listed \nmust be in the same policy as this 'ServicePerimeter'. Referencing a nonexistent\n'AccessLevel' will cause an error. If no 'AccessLevel' names are listed, \nresources within the perimeter can only be accessed via Google Cloud calls \nwith request origins within the perimeter. \nExample 'accessPolicies/MY_POLICY/accessLevels/MY_LEVEL.' \nIf * is specified, then all IngressSources will be allowed.","description_kind":"plain","optional":true},"resource":{"type":"string","description":"A Google Cloud resource that is allowed to ingress the perimeter. \nRequests from these resources will be allowed to access perimeter data. \nCurrently only projects are allowed. Format 'projects/{project_number}' \nThe project may be in any Google Cloud organization, not just the \norganization that the perimeter is defined in. '*' is not allowed, the case \nof allowing all Google Cloud resources only is not supported.","description_kind":"plain","optional":true}},"description":"Sources that this 'IngressPolicy' authorizes access from.","description_kind":"plain"}}},"description":"Defines the conditions on the source of a request causing this 'IngressPolicy'\nto apply.","description_kind":"plain"},"max_items":1},"ingress_to":{"nesting_mode":"list","block":{"attributes":{"resources":{"type":["list","string"],"description":"A list of resources, currently only projects in the form \n'projects/\u003cprojectnumber\u003e', protected by this 'ServicePerimeter'\nthat are allowed to be accessed by sources defined in the\ncorresponding 'IngressFrom'. A request matches if it contains\na resource in this list. If '*' is specified for resources,\nthen this 'IngressTo' rule will authorize access to all \nresources inside the perimeter, provided that the request\nalso matches the 'operations' field.","description_kind":"plain","optional":true}},"block_types":{"operations":{"nesting_mode":"list","block":{"attributes":{"service_name":{"type":"string","description":"The name of the API whose methods or permissions the 'IngressPolicy' or \n'EgressPolicy' want to allow. A single 'ApiOperation' with 'serviceName' \nfield set to '*' will allow all methods AND permissions for all services.","description_kind":"plain","optional":true}},"block_types":{"method_selectors":{"nesting_mode":"list","block":{"attributes":{"method":{"type":"string","description":"Value for method should be a valid method name for the corresponding \nserviceName in 'ApiOperation'. If '*' used as value for 'method', then \nALL methods and permissions are allowed.","description_kind":"plain","optional":true},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the \ncorresponding 'serviceName' in 'ApiOperation'.","description_kind":"plain","optional":true}},"description":"API methods or permissions to allow. Method or permission must belong to \nthe service specified by serviceName field. A single 'MethodSelector' entry \nwith '*' specified for the method field will allow all methods AND \npermissions for the service specified in 'serviceName'.","description_kind":"plain"}}},"description":"A list of 'ApiOperations' the sources specified in corresponding 'IngressFrom' \nare allowed to perform in this 'ServicePerimeter'.","description_kind":"plain"}}},"description":"Defines the conditions on the 'ApiOperation' and request destination that cause\nthis 'IngressPolicy' to apply.","description_kind":"plain"},"max_items":1}},"description":"List of 'IngressPolicies' to apply to the perimeter. A perimeter may\nhave multiple 'IngressPolicies', each of which is evaluated\nseparately. Access is granted if any 'Ingress Policy' grants it.\nMust be empty for a perimeter bridge.","description_kind":"plain"}},"vpc_accessible_services":{"nesting_mode":"list","block":{"attributes":{"allowed_services":{"type":["set","string"],"description":"The list of APIs usable within the Service Perimeter.\nMust be empty unless 'enableRestriction' is True.","description_kind":"plain","optional":true},"enable_restriction":{"type":"bool","description":"Whether to restrict API calls within the Service Perimeter to the\nlist of APIs specified in 'allowedServices'.","description_kind":"plain","optional":true}},"description":"Specifies how APIs are allowed to communicate within the Service\nPerimeter.","description_kind":"plain"},"max_items":1}},"description":"ServicePerimeter configuration. Specifies sets of resources,\nrestricted services and access levels that determine\nperimeter content and boundaries.","description_kind":"plain"},"max_items":1}},"description":"The desired Service Perimeters that should replace all existing Service Perimeters in the Access Policy.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_active_directory_domain":{"version":0,"block":{"attributes":{"admin":{"type":"string","description":"The name of delegated administrator account used to perform Active Directory operations. \nIf not specified, setupadmin will be used.","description_kind":"plain","optional":true},"authorized_networks":{"type":["set","string"],"description":"The full names of the Google Compute Engine networks the domain instance is connected to. The domain is only available on networks listed in authorizedNetworks.\nIf CIDR subnets overlap between networks, domain creation will fail.","description_kind":"plain","optional":true},"domain_name":{"type":"string","description":"The fully qualified domain name. e.g. mydomain.myorganization.com, with the restrictions, \nhttps://cloud.google.com/managed-microsoft-ad/reference/rest/v1/projects.locations.global.domains.","description_kind":"plain","required":true},"fqdn":{"type":"string","description":"The fully-qualified domain name of the exposed domain used by clients to connect to the service. \nSimilar to what would be chosen for an Active Directory set up on an internal network.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Resource labels that can contain user-provided metadata","description_kind":"plain","optional":true},"locations":{"type":["list","string"],"description":"Locations where domain needs to be provisioned. [regions][compute/docs/regions-zones/] \ne.g. us-west1 or us-east4 Service supports up to 4 locations at once. Each location will use a /26 block.","description_kind":"plain","required":true},"name":{"type":"string","description":"The unique name of the domain using the format: 'projects/{project}/locations/global/domains/{domainName}'.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"reserved_ip_range":{"type":"string","description":"The CIDR range of internal addresses that are reserved for this domain. Reserved networks must be /24 or larger. \nRanges must be unique and non-overlapping with existing subnets in authorizedNetworks","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_active_directory_domain_trust":{"version":0,"block":{"attributes":{"domain":{"type":"string","description":"The fully qualified domain name. e.g. mydomain.myorganization.com, with the restrictions, \nhttps://cloud.google.com/managed-microsoft-ad/reference/rest/v1/projects.locations.global.domains.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"selective_authentication":{"type":"bool","description":"Whether the trusted side has forest/domain wide access or selective access to an approved set of resources.","description_kind":"plain","optional":true},"target_dns_ip_addresses":{"type":["set","string"],"description":"The target DNS server IP addresses which can resolve the remote domain involved in the trust.","description_kind":"plain","required":true},"target_domain_name":{"type":"string","description":"The fully qualified target domain name which will be in trust with the current domain.","description_kind":"plain","required":true},"trust_direction":{"type":"string","description":"The trust direction, which decides if the current domain is trusted, trusting, or both. Possible values: [\"INBOUND\", \"OUTBOUND\", \"BIDIRECTIONAL\"]","description_kind":"plain","required":true},"trust_handshake_secret":{"type":"string","description":"The trust secret used for the handshake with the target domain. This will not be stored.","description_kind":"plain","required":true,"sensitive":true},"trust_type":{"type":"string","description":"The type of trust represented by the trust resource. Possible values: [\"FOREST\", \"EXTERNAL\"]","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_apigee_envgroup":{"version":0,"block":{"attributes":{"hostnames":{"type":["list","string"],"description":"Hostnames of the environment group.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource ID of the environment group.","description_kind":"plain","required":true},"org_id":{"type":"string","description":"The Apigee Organization associated with the Apigee environment group,\nin the format 'organizations/{{org_name}}'.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_apigee_envgroup_attachment":{"version":0,"block":{"attributes":{"envgroup_id":{"type":"string","description":"The Apigee environment group associated with the Apigee environment,\nin the format 'organizations/{{org_name}}/envgroups/{{envgroup_name}}'.","description_kind":"plain","required":true},"environment":{"type":"string","description":"The resource ID of the environment.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the newly created attachment (output parameter).","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_apigee_environment":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Description of the environment.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"Display name of the environment.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource ID of the environment.","description_kind":"plain","required":true},"org_id":{"type":"string","description":"The Apigee Organization associated with the Apigee environment,\nin the format 'organizations/{{org_name}}'.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_apigee_instance":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Description of the instance.","description_kind":"plain","optional":true},"disk_encryption_key_name":{"type":"string","description":"Customer Managed Encryption Key (CMEK) used for disk and volume encryption. Required for Apigee paid subscriptions only.\nUse the following format: 'projects/([^/]+)/locations/([^/]+)/keyRings/([^/]+)/cryptoKeys/([^/]+)'","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"Display name of the instance.","description_kind":"plain","optional":true},"host":{"type":"string","description":"Output only. Hostname or IP address of the exposed Apigee endpoint used by clients to connect to the service.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"Compute Engine location where the instance resides. For trial organization\nsubscriptions, the location must be a Compute Engine zone. For paid organization\nsubscriptions, it should correspond to a Compute Engine region.","description_kind":"plain","required":true},"name":{"type":"string","description":"Resource ID of the instance.","description_kind":"plain","required":true},"org_id":{"type":"string","description":"The Apigee Organization associated with the Apigee instance,\nin the format 'organizations/{{org_name}}'.","description_kind":"plain","required":true},"peering_cidr_range":{"type":"string","description":"The size of the CIDR block range that will be reserved by the instance. Possible values: [\"SLASH_16\", \"SLASH_20\", \"SLASH_22\"]","description_kind":"plain","optional":true},"port":{"type":"string","description":"Output only. Port number of the exposed Apigee endpoint.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_apigee_instance_attachment":{"version":0,"block":{"attributes":{"environment":{"type":"string","description":"The resource ID of the environment.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"The Apigee instance associated with the Apigee environment,\nin the format 'organisations/{{org_name}}/instances/{{instance_name}}'.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the newly created attachment (output parameter).","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_apigee_organization":{"version":0,"block":{"attributes":{"analytics_region":{"type":"string","description":"Primary GCP region for analytics data storage. For valid values, see [Create an Apigee organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org).","description_kind":"plain","optional":true},"authorized_network":{"type":"string","description":"Compute Engine network used for Service Networking to be peered with Apigee runtime instances.\nSee [Getting started with the Service Networking API](https://cloud.google.com/service-infrastructure/docs/service-networking/getting-started).\nValid only when 'RuntimeType' is set to CLOUD. The value can be updated only when there are no runtime instances. For example: \"default\".","description_kind":"plain","optional":true},"ca_certificate":{"type":"string","description":"Output only. Base64-encoded public certificate for the root CA of the Apigee organization.\nValid only when 'RuntimeType' is CLOUD. A base64-encoded string.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the Apigee organization.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The display name of the Apigee organization.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Output only. Name of the Apigee organization.","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project ID associated with the Apigee organization.","description_kind":"plain","required":true},"runtime_database_encryption_key_name":{"type":"string","description":"Cloud KMS key name used for encrypting the data that is stored and replicated across runtime instances.\nUpdate is not allowed after the organization is created.\nIf not specified, a Google-Managed encryption key will be used.\nValid only when 'RuntimeType' is CLOUD. For example: 'projects/foo/locations/us/keyRings/bar/cryptoKeys/baz'.","description_kind":"plain","optional":true},"runtime_type":{"type":"string","description":"Runtime type of the Apigee organization based on the Apigee subscription purchased. Default value: \"CLOUD\" Possible values: [\"CLOUD\", \"HYBRID\"]","description_kind":"plain","optional":true},"subscription_type":{"type":"string","description":"Output only. Subscription type of the Apigee organization.\nValid values include trial (free, limited, and for evaluation purposes only) or paid (full subscription has been purchased).","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_app_engine_application":{"version":0,"block":{"attributes":{"app_id":{"type":"string","description":"Identifier of the app.","description_kind":"plain","computed":true},"auth_domain":{"type":"string","description":"The domain to authenticate users with when using App Engine's User API.","description_kind":"plain","optional":true,"computed":true},"code_bucket":{"type":"string","description":"The GCS bucket code is being stored in for this app.","description_kind":"plain","computed":true},"database_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"default_bucket":{"type":"string","description":"The GCS bucket content is being stored in for this app.","description_kind":"plain","computed":true},"default_hostname":{"type":"string","description":"The default hostname for this app.","description_kind":"plain","computed":true},"gcr_domain":{"type":"string","description":"The GCR domain used for storing managed Docker images for this app.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location_id":{"type":"string","description":"The location to serve the app from.","description_kind":"plain","required":true},"name":{"type":"string","description":"Unique name of the app.","description_kind":"plain","computed":true},"project":{"type":"string","description":"The project ID to create the application under.","description_kind":"plain","optional":true,"computed":true},"serving_status":{"type":"string","description":"The serving status of the app.","description_kind":"plain","optional":true,"computed":true},"url_dispatch_rule":{"type":["list",["object",{"domain":"string","path":"string","service":"string"}]],"description":"A list of dispatch rule blocks. Each block has a domain, path, and service field.","description_kind":"plain","computed":true}},"block_types":{"feature_settings":{"nesting_mode":"list","block":{"attributes":{"split_health_checks":{"type":"bool","description_kind":"plain","required":true}},"description":"A block of optional settings to configure specific App Engine features:","description_kind":"plain"},"max_items":1},"iap":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Adapted for use with the app","description_kind":"plain","optional":true},"oauth2_client_id":{"type":"string","description":"OAuth2 client ID to use for the authentication flow.","description_kind":"plain","required":true},"oauth2_client_secret":{"type":"string","description":"OAuth2 client secret to use for the authentication flow. The SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 field.","description_kind":"plain","required":true,"sensitive":true},"oauth2_client_secret_sha256":{"type":"string","description":"Hex-encoded SHA-256 hash of the client secret.","description_kind":"plain","computed":true,"sensitive":true}},"description":"Settings for enabling Cloud Identity Aware Proxy","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_app_engine_application_url_dispatch_rules":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"dispatch_rules":{"nesting_mode":"list","block":{"attributes":{"domain":{"type":"string","description":"Domain name to match against. The wildcard \"*\" is supported if specified before a period: \"*.\".\nDefaults to matching all domains: \"*\".","description_kind":"plain","optional":true},"path":{"type":"string","description":"Pathname within the host. Must start with a \"/\". A single \"*\" can be included at the end of the path.\nThe sum of the lengths of the domain and path may not exceed 100 characters.","description_kind":"plain","required":true},"service":{"type":"string","description":"Pathname within the host. Must start with a \"/\". A single \"*\" can be included at the end of the path.\nThe sum of the lengths of the domain and path may not exceed 100 characters.","description_kind":"plain","required":true}},"description":"Rules to match an HTTP request and dispatch that request to a service.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_app_engine_domain_mapping":{"version":0,"block":{"attributes":{"domain_name":{"type":"string","description":"Relative name of the domain serving the application. Example: example.com.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Full path to the DomainMapping resource in the API. Example: apps/myapp/domainMapping/example.com.","description_kind":"plain","computed":true},"override_strategy":{"type":"string","description":"Whether the domain creation should override any existing mappings for this domain.\nBy default, overrides are rejected. Default value: \"STRICT\" Possible values: [\"STRICT\", \"OVERRIDE\"]","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_records":{"type":["list",["object",{"name":"string","rrdata":"string","type":"string"}]],"description":"The resource records required to configure this domain mapping. These records must be added to the domain's DNS\nconfiguration in order to serve the application via this domain mapping.","description_kind":"plain","computed":true}},"block_types":{"ssl_settings":{"nesting_mode":"list","block":{"attributes":{"certificate_id":{"type":"string","description":"ID of the AuthorizedCertificate resource configuring SSL for the application. Clearing this field will\nremove SSL support.\nBy default, a managed certificate is automatically created for every domain mapping. To omit SSL support\nor to configure SSL manually, specify 'SslManagementType.MANUAL' on a 'CREATE' or 'UPDATE' request. You must be\nauthorized to administer the 'AuthorizedCertificate' resource to manually map it to a DomainMapping resource.\nExample: 12345.","description_kind":"plain","optional":true,"computed":true},"pending_managed_certificate_id":{"type":"string","description":"ID of the managed 'AuthorizedCertificate' resource currently being provisioned, if applicable. Until the new\nmanaged certificate has been successfully provisioned, the previous SSL state will be preserved. Once the\nprovisioning process completes, the 'certificateId' field will reflect the new managed certificate and this\nfield will be left empty. To remove SSL support while there is still a pending managed certificate, clear the\n'certificateId' field with an update request.","description_kind":"plain","computed":true},"ssl_management_type":{"type":"string","description":"SSL management type for this domain. If 'AUTOMATIC', a managed certificate is automatically provisioned.\nIf 'MANUAL', 'certificateId' must be manually specified in order to configure SSL for this domain. Possible values: [\"AUTOMATIC\", \"MANUAL\"]","description_kind":"plain","required":true}},"description":"SSL configuration for this domain. If unconfigured, this domain will not serve with SSL.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_app_engine_firewall_rule":{"version":0,"block":{"attributes":{"action":{"type":"string","description":"The action to take if this rule matches. Possible values: [\"UNSPECIFIED_ACTION\", \"ALLOW\", \"DENY\"]","description_kind":"plain","required":true},"description":{"type":"string","description":"An optional string description of this rule.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"priority":{"type":"number","description":"A positive integer that defines the order of rule evaluation.\nRules with the lowest priority are evaluated first.\n\nA default rule at priority Int32.MaxValue matches all IPv4 and\nIPv6 traffic when no previous rule matches. Only the action of\nthis rule can be modified by the user.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"source_range":{"type":"string","description":"IP address or range, defined using CIDR notation, of requests that this rule applies to.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_app_engine_flexible_app_version":{"version":0,"block":{"attributes":{"beta_settings":{"type":["map","string"],"description":"Metadata settings that are supplied to this version to enable beta runtime features.","description_kind":"plain","optional":true},"default_expiration":{"type":"string","description":"Duration that static files should be cached by web proxies and browsers.\nOnly applicable if the corresponding StaticFilesHandler does not specify its own expiration time.","description_kind":"plain","optional":true},"delete_service_on_destroy":{"type":"bool","description_kind":"plain","optional":true},"env_variables":{"type":["map","string"],"description":"Environment variables available to the application. As these are not returned in the API request, Terraform will not detect any changes made outside of the Terraform config.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"inbound_services":{"type":["set","string"],"description":"A list of the types of messages that this application is able to receive. Possible values: [\"INBOUND_SERVICE_MAIL\", \"INBOUND_SERVICE_MAIL_BOUNCE\", \"INBOUND_SERVICE_XMPP_ERROR\", \"INBOUND_SERVICE_XMPP_MESSAGE\", \"INBOUND_SERVICE_XMPP_SUBSCRIBE\", \"INBOUND_SERVICE_XMPP_PRESENCE\", \"INBOUND_SERVICE_CHANNEL_PRESENCE\", \"INBOUND_SERVICE_WARMUP\"]","description_kind":"plain","optional":true},"instance_class":{"type":"string","description":"Instance class that is used to run this version. Valid values are\nAutomaticScaling: F1, F2, F4, F4_1G\nManualScaling: B1, B2, B4, B8, B4_1G\nDefaults to F1 for AutomaticScaling and B1 for ManualScaling.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Full path to the Version resource in the API. Example, \"v1\".","description_kind":"plain","computed":true},"nobuild_files_regex":{"type":"string","description":"Files that match this pattern will not be built into this version. Only applicable for Go runtimes.","description_kind":"plain","optional":true},"noop_on_destroy":{"type":"bool","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"runtime":{"type":"string","description":"Desired runtime. Example python27.","description_kind":"plain","required":true},"runtime_api_version":{"type":"string","description":"The version of the API in the given runtime environment.\nPlease see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard//config/appref","description_kind":"plain","optional":true,"computed":true},"runtime_channel":{"type":"string","description":"The channel of the runtime to use. Only available for some runtimes.","description_kind":"plain","optional":true},"runtime_main_executable_path":{"type":"string","description":"The path or name of the app's main executable.","description_kind":"plain","optional":true},"service":{"type":"string","description":"AppEngine service resource. Can contain numbers, letters, and hyphens.","description_kind":"plain","required":true},"serving_status":{"type":"string","description":"Current serving status of this version. Only the versions with a SERVING status create instances and can be billed. Default value: \"SERVING\" Possible values: [\"SERVING\", \"STOPPED\"]","description_kind":"plain","optional":true},"version_id":{"type":"string","description":"Relative name of the version within the service. For example, 'v1'. Version names can contain only lowercase letters, numbers, or hyphens.\nReserved names,\"default\", \"latest\", and any name with the prefix \"ah-\".","description_kind":"plain","optional":true}},"block_types":{"api_config":{"nesting_mode":"list","block":{"attributes":{"auth_fail_action":{"type":"string","description":"Action to take when users access resources that require authentication. Default value: \"AUTH_FAIL_ACTION_REDIRECT\" Possible values: [\"AUTH_FAIL_ACTION_REDIRECT\", \"AUTH_FAIL_ACTION_UNAUTHORIZED\"]","description_kind":"plain","optional":true},"login":{"type":"string","description":"Level of login required to access this resource. Default value: \"LOGIN_OPTIONAL\" Possible values: [\"LOGIN_OPTIONAL\", \"LOGIN_ADMIN\", \"LOGIN_REQUIRED\"]","description_kind":"plain","optional":true},"script":{"type":"string","description":"Path to the script from the application root directory.","description_kind":"plain","required":true},"security_level":{"type":"string","description":"Security (HTTPS) enforcement for this URL. Possible values: [\"SECURE_DEFAULT\", \"SECURE_NEVER\", \"SECURE_OPTIONAL\", \"SECURE_ALWAYS\"]","description_kind":"plain","optional":true},"url":{"type":"string","description":"URL to serve the endpoint at.","description_kind":"plain","optional":true}},"description":"Serving configuration for Google Cloud Endpoints.","description_kind":"plain"},"max_items":1},"automatic_scaling":{"nesting_mode":"list","block":{"attributes":{"cool_down_period":{"type":"string","description":"The time period that the Autoscaler should wait before it starts collecting information from a new instance.\nThis prevents the autoscaler from collecting information when the instance is initializing,\nduring which the collected usage would not be reliable. Default: 120s","description_kind":"plain","optional":true},"max_concurrent_requests":{"type":"number","description":"Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.\n\nDefaults to a runtime-specific value.","description_kind":"plain","optional":true,"computed":true},"max_idle_instances":{"type":"number","description":"Maximum number of idle instances that should be maintained for this version.","description_kind":"plain","optional":true},"max_pending_latency":{"type":"string","description":"Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.","description_kind":"plain","optional":true},"max_total_instances":{"type":"number","description":"Maximum number of instances that should be started to handle requests for this version. Default: 20","description_kind":"plain","optional":true},"min_idle_instances":{"type":"number","description":"Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.","description_kind":"plain","optional":true},"min_pending_latency":{"type":"string","description":"Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.","description_kind":"plain","optional":true},"min_total_instances":{"type":"number","description":"Minimum number of running instances that should be maintained for this version. Default: 2","description_kind":"plain","optional":true}},"block_types":{"cpu_utilization":{"nesting_mode":"list","block":{"attributes":{"aggregation_window_length":{"type":"string","description":"Period of time over which CPU utilization is calculated.","description_kind":"plain","optional":true},"target_utilization":{"type":"number","description":"Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.","description_kind":"plain","required":true}},"description":"Target scaling by CPU usage.","description_kind":"plain"},"min_items":1,"max_items":1},"disk_utilization":{"nesting_mode":"list","block":{"attributes":{"target_read_bytes_per_second":{"type":"number","description":"Target bytes read per second.","description_kind":"plain","optional":true},"target_read_ops_per_second":{"type":"number","description":"Target ops read per seconds.","description_kind":"plain","optional":true},"target_write_bytes_per_second":{"type":"number","description":"Target bytes written per second.","description_kind":"plain","optional":true},"target_write_ops_per_second":{"type":"number","description":"Target ops written per second.","description_kind":"plain","optional":true}},"description":"Target scaling by disk usage.","description_kind":"plain"},"max_items":1},"network_utilization":{"nesting_mode":"list","block":{"attributes":{"target_received_bytes_per_second":{"type":"number","description":"Target bytes received per second.","description_kind":"plain","optional":true},"target_received_packets_per_second":{"type":"number","description":"Target packets received per second.","description_kind":"plain","optional":true},"target_sent_bytes_per_second":{"type":"number","description":"Target bytes sent per second.","description_kind":"plain","optional":true},"target_sent_packets_per_second":{"type":"number","description":"Target packets sent per second.","description_kind":"plain","optional":true}},"description":"Target scaling by network usage.","description_kind":"plain"},"max_items":1},"request_utilization":{"nesting_mode":"list","block":{"attributes":{"target_concurrent_requests":{"type":"number","description":"Target number of concurrent requests.","description_kind":"plain","optional":true},"target_request_count_per_second":{"type":"string","description":"Target requests per second.","description_kind":"plain","optional":true}},"description":"Target scaling by request utilization.","description_kind":"plain"},"max_items":1}},"description":"Automatic scaling is based on request rate, response latencies, and other application metrics.","description_kind":"plain"},"max_items":1},"deployment":{"nesting_mode":"list","block":{"block_types":{"cloud_build_options":{"nesting_mode":"list","block":{"attributes":{"app_yaml_path":{"type":"string","description":"Path to the yaml file used in deployment, used to determine runtime configuration details.","description_kind":"plain","required":true},"cloud_build_timeout":{"type":"string","description":"The Cloud Build timeout used as part of any dependent builds performed by version creation. Defaults to 10 minutes.\n\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true}},"description":"Options for the build operations performed as a part of the version deployment. Only applicable when creating a version using source code directly.","description_kind":"plain"},"max_items":1},"container":{"nesting_mode":"list","block":{"attributes":{"image":{"type":"string","description":"URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest.\nExamples: \"gcr.io/my-project/image:tag\" or \"gcr.io/my-project/image@digest\"","description_kind":"plain","required":true}},"description":"The Docker image for the container that runs the version.","description_kind":"plain"},"max_items":1},"files":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"sha1_sum":{"type":"string","description":"SHA1 checksum of the file","description_kind":"plain","optional":true},"source_url":{"type":"string","description":"Source URL","description_kind":"plain","required":true}},"description":"Manifest of the files stored in Google Cloud Storage that are included as part of this version.\nAll files must be readable using the credentials supplied with this call.","description_kind":"plain"}},"zip":{"nesting_mode":"list","block":{"attributes":{"files_count":{"type":"number","description":"files count","description_kind":"plain","optional":true},"source_url":{"type":"string","description":"Source URL","description_kind":"plain","required":true}},"description":"Zip File","description_kind":"plain"},"max_items":1}},"description":"Code and application artifacts that make up this version.","description_kind":"plain"},"max_items":1},"endpoints_api_service":{"nesting_mode":"list","block":{"attributes":{"config_id":{"type":"string","description":"Endpoints service configuration ID as specified by the Service Management API. For example \"2016-09-19r1\".\n\nBy default, the rollout strategy for Endpoints is \"FIXED\". This means that Endpoints starts up with a particular configuration ID.\nWhen a new configuration is rolled out, Endpoints must be given the new configuration ID. The configId field is used to give the configuration ID\nand is required in this case.\n\nEndpoints also has a rollout strategy called \"MANAGED\". When using this, Endpoints fetches the latest configuration and does not need\nthe configuration ID. In this case, configId must be omitted.","description_kind":"plain","optional":true},"disable_trace_sampling":{"type":"bool","description":"Enable or disable trace sampling. By default, this is set to false for enabled.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Endpoints service name which is the name of the \"service\" resource in the Service Management API.\nFor example \"myapi.endpoints.myproject.cloud.goog\"","description_kind":"plain","required":true},"rollout_strategy":{"type":"string","description":"Endpoints rollout strategy. If FIXED, configId must be specified. If MANAGED, configId must be omitted. Default value: \"FIXED\" Possible values: [\"FIXED\", \"MANAGED\"]","description_kind":"plain","optional":true}},"description":"Code and application artifacts that make up this version.","description_kind":"plain"},"max_items":1},"entrypoint":{"nesting_mode":"list","block":{"attributes":{"shell":{"type":"string","description":"The format should be a shell command that can be fed to bash -c.","description_kind":"plain","required":true}},"description":"The entrypoint for the application.","description_kind":"plain"},"max_items":1},"handlers":{"nesting_mode":"list","block":{"attributes":{"auth_fail_action":{"type":"string","description":"Actions to take when the user is not logged in. Possible values: [\"AUTH_FAIL_ACTION_REDIRECT\", \"AUTH_FAIL_ACTION_UNAUTHORIZED\"]","description_kind":"plain","optional":true},"login":{"type":"string","description":"Methods to restrict access to a URL based on login status. Possible values: [\"LOGIN_OPTIONAL\", \"LOGIN_ADMIN\", \"LOGIN_REQUIRED\"]","description_kind":"plain","optional":true},"redirect_http_response_code":{"type":"string","description":"30x code to use when performing redirects for the secure field. Possible values: [\"REDIRECT_HTTP_RESPONSE_CODE_301\", \"REDIRECT_HTTP_RESPONSE_CODE_302\", \"REDIRECT_HTTP_RESPONSE_CODE_303\", \"REDIRECT_HTTP_RESPONSE_CODE_307\"]","description_kind":"plain","optional":true},"security_level":{"type":"string","description":"Security (HTTPS) enforcement for this URL. Possible values: [\"SECURE_DEFAULT\", \"SECURE_NEVER\", \"SECURE_OPTIONAL\", \"SECURE_ALWAYS\"]","description_kind":"plain","optional":true},"url_regex":{"type":"string","description":"URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings.\nAll URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.","description_kind":"plain","optional":true}},"block_types":{"script":{"nesting_mode":"list","block":{"attributes":{"script_path":{"type":"string","description":"Path to the script from the application root directory.","description_kind":"plain","required":true}},"description":"Executes a script to handle the requests that match this URL pattern.\nOnly the auto value is supported for Node.js in the App Engine standard environment, for example \"script:\" \"auto\".","description_kind":"plain"},"max_items":1},"static_files":{"nesting_mode":"list","block":{"attributes":{"application_readable":{"type":"bool","description":"Whether files should also be uploaded as code data. By default, files declared in static file handlers are\nuploaded as static data and are only served to end users; they cannot be read by the application. If enabled,\nuploads are charged against both your code and static data storage resource quotas.","description_kind":"plain","optional":true},"expiration":{"type":"string","description":"Time a static file served by this handler should be cached by web proxies and browsers.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example \"3.5s\".\nDefault is '0s'","description_kind":"plain","optional":true},"http_headers":{"type":["map","string"],"description":"HTTP headers to use for all responses from these URLs.\nAn object containing a list of \"key:value\" value pairs.\".","description_kind":"plain","optional":true},"mime_type":{"type":"string","description":"MIME type used to serve all files served by this handler.\nDefaults to file-specific MIME types, which are derived from each file's filename extension.","description_kind":"plain","optional":true},"path":{"type":"string","description":"Path to the static files matched by the URL pattern, from the application root directory.\nThe path can refer to text matched in groupings in the URL pattern.","description_kind":"plain","optional":true},"require_matching_file":{"type":"bool","description":"Whether this handler should match the request if the file referenced by the handler does not exist.","description_kind":"plain","optional":true},"upload_path_regex":{"type":"string","description":"Regular expression that matches the file paths for all files that should be referenced by this handler.","description_kind":"plain","optional":true}},"description":"Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files.\nStatic file handlers describe which files in the application directory are static files, and which URLs serve them.","description_kind":"plain"},"max_items":1}},"description":"An ordered list of URL-matching patterns that should be applied to incoming requests.\nThe first matching URL handles the request and other request handlers are not attempted.","description_kind":"plain"}},"liveness_check":{"nesting_mode":"list","block":{"attributes":{"check_interval":{"type":"string","description":"Interval between health checks.","description_kind":"plain","optional":true},"failure_threshold":{"type":"number","description":"Number of consecutive failed checks required before considering the VM unhealthy. Default: 4.","description_kind":"plain","optional":true},"host":{"type":"string","description":"Host header to send when performing a HTTP Readiness check. Example: \"myapp.appspot.com\"","description_kind":"plain","optional":true},"initial_delay":{"type":"string","description":"The initial delay before starting to execute the checks. Default: \"300s\"","description_kind":"plain","optional":true},"path":{"type":"string","description":"The request path.","description_kind":"plain","required":true},"success_threshold":{"type":"number","description":"Number of consecutive successful checks required before considering the VM healthy. Default: 2.","description_kind":"plain","optional":true},"timeout":{"type":"string","description":"Time before the check is considered failed. Default: \"4s\"","description_kind":"plain","optional":true}},"description":"Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances.","description_kind":"plain"},"min_items":1,"max_items":1},"manual_scaling":{"nesting_mode":"list","block":{"attributes":{"instances":{"type":"number","description":"Number of instances to assign to the service at the start.\n\n**Note:** When managing the number of instances at runtime through the App Engine Admin API or the (now deprecated) Python 2\nModules API set_num_instances() you must use 'lifecycle.ignore_changes = [\"manual_scaling\"[0].instances]' to prevent drift detection.","description_kind":"plain","required":true}},"description":"A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.","description_kind":"plain"},"max_items":1},"network":{"nesting_mode":"list","block":{"attributes":{"forwarded_ports":{"type":["list","string"],"description":"List of ports, or port pairs, to forward from the virtual machine to the application container.","description_kind":"plain","optional":true},"instance_tag":{"type":"string","description":"Tag to apply to the instance during creation.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Google Compute Engine network where the virtual machines are created. Specify the short name, not the resource path.","description_kind":"plain","required":true},"session_affinity":{"type":"bool","description":"Enable session affinity.","description_kind":"plain","optional":true},"subnetwork":{"type":"string","description":"Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.\n\nIf the network that the instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.\nIf the network that the instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetworkName) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.\nIf the network that the instance is being created in is a custom Subnet Mode Network, then the subnetworkName must be specified and the IP address is created from the IPCidrRange of the subnetwork.\nIf specified, the subnetwork must exist in the same region as the App Engine flexible environment application.","description_kind":"plain","optional":true}},"description":"Extra network settings","description_kind":"plain"},"max_items":1},"readiness_check":{"nesting_mode":"list","block":{"attributes":{"app_start_timeout":{"type":"string","description":"A maximum time limit on application initialization, measured from moment the application successfully\nreplies to a healthcheck until it is ready to serve traffic. Default: \"300s\"","description_kind":"plain","optional":true},"check_interval":{"type":"string","description":"Interval between health checks. Default: \"5s\".","description_kind":"plain","optional":true},"failure_threshold":{"type":"number","description":"Number of consecutive failed checks required before removing traffic. Default: 2.","description_kind":"plain","optional":true},"host":{"type":"string","description":"Host header to send when performing a HTTP Readiness check. Example: \"myapp.appspot.com\"","description_kind":"plain","optional":true},"path":{"type":"string","description":"The request path.","description_kind":"plain","required":true},"success_threshold":{"type":"number","description":"Number of consecutive successful checks required before receiving traffic. Default: 2.","description_kind":"plain","optional":true},"timeout":{"type":"string","description":"Time before the check is considered failed. Default: \"4s\"","description_kind":"plain","optional":true}},"description":"Configures readiness health checking for instances. Unhealthy instances are not put into the backend traffic rotation.","description_kind":"plain"},"min_items":1,"max_items":1},"resources":{"nesting_mode":"list","block":{"attributes":{"cpu":{"type":"number","description":"Number of CPU cores needed.","description_kind":"plain","optional":true},"disk_gb":{"type":"number","description":"Disk size (GB) needed.","description_kind":"plain","optional":true},"memory_gb":{"type":"number","description":"Memory (GB) needed.","description_kind":"plain","optional":true}},"block_types":{"volumes":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Unique name for the volume.","description_kind":"plain","required":true},"size_gb":{"type":"number","description":"Volume size in gigabytes.","description_kind":"plain","required":true},"volume_type":{"type":"string","description":"Underlying volume type, e.g. 'tmpfs'.","description_kind":"plain","required":true}},"description":"List of ports, or port pairs, to forward from the virtual machine to the application container.","description_kind":"plain"}}},"description":"Machine resources for a version.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"vpc_access_connector":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Full Serverless VPC Access Connector name e.g. /projects/my-project/locations/us-central1/connectors/c1.","description_kind":"plain","required":true}},"description":"Enables VPC connectivity for standard apps.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_app_engine_service_network_settings":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service":{"type":"string","description":"The name of the service these settings apply to.","description_kind":"plain","required":true}},"block_types":{"network_settings":{"nesting_mode":"list","block":{"attributes":{"ingress_traffic_allowed":{"type":"string","description":"The ingress settings for version or service. Default value: \"INGRESS_TRAFFIC_ALLOWED_UNSPECIFIED\" Possible values: [\"INGRESS_TRAFFIC_ALLOWED_UNSPECIFIED\", \"INGRESS_TRAFFIC_ALLOWED_ALL\", \"INGRESS_TRAFFIC_ALLOWED_INTERNAL_ONLY\", \"INGRESS_TRAFFIC_ALLOWED_INTERNAL_AND_LB\"]","description_kind":"plain","optional":true}},"description":"Ingress settings for this service. Will apply to all versions.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_app_engine_service_split_traffic":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"migrate_traffic":{"type":"bool","description":"If set to true traffic will be migrated to this version.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service":{"type":"string","description":"The name of the service these settings apply to.","description_kind":"plain","required":true}},"block_types":{"split":{"nesting_mode":"list","block":{"attributes":{"allocations":{"type":["map","string"],"description":"Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.","description_kind":"plain","required":true},"shard_by":{"type":"string","description":"Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed. Possible values: [\"UNSPECIFIED\", \"COOKIE\", \"IP\", \"RANDOM\"]","description_kind":"plain","optional":true}},"description":"Mapping that defines fractional HTTP traffic diversion to different versions within the service.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_app_engine_standard_app_version":{"version":0,"block":{"attributes":{"delete_service_on_destroy":{"type":"bool","description_kind":"plain","optional":true},"env_variables":{"type":["map","string"],"description":"Environment variables available to the application.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"inbound_services":{"type":["set","string"],"description":"A list of the types of messages that this application is able to receive. Possible values: [\"INBOUND_SERVICE_MAIL\", \"INBOUND_SERVICE_MAIL_BOUNCE\", \"INBOUND_SERVICE_XMPP_ERROR\", \"INBOUND_SERVICE_XMPP_MESSAGE\", \"INBOUND_SERVICE_XMPP_SUBSCRIBE\", \"INBOUND_SERVICE_XMPP_PRESENCE\", \"INBOUND_SERVICE_CHANNEL_PRESENCE\", \"INBOUND_SERVICE_WARMUP\"]","description_kind":"plain","optional":true},"instance_class":{"type":"string","description":"Instance class that is used to run this version. Valid values are\nAutomaticScaling: F1, F2, F4, F4_1G\nBasicScaling or ManualScaling: B1, B2, B4, B4_1G, B8\nDefaults to F1 for AutomaticScaling and B2 for ManualScaling and BasicScaling. If no scaling is specified, AutomaticScaling is chosen.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Full path to the Version resource in the API. Example, \"v1\".","description_kind":"plain","computed":true},"noop_on_destroy":{"type":"bool","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"runtime":{"type":"string","description":"Desired runtime. Example python27.","description_kind":"plain","required":true},"runtime_api_version":{"type":"string","description":"The version of the API in the given runtime environment.\nPlease see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard//config/appref","description_kind":"plain","optional":true},"service":{"type":"string","description":"AppEngine service resource","description_kind":"plain","required":true},"threadsafe":{"type":"bool","description":"Whether multiple requests can be dispatched to this version at once.","description_kind":"plain","optional":true},"version_id":{"type":"string","description":"Relative name of the version within the service. For example, 'v1'. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names,\"default\", \"latest\", and any name with the prefix \"ah-\".","description_kind":"plain","optional":true}},"block_types":{"automatic_scaling":{"nesting_mode":"list","block":{"attributes":{"max_concurrent_requests":{"type":"number","description":"Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.\n\nDefaults to a runtime-specific value.","description_kind":"plain","optional":true},"max_idle_instances":{"type":"number","description":"Maximum number of idle instances that should be maintained for this version.","description_kind":"plain","optional":true},"max_pending_latency":{"type":"string","description":"Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true},"min_idle_instances":{"type":"number","description":"Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.","description_kind":"plain","optional":true},"min_pending_latency":{"type":"string","description":"Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true}},"block_types":{"standard_scheduler_settings":{"nesting_mode":"list","block":{"attributes":{"max_instances":{"type":"number","description":"Maximum number of instances to run for this version. Set to zero to disable maxInstances configuration.","description_kind":"plain","optional":true},"min_instances":{"type":"number","description":"Minimum number of instances to run for this version. Set to zero to disable minInstances configuration.","description_kind":"plain","optional":true},"target_cpu_utilization":{"type":"number","description":"Target CPU utilization ratio to maintain when scaling. Should be a value in the range [0.50, 0.95], zero, or a negative value.","description_kind":"plain","optional":true},"target_throughput_utilization":{"type":"number","description":"Target throughput utilization ratio to maintain when scaling. Should be a value in the range [0.50, 0.95], zero, or a negative value.","description_kind":"plain","optional":true}},"description":"Scheduler settings for standard environment.","description_kind":"plain"},"max_items":1}},"description":"Automatic scaling is based on request rate, response latencies, and other application metrics.","description_kind":"plain"},"max_items":1},"basic_scaling":{"nesting_mode":"list","block":{"attributes":{"idle_timeout":{"type":"string","description":"Duration of time after the last request that an instance must wait before the instance is shut down.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\". Defaults to 900s.","description_kind":"plain","optional":true},"max_instances":{"type":"number","description":"Maximum number of instances to create for this version. Must be in the range [1.0, 200.0].","description_kind":"plain","required":true}},"description":"Basic scaling creates instances when your application receives requests. Each instance will be shut down when the application becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.","description_kind":"plain"},"max_items":1},"deployment":{"nesting_mode":"list","block":{"block_types":{"files":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"sha1_sum":{"type":"string","description":"SHA1 checksum of the file","description_kind":"plain","optional":true},"source_url":{"type":"string","description":"Source URL","description_kind":"plain","required":true}},"description":"Manifest of the files stored in Google Cloud Storage that are included as part of this version.\nAll files must be readable using the credentials supplied with this call.","description_kind":"plain"}},"zip":{"nesting_mode":"list","block":{"attributes":{"files_count":{"type":"number","description":"files count","description_kind":"plain","optional":true},"source_url":{"type":"string","description":"Source URL","description_kind":"plain","required":true}},"description":"Zip File","description_kind":"plain"},"max_items":1}},"description":"Code and application artifacts that make up this version.","description_kind":"plain"},"min_items":1,"max_items":1},"entrypoint":{"nesting_mode":"list","block":{"attributes":{"shell":{"type":"string","description":"The format should be a shell command that can be fed to bash -c.","description_kind":"plain","required":true}},"description":"The entrypoint for the application.","description_kind":"plain"},"min_items":1,"max_items":1},"handlers":{"nesting_mode":"list","block":{"attributes":{"auth_fail_action":{"type":"string","description":"Actions to take when the user is not logged in. Possible values: [\"AUTH_FAIL_ACTION_REDIRECT\", \"AUTH_FAIL_ACTION_UNAUTHORIZED\"]","description_kind":"plain","optional":true},"login":{"type":"string","description":"Methods to restrict access to a URL based on login status. Possible values: [\"LOGIN_OPTIONAL\", \"LOGIN_ADMIN\", \"LOGIN_REQUIRED\"]","description_kind":"plain","optional":true},"redirect_http_response_code":{"type":"string","description":"30x code to use when performing redirects for the secure field. Possible values: [\"REDIRECT_HTTP_RESPONSE_CODE_301\", \"REDIRECT_HTTP_RESPONSE_CODE_302\", \"REDIRECT_HTTP_RESPONSE_CODE_303\", \"REDIRECT_HTTP_RESPONSE_CODE_307\"]","description_kind":"plain","optional":true},"security_level":{"type":"string","description":"Security (HTTPS) enforcement for this URL. Possible values: [\"SECURE_DEFAULT\", \"SECURE_NEVER\", \"SECURE_OPTIONAL\", \"SECURE_ALWAYS\"]","description_kind":"plain","optional":true},"url_regex":{"type":"string","description":"URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings.\nAll URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.","description_kind":"plain","optional":true}},"block_types":{"script":{"nesting_mode":"list","block":{"attributes":{"script_path":{"type":"string","description":"Path to the script from the application root directory.","description_kind":"plain","required":true}},"description":"Executes a script to handle the requests that match this URL pattern.\nOnly the auto value is supported for Node.js in the App Engine standard environment, for example \"script:\" \"auto\".","description_kind":"plain"},"max_items":1},"static_files":{"nesting_mode":"list","block":{"attributes":{"application_readable":{"type":"bool","description":"Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as\nstatic data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged\nagainst both your code and static data storage resource quotas.","description_kind":"plain","optional":true},"expiration":{"type":"string","description":"Time a static file served by this handler should be cached by web proxies and browsers.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example \"3.5s\".","description_kind":"plain","optional":true},"http_headers":{"type":["map","string"],"description":"HTTP headers to use for all responses from these URLs.\nAn object containing a list of \"key:value\" value pairs.\".","description_kind":"plain","optional":true},"mime_type":{"type":"string","description":"MIME type used to serve all files served by this handler.\nDefaults to file-specific MIME types, which are derived from each file's filename extension.","description_kind":"plain","optional":true},"path":{"type":"string","description":"Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.","description_kind":"plain","optional":true},"require_matching_file":{"type":"bool","description":"Whether this handler should match the request if the file referenced by the handler does not exist.","description_kind":"plain","optional":true},"upload_path_regex":{"type":"string","description":"Regular expression that matches the file paths for all files that should be referenced by this handler.","description_kind":"plain","optional":true}},"description":"Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them.","description_kind":"plain"},"max_items":1}},"description":"An ordered list of URL-matching patterns that should be applied to incoming requests.\nThe first matching URL handles the request and other request handlers are not attempted.","description_kind":"plain"}},"libraries":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the library. Example \"django\".","description_kind":"plain","optional":true},"version":{"type":"string","description":"Version of the library to select, or \"latest\".","description_kind":"plain","optional":true}},"description":"Configuration for third-party Python runtime libraries that are required by the application.","description_kind":"plain"}},"manual_scaling":{"nesting_mode":"list","block":{"attributes":{"instances":{"type":"number","description":"Number of instances to assign to the service at the start.\n\n**Note:** When managing the number of instances at runtime through the App Engine Admin API or the (now deprecated) Python 2\nModules API set_num_instances() you must use 'lifecycle.ignore_changes = [\"manual_scaling\"[0].instances]' to prevent drift detection.","description_kind":"plain","required":true}},"description":"A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"vpc_access_connector":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Full Serverless VPC Access Connector name e.g. /projects/my-project/locations/us-central1/connectors/c1.","description_kind":"plain","required":true}},"description":"Enables VPC connectivity for standard apps.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_assured_workloads_workload":{"version":0,"block":{"attributes":{"billing_account":{"type":"string","description":"Required. Input only. The billing account used for the resources which are direct children of workload. This billing account is initially associated with the resources created as part of Workload creation. After the initial creation of these resources, the customer can change the assigned billing account. The resource name has the form `billingAccounts/{billing_account_id}`. For example, 'billingAccounts/012345-567890-ABCDEF`.","description_kind":"plain","required":true},"compliance_regime":{"type":"string","description":"Required. Immutable. Compliance Regime associated with this workload. Possible values: COMPLIANCE_REGIME_UNSPECIFIED, IL4, CJIS, FEDRAMP_HIGH, FEDRAMP_MODERATE, US_REGIONAL_ACCESS","description_kind":"plain","required":true},"create_time":{"type":"string","description":"Output only. Immutable. The Workload creation timestamp.","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"Required. The user-assigned display name of the Workload. When present it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, and spaces. Example: My Workload","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Optional. Labels applied to the workload.","description_kind":"plain","optional":true},"location":{"type":"string","description":"The location for the resource","description_kind":"plain","required":true},"name":{"type":"string","description":"Output only. The resource name of the workload.","description_kind":"plain","computed":true},"organization":{"type":"string","description":"The organization for the resource","description_kind":"plain","required":true},"provisioned_resources_parent":{"type":"string","description":"Input only. The parent resource for the resources managed by this Assured Workload. May be either an organization or a folder. Must be the same or a child of the Workload parent. If not specified all resources are created under the Workload parent. Formats: folders/{folder_id}, organizations/{organization_id}","description_kind":"plain","optional":true},"resources":{"type":["list",["object",{"resource_id":"number","resource_type":"string"}]],"description":"Output only. The resources associated with this workload. These resources will be created when creating the workload. If any of the projects already exist, the workload creation will fail. Always read only.","description_kind":"plain","computed":true}},"block_types":{"kms_settings":{"nesting_mode":"list","block":{"attributes":{"next_rotation_time":{"type":"string","description":"Required. Input only. Immutable. The time at which the Key Management Service will automatically create a new version of the crypto key and mark it as the primary.","description_kind":"plain","required":true},"rotation_period":{"type":"string","description":"Required. Input only. Immutable. will be advanced by this period when the Key Management Service automatically rotates a key. Must be at least 24 hours and at most 876,000 hours.","description_kind":"plain","required":true}},"description":"Input only. Settings used to create a CMEK crypto key. When set a project with a KMS CMEK key is provisioned. This field is mandatory for a subset of Compliance Regimes.","description_kind":"plain"},"max_items":1},"resource_settings":{"nesting_mode":"list","block":{"attributes":{"resource_id":{"type":"string","description":"Resource identifier. For a project this represents project_number. If the project is already taken, the workload creation will fail.","description_kind":"plain","optional":true},"resource_type":{"type":"string","description":"Indicates the type of resource. This field should be specified to correspond the id to the right project type (CONSUMER_PROJECT or ENCRYPTION_KEYS_PROJECT) Possible values: RESOURCE_TYPE_UNSPECIFIED, CONSUMER_PROJECT, ENCRYPTION_KEYS_PROJECT, KEYRING, CONSUMER_FOLDER","description_kind":"plain","optional":true}},"description":"Input only. Resource properties that are used to customize workload resources. These properties (such as custom project id) will be used to create workload resources if possible. This field is optional.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_bigquery_data_transfer_config":{"version":0,"block":{"attributes":{"data_refresh_window_days":{"type":"number","description":"The number of days to look back to automatically refresh the data.\nFor example, if dataRefreshWindowDays = 10, then every day BigQuery\nreingests data for [today-10, today-1], rather than ingesting data for\njust [today-1]. Only valid if the data source supports the feature.\nSet the value to 0 to use the default value.","description_kind":"plain","optional":true},"data_source_id":{"type":"string","description":"The data source id. Cannot be changed once the transfer config is created.","description_kind":"plain","required":true},"destination_dataset_id":{"type":"string","description":"The BigQuery target dataset id.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"When set to true, no runs are scheduled for a given transfer.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The user specified display name for the transfer config.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The geographic location where the transfer config should reside.\nExamples: US, EU, asia-northeast1. The default value is US.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource name of the transfer config. Transfer config names have the\nform projects/{projectId}/locations/{location}/transferConfigs/{configId}.\nWhere configId is usually a uuid, but this is not required.\nThe name is ignored when creating a transfer config.","description_kind":"plain","computed":true},"notification_pubsub_topic":{"type":"string","description":"Pub/Sub topic where notifications will be sent after transfer runs\nassociated with this transfer config finish.","description_kind":"plain","optional":true},"params":{"type":["map","string"],"description":"These parameters are specific to each data source.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"schedule":{"type":"string","description":"Data transfer schedule. If the data source does not support a custom\nschedule, this should be empty. If it is empty, the default value for\nthe data source will be used. The specified times are in UTC. Examples\nof valid format: 1st,3rd monday of month 15:30, every wed,fri of jan,\njun 13:15, and first sunday of quarter 00:00. See more explanation\nabout the format here:\nhttps://cloud.google.com/appengine/docs/flexible/python/scheduling-jobs-with-cron-yaml#the_schedule_format\nNOTE: the granularity should be at least 8 hours, or less frequent.","description_kind":"plain","optional":true},"service_account_name":{"type":"string","description":"Optional service account name. If this field is set, transfer config will\nbe created with this service account credentials. It requires that\nrequesting user calling this API has permissions to act as this service account.","description_kind":"plain","optional":true}},"block_types":{"email_preferences":{"nesting_mode":"list","block":{"attributes":{"enable_failure_email":{"type":"bool","description":"If true, email notifications will be sent on transfer run failures.","description_kind":"plain","required":true}},"description":"Email notifications will be sent according to these preferences to the\nemail address of the user who owns this transfer config.","description_kind":"plain"},"max_items":1},"schedule_options":{"nesting_mode":"list","block":{"attributes":{"disable_auto_scheduling":{"type":"bool","description":"If true, automatic scheduling of data transfer runs for this\nconfiguration will be disabled. The runs can be started on ad-hoc\nbasis using transferConfigs.startManualRuns API. When automatic\nscheduling is disabled, the TransferConfig.schedule field will\nbe ignored.","description_kind":"plain","optional":true},"end_time":{"type":"string","description":"Defines time to stop scheduling transfer runs. A transfer run cannot be\nscheduled at or after the end time. The end time can be changed at any\nmoment. The time when a data transfer can be triggered manually is not\nlimited by this option.","description_kind":"plain","optional":true},"start_time":{"type":"string","description":"Specifies time to start scheduling transfer runs. The first run will be\nscheduled at or after the start time according to a recurrence pattern\ndefined in the schedule string. The start time can be changed at any\nmoment. The time when a data transfer can be triggered manually is not\nlimited by this option.","description_kind":"plain","optional":true}},"description":"Options customizing the data transfer schedule.","description_kind":"plain"},"max_items":1},"sensitive_params":{"nesting_mode":"list","block":{"attributes":{"secret_access_key":{"type":"string","description":"The Secret Access Key of the AWS account transferring data from.","description_kind":"plain","required":true,"sensitive":true}},"description":"Different parameters are configured primarily using the the 'params' field on this\nresource. This block contains the parameters which contain secrets or passwords so that they can be marked\nsensitive and hidden from plan output. The name of the field, eg: secret_access_key, will be the key\nin the 'params' map in the api request.\n\nCredentials may not be specified in both locations and will cause an error. Changing from one location\nto a different credential configuration in the config will require an apply to update state.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_bigquery_dataset":{"version":0,"block":{"attributes":{"creation_time":{"type":"number","description":"The time when this dataset was created, in milliseconds since the\nepoch.","description_kind":"plain","computed":true},"dataset_id":{"type":"string","description":"A unique ID for this dataset, without the project name. The ID\nmust contain only letters (a-z, A-Z), numbers (0-9), or\nunderscores (_). The maximum length is 1,024 characters.","description_kind":"plain","required":true},"default_partition_expiration_ms":{"type":"number","description":"The default partition expiration for all partitioned tables in\nthe dataset, in milliseconds.\n\n\nOnce this property is set, all newly-created partitioned tables in\nthe dataset will have an 'expirationMs' property in the 'timePartitioning'\nsettings set to this value, and changing the value will only\naffect new tables, not existing ones. The storage in a partition will\nhave an expiration time of its partition time plus this value.\nSetting this property overrides the use of 'defaultTableExpirationMs'\nfor partitioned tables: only one of 'defaultTableExpirationMs' and\n'defaultPartitionExpirationMs' will be used for any new partitioned\ntable. If you provide an explicit 'timePartitioning.expirationMs' when\ncreating or updating a partitioned table, that value takes precedence\nover the default partition expiration time indicated by this property.","description_kind":"plain","optional":true},"default_table_expiration_ms":{"type":"number","description":"The default lifetime of all tables in the dataset, in milliseconds.\nThe minimum value is 3600000 milliseconds (one hour).\n\n\nOnce this property is set, all newly-created tables in the dataset\nwill have an 'expirationTime' property set to the creation time plus\nthe value in this property, and changing the value will only affect\nnew tables, not existing ones. When the 'expirationTime' for a given\ntable is reached, that table will be deleted automatically.\nIf a table's 'expirationTime' is modified or removed before the\ntable expires, or if you provide an explicit 'expirationTime' when\ncreating a table, that value takes precedence over the default\nexpiration time indicated by this property.","description_kind":"plain","optional":true},"delete_contents_on_destroy":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description":"A user-friendly description of the dataset","description_kind":"plain","optional":true},"etag":{"type":"string","description":"A hash of the resource.","description_kind":"plain","computed":true},"friendly_name":{"type":"string","description":"A descriptive name for the dataset","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The labels associated with this dataset. You can use these to\norganize and group your datasets","description_kind":"plain","optional":true},"last_modified_time":{"type":"number","description":"The date when this dataset or any of its tables was last modified, in\nmilliseconds since the epoch.","description_kind":"plain","computed":true},"location":{"type":"string","description":"The geographic location where the dataset should reside.\nSee [official docs](https://cloud.google.com/bigquery/docs/dataset-locations).\n\n\nThere are two types of locations, regional or multi-regional. A regional\nlocation is a specific geographic place, such as Tokyo, and a multi-regional\nlocation is a large geographic area, such as the United States, that\ncontains at least two geographic places.\n\n\nThe default value is multi-regional location 'US'.\nChanging this forces a new resource to be created.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"access":{"nesting_mode":"set","block":{"attributes":{"domain":{"type":"string","description":"A domain to grant access to. Any users signed in with the\ndomain specified will be granted the specified access","description_kind":"plain","optional":true},"group_by_email":{"type":"string","description":"An email address of a Google Group to grant access to.","description_kind":"plain","optional":true},"role":{"type":"string","description":"Describes the rights granted to the user specified by the other\nmember of the access object. Basic, predefined, and custom roles\nare supported. Predefined roles that have equivalent basic roles\nare swapped by the API to their basic counterparts. See\n[official docs](https://cloud.google.com/bigquery/docs/access-control).","description_kind":"plain","optional":true},"special_group":{"type":"string","description":"A special group to grant access to. Possible values include:\n\n\n* 'projectOwners': Owners of the enclosing project.\n\n\n* 'projectReaders': Readers of the enclosing project.\n\n\n* 'projectWriters': Writers of the enclosing project.\n\n\n* 'allAuthenticatedUsers': All authenticated BigQuery users.","description_kind":"plain","optional":true},"user_by_email":{"type":"string","description":"An email address of a user to grant access to. For example:\nfred@example.com","description_kind":"plain","optional":true}},"block_types":{"view":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The ID of the dataset containing this table.","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The ID of the project containing this table.","description_kind":"plain","required":true},"table_id":{"type":"string","description":"The ID of the table. The ID must contain only letters (a-z,\nA-Z), numbers (0-9), or underscores (_). The maximum length\nis 1,024 characters.","description_kind":"plain","required":true}},"description":"A view from a different dataset to grant access to. Queries\nexecuted against that view will have read access to tables in\nthis dataset. The role field is not required when this field is\nset. If that view is updated by any user, access to the view\nneeds to be granted again via an update operation.","description_kind":"plain"},"max_items":1}},"description":"An array of objects that define dataset access for one or more entities.","description_kind":"plain"}},"default_encryption_configuration":{"nesting_mode":"list","block":{"attributes":{"kms_key_name":{"type":"string","description":"Describes the Cloud KMS encryption key that will be used to protect destination\nBigQuery table. The BigQuery Service Account associated with your project requires\naccess to this encryption key.","description_kind":"plain","required":true}},"description":"The default encryption key for all tables in the dataset. Once this property is set,\nall newly-created partitioned tables in the dataset will have encryption key set to\nthis value, unless table creation request (or query) overrides the key.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_bigquery_dataset_access":{"version":0,"block":{"attributes":{"api_updated_member":{"type":"bool","description":"If true, represents that that the iam_member in the config was translated to a different member type by the API, and is stored in state as a different member type","description_kind":"plain","computed":true},"dataset_id":{"type":"string","description":"A unique ID for this dataset, without the project name. The ID\nmust contain only letters (a-z, A-Z), numbers (0-9), or\nunderscores (_). The maximum length is 1,024 characters.","description_kind":"plain","required":true},"domain":{"type":"string","description":"A domain to grant access to. Any users signed in with the\ndomain specified will be granted the specified access","description_kind":"plain","optional":true},"group_by_email":{"type":"string","description":"An email address of a Google Group to grant access to.","description_kind":"plain","optional":true},"iam_member":{"type":"string","description":"Some other type of member that appears in the IAM Policy but isn't a user,\ngroup, domain, or special group. For example: 'allUsers'","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description":"Describes the rights granted to the user specified by the other\nmember of the access object. Basic, predefined, and custom roles are\nsupported. Predefined roles that have equivalent basic roles are\nswapped by the API to their basic counterparts, and will show a diff\npost-create. See\n[official docs](https://cloud.google.com/bigquery/docs/access-control).","description_kind":"plain","optional":true},"special_group":{"type":"string","description":"A special group to grant access to. Possible values include:\n\n\n* 'projectOwners': Owners of the enclosing project.\n\n\n* 'projectReaders': Readers of the enclosing project.\n\n\n* 'projectWriters': Writers of the enclosing project.\n\n\n* 'allAuthenticatedUsers': All authenticated BigQuery users.","description_kind":"plain","optional":true},"user_by_email":{"type":"string","description":"An email address of a user to grant access to. For example:\nfred@example.com","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"view":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The ID of the dataset containing this table.","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The ID of the project containing this table.","description_kind":"plain","required":true},"table_id":{"type":"string","description":"The ID of the table. The ID must contain only letters (a-z,\nA-Z), numbers (0-9), or underscores (_). The maximum length\nis 1,024 characters.","description_kind":"plain","required":true}},"description":"A view from a different dataset to grant access to. Queries\nexecuted against that view will have read access to tables in\nthis dataset. The role field is not required when this field is\nset. If that view is updated by any user, access to the view\nneeds to be granted again via an update operation.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_bigquery_dataset_iam_binding":{"version":0,"block":{"attributes":{"dataset_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_bigquery_dataset_iam_member":{"version":0,"block":{"attributes":{"dataset_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_bigquery_dataset_iam_policy":{"version":0,"block":{"attributes":{"dataset_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_bigquery_job":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"job_id":{"type":"string","description":"The ID of the job. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 1,024 characters.","description_kind":"plain","required":true},"job_timeout_ms":{"type":"string","description":"Job timeout in milliseconds. If this time limit is exceeded, BigQuery may attempt to terminate the job.","description_kind":"plain","optional":true},"job_type":{"type":"string","description":"The type of the job.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"The labels associated with this job. You can use these to organize and group your jobs.","description_kind":"plain","optional":true},"location":{"type":"string","description":"The geographic location of the job. The default value is US.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":["list",["object",{"error_result":["list",["object",{"location":"string","message":"string","reason":"string"}]],"errors":["list",["object",{"location":"string","message":"string","reason":"string"}]],"state":"string"}]],"description":"The status of this job. Examine this value when polling an asynchronous job to see if the job is complete.","description_kind":"plain","computed":true},"user_email":{"type":"string","description":"Email address of the user who ran the job.","description_kind":"plain","computed":true}},"block_types":{"copy":{"nesting_mode":"list","block":{"attributes":{"create_disposition":{"type":"string","description":"Specifies whether the job is allowed to create new tables. The following values are supported:\nCREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table.\nCREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result.\nCreation, truncation and append actions occur as one atomic update upon job completion Default value: \"CREATE_IF_NEEDED\" Possible values: [\"CREATE_IF_NEEDED\", \"CREATE_NEVER\"]","description_kind":"plain","optional":true},"write_disposition":{"type":"string","description":"Specifies the action that occurs if the destination table already exists. The following values are supported:\nWRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data and uses the schema from the query result.\nWRITE_APPEND: If the table already exists, BigQuery appends the data to the table.\nWRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result.\nEach action is atomic and only occurs if BigQuery is able to complete the job successfully.\nCreation, truncation and append actions occur as one atomic update upon job completion. Default value: \"WRITE_EMPTY\" Possible values: [\"WRITE_TRUNCATE\", \"WRITE_APPEND\", \"WRITE_EMPTY\"]","description_kind":"plain","optional":true}},"block_types":{"destination_encryption_configuration":{"nesting_mode":"list","block":{"attributes":{"kms_key_name":{"type":"string","description":"Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table.\nThe BigQuery Service Account associated with your project requires access to this encryption key.","description_kind":"plain","required":true},"kms_key_version":{"type":"string","description":"Describes the Cloud KMS encryption key version used to protect destination BigQuery table.","description_kind":"plain","computed":true}},"description":"Custom encryption configuration (e.g., Cloud KMS keys)","description_kind":"plain"},"max_items":1},"destination_table":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The ID of the dataset containing this table.","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The ID of the project containing this table.","description_kind":"plain","optional":true,"computed":true},"table_id":{"type":"string","description":"The table. Can be specified '{{table_id}}' if 'project_id' and 'dataset_id' are also set,\nor of the form 'projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}' if not.","description_kind":"plain","required":true}},"description":"The destination table.","description_kind":"plain"},"max_items":1},"source_tables":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The ID of the dataset containing this table.","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The ID of the project containing this table.","description_kind":"plain","optional":true,"computed":true},"table_id":{"type":"string","description":"The table. Can be specified '{{table_id}}' if 'project_id' and 'dataset_id' are also set,\nor of the form 'projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}' if not.","description_kind":"plain","required":true}},"description":"Source tables to copy.","description_kind":"plain"},"min_items":1}},"description":"Copies a table.","description_kind":"plain"},"max_items":1},"extract":{"nesting_mode":"list","block":{"attributes":{"compression":{"type":"string","description":"The compression type to use for exported files. Possible values include GZIP, DEFLATE, SNAPPY, and NONE.\nThe default value is NONE. DEFLATE and SNAPPY are only supported for Avro.","description_kind":"plain","optional":true},"destination_format":{"type":"string","description":"The exported file format. Possible values include CSV, NEWLINE_DELIMITED_JSON and AVRO for tables and SAVED_MODEL for models.\nThe default value for tables is CSV. Tables with nested or repeated fields cannot be exported as CSV.\nThe default value for models is SAVED_MODEL.","description_kind":"plain","optional":true,"computed":true},"destination_uris":{"type":["list","string"],"description":"A list of fully-qualified Google Cloud Storage URIs where the extracted table should be written.","description_kind":"plain","required":true},"field_delimiter":{"type":"string","description":"When extracting data in CSV format, this defines the delimiter to use between fields in the exported data.\nDefault is ','","description_kind":"plain","optional":true,"computed":true},"print_header":{"type":"bool","description":"Whether to print out a header row in the results. Default is true.","description_kind":"plain","optional":true},"use_avro_logical_types":{"type":"bool","description":"Whether to use logical types when extracting to AVRO format.","description_kind":"plain","optional":true}},"block_types":{"source_model":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The ID of the dataset containing this model.","description_kind":"plain","required":true},"model_id":{"type":"string","description":"The ID of the model.","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The ID of the project containing this model.","description_kind":"plain","required":true}},"description":"A reference to the model being exported.","description_kind":"plain"},"max_items":1},"source_table":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The ID of the dataset containing this table.","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The ID of the project containing this table.","description_kind":"plain","optional":true,"computed":true},"table_id":{"type":"string","description":"The table. Can be specified '{{table_id}}' if 'project_id' and 'dataset_id' are also set,\nor of the form 'projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}' if not.","description_kind":"plain","required":true}},"description":"A reference to the table being exported.","description_kind":"plain"},"max_items":1}},"description":"Configures an extract job.","description_kind":"plain"},"max_items":1},"load":{"nesting_mode":"list","block":{"attributes":{"allow_jagged_rows":{"type":"bool","description":"Accept rows that are missing trailing optional columns. The missing values are treated as nulls.\nIf false, records with missing trailing columns are treated as bad records, and if there are too many bad records,\nan invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats.","description_kind":"plain","optional":true},"allow_quoted_newlines":{"type":"bool","description":"Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file.\nThe default value is false.","description_kind":"plain","optional":true},"autodetect":{"type":"bool","description":"Indicates if we should automatically infer the options and schema for CSV and JSON sources.","description_kind":"plain","optional":true},"create_disposition":{"type":"string","description":"Specifies whether the job is allowed to create new tables. The following values are supported:\nCREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table.\nCREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result.\nCreation, truncation and append actions occur as one atomic update upon job completion Default value: \"CREATE_IF_NEEDED\" Possible values: [\"CREATE_IF_NEEDED\", \"CREATE_NEVER\"]","description_kind":"plain","optional":true},"encoding":{"type":"string","description":"The character encoding of the data. The supported values are UTF-8 or ISO-8859-1.\nThe default value is UTF-8. BigQuery decodes the data after the raw, binary data\nhas been split using the values of the quote and fieldDelimiter properties.","description_kind":"plain","optional":true},"field_delimiter":{"type":"string","description":"The separator for fields in a CSV file. The separator can be any ISO-8859-1 single-byte character.\nTo use a character in the range 128-255, you must encode the character as UTF8. BigQuery converts\nthe string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the\ndata in its raw, binary state. BigQuery also supports the escape sequence \"\\t\" to specify a tab separator.\nThe default value is a comma (',').","description_kind":"plain","optional":true,"computed":true},"ignore_unknown_values":{"type":"bool","description":"Indicates if BigQuery should allow extra values that are not represented in the table schema.\nIf true, the extra values are ignored. If false, records with extra columns are treated as bad records,\nand if there are too many bad records, an invalid error is returned in the job result.\nThe default value is false. The sourceFormat property determines what BigQuery treats as an extra value:\nCSV: Trailing columns\nJSON: Named values that don't match any column names","description_kind":"plain","optional":true},"max_bad_records":{"type":"number","description":"The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value,\nan invalid error is returned in the job result. The default value is 0, which requires that all records are valid.","description_kind":"plain","optional":true},"null_marker":{"type":"string","description":"Specifies a string that represents a null value in a CSV file. For example, if you specify \"\\N\", BigQuery interprets \"\\N\" as a null value\nwhen loading a CSV file. The default value is the empty string. If you set this property to a custom value, BigQuery throws an error if an\nempty string is present for all data types except for STRING and BYTE. For STRING and BYTE columns, BigQuery interprets the empty string as\nan empty value.","description_kind":"plain","optional":true},"projection_fields":{"type":["list","string"],"description":"If sourceFormat is set to \"DATASTORE_BACKUP\", indicates which entity properties to load into BigQuery from a Cloud Datastore backup.\nProperty names are case sensitive and must be top-level properties. If no properties are specified, BigQuery loads all properties.\nIf any named property isn't found in the Cloud Datastore backup, an invalid error is returned in the job result.","description_kind":"plain","optional":true},"quote":{"type":"string","description":"The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding,\nand then uses the first byte of the encoded string to split the data in its raw, binary state.\nThe default value is a double-quote ('\"'). If your data does not contain quoted sections, set the property value to an empty string.\nIf your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true.","description_kind":"plain","optional":true,"computed":true},"schema_update_options":{"type":["list","string"],"description":"Allows the schema of the destination table to be updated as a side effect of the load job if a schema is autodetected or\nsupplied in the job configuration. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND;\nwhen writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators.\nFor normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified:\nALLOW_FIELD_ADDITION: allow adding a nullable field to the schema.\nALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.","description_kind":"plain","optional":true},"skip_leading_rows":{"type":"number","description":"The number of rows at the top of a CSV file that BigQuery will skip when loading the data.\nThe default value is 0. This property is useful if you have header rows in the file that should be skipped.\nWhen autodetect is on, the behavior is the following:\nskipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected,\nthe row is read as data. Otherwise data is read starting from the second row.\nskipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row.\nskipLeadingRows = N \u003e 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected,\nrow N is just skipped. Otherwise row N is used to extract column names for the detected schema.","description_kind":"plain","optional":true},"source_format":{"type":"string","description":"The format of the data files. For CSV files, specify \"CSV\". For datastore backups, specify \"DATASTORE_BACKUP\".\nFor newline-delimited JSON, specify \"NEWLINE_DELIMITED_JSON\". For Avro, specify \"AVRO\". For parquet, specify \"PARQUET\".\nFor orc, specify \"ORC\". [Beta] For Bigtable, specify \"BIGTABLE\".\nThe default value is CSV.","description_kind":"plain","optional":true},"source_uris":{"type":["list","string"],"description":"The fully-qualified URIs that point to your data in Google Cloud.\nFor Google Cloud Storage URIs: Each URI can contain one '*' wildcard character\nand it must come after the 'bucket' name. Size limits related to load jobs apply\nto external data sources. For Google Cloud Bigtable URIs: Exactly one URI can be\nspecified and it has be a fully specified and valid HTTPS URL for a Google Cloud Bigtable table.\nFor Google Cloud Datastore backups: Exactly one URI can be specified. Also, the '*' wildcard character is not allowed.","description_kind":"plain","required":true},"write_disposition":{"type":"string","description":"Specifies the action that occurs if the destination table already exists. The following values are supported:\nWRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data and uses the schema from the query result.\nWRITE_APPEND: If the table already exists, BigQuery appends the data to the table.\nWRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result.\nEach action is atomic and only occurs if BigQuery is able to complete the job successfully.\nCreation, truncation and append actions occur as one atomic update upon job completion. Default value: \"WRITE_EMPTY\" Possible values: [\"WRITE_TRUNCATE\", \"WRITE_APPEND\", \"WRITE_EMPTY\"]","description_kind":"plain","optional":true}},"block_types":{"destination_encryption_configuration":{"nesting_mode":"list","block":{"attributes":{"kms_key_name":{"type":"string","description":"Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table.\nThe BigQuery Service Account associated with your project requires access to this encryption key.","description_kind":"plain","required":true},"kms_key_version":{"type":"string","description":"Describes the Cloud KMS encryption key version used to protect destination BigQuery table.","description_kind":"plain","computed":true}},"description":"Custom encryption configuration (e.g., Cloud KMS keys)","description_kind":"plain"},"max_items":1},"destination_table":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The ID of the dataset containing this table.","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The ID of the project containing this table.","description_kind":"plain","optional":true,"computed":true},"table_id":{"type":"string","description":"The table. Can be specified '{{table_id}}' if 'project_id' and 'dataset_id' are also set,\nor of the form 'projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}' if not.","description_kind":"plain","required":true}},"description":"The destination table to load the data into.","description_kind":"plain"},"min_items":1,"max_items":1},"time_partitioning":{"nesting_mode":"list","block":{"attributes":{"expiration_ms":{"type":"string","description":"Number of milliseconds for which to keep the storage for a partition. A wrapper is used here because 0 is an invalid value.","description_kind":"plain","optional":true},"field":{"type":"string","description":"If not set, the table is partitioned by pseudo column '_PARTITIONTIME'; if set, the table is partitioned by this field.\nThe field must be a top-level TIMESTAMP or DATE field. Its mode must be NULLABLE or REQUIRED.\nA wrapper is used here because an empty string is an invalid value.","description_kind":"plain","optional":true},"type":{"type":"string","description":"The only type supported is DAY, which will generate one partition per day. Providing an empty string used to cause an error,\nbut in OnePlatform the field will be treated as unset.","description_kind":"plain","required":true}},"description":"Time-based partitioning specification for the destination table.","description_kind":"plain"},"max_items":1}},"description":"Configures a load job.","description_kind":"plain"},"max_items":1},"query":{"nesting_mode":"list","block":{"attributes":{"allow_large_results":{"type":"bool","description":"If true and query uses legacy SQL dialect, allows the query to produce arbitrarily large result tables at a slight cost in performance.\nRequires destinationTable to be set. For standard SQL queries, this flag is ignored and large results are always allowed.\nHowever, you must still set destinationTable when result size exceeds the allowed maximum response size.","description_kind":"plain","optional":true},"create_disposition":{"type":"string","description":"Specifies whether the job is allowed to create new tables. The following values are supported:\nCREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table.\nCREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result.\nCreation, truncation and append actions occur as one atomic update upon job completion Default value: \"CREATE_IF_NEEDED\" Possible values: [\"CREATE_IF_NEEDED\", \"CREATE_NEVER\"]","description_kind":"plain","optional":true},"flatten_results":{"type":"bool","description":"If true and query uses legacy SQL dialect, flattens all nested and repeated fields in the query results.\nallowLargeResults must be true if this is set to false. For standard SQL queries, this flag is ignored and results are never flattened.","description_kind":"plain","optional":true},"maximum_billing_tier":{"type":"number","description":"Limits the billing tier for this job. Queries that have resource usage beyond this tier will fail (without incurring a charge).\nIf unspecified, this will be set to your project default.","description_kind":"plain","optional":true},"maximum_bytes_billed":{"type":"string","description":"Limits the bytes billed for this job. Queries that will have bytes billed beyond this limit will fail (without incurring a charge).\nIf unspecified, this will be set to your project default.","description_kind":"plain","optional":true},"parameter_mode":{"type":"string","description":"Standard SQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.","description_kind":"plain","optional":true},"priority":{"type":"string","description":"Specifies a priority for the query. Default value: \"INTERACTIVE\" Possible values: [\"INTERACTIVE\", \"BATCH\"]","description_kind":"plain","optional":true},"query":{"type":"string","description":"SQL query text to execute. The useLegacySql field can be used to indicate whether the query uses legacy SQL or standard SQL.\n*NOTE*: queries containing [DML language](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language)\n('DELETE', 'UPDATE', 'MERGE', 'INSERT') must specify 'create_disposition = \"\"' and 'write_disposition = \"\"'.","description_kind":"plain","required":true},"schema_update_options":{"type":["list","string"],"description":"Allows the schema of the destination table to be updated as a side effect of the query job.\nSchema update options are supported in two cases: when writeDisposition is WRITE_APPEND;\nwhen writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table,\nspecified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema.\nOne or more of the following values are specified:\nALLOW_FIELD_ADDITION: allow adding a nullable field to the schema.\nALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.","description_kind":"plain","optional":true},"use_legacy_sql":{"type":"bool","description":"Specifies whether to use BigQuery's legacy SQL dialect for this query. The default value is true.\nIf set to false, the query will use BigQuery's standard SQL.","description_kind":"plain","optional":true},"use_query_cache":{"type":"bool","description":"Whether to look for the result in the query cache. The query cache is a best-effort cache that will be flushed whenever\ntables in the query are modified. Moreover, the query cache is only available when a query does not have a destination table specified.\nThe default value is true.","description_kind":"plain","optional":true},"write_disposition":{"type":"string","description":"Specifies the action that occurs if the destination table already exists. The following values are supported:\nWRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data and uses the schema from the query result.\nWRITE_APPEND: If the table already exists, BigQuery appends the data to the table.\nWRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result.\nEach action is atomic and only occurs if BigQuery is able to complete the job successfully.\nCreation, truncation and append actions occur as one atomic update upon job completion. Default value: \"WRITE_EMPTY\" Possible values: [\"WRITE_TRUNCATE\", \"WRITE_APPEND\", \"WRITE_EMPTY\"]","description_kind":"plain","optional":true}},"block_types":{"default_dataset":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The dataset. Can be specified '{{dataset_id}}' if 'project_id' is also set,\nor of the form 'projects/{{project}}/datasets/{{dataset_id}}' if not.","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The ID of the project containing this table.","description_kind":"plain","optional":true,"computed":true}},"description":"Specifies the default dataset to use for unqualified table names in the query. Note that this does not alter behavior of unqualified dataset names.","description_kind":"plain"},"max_items":1},"destination_encryption_configuration":{"nesting_mode":"list","block":{"attributes":{"kms_key_name":{"type":"string","description":"Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table.\nThe BigQuery Service Account associated with your project requires access to this encryption key.","description_kind":"plain","required":true},"kms_key_version":{"type":"string","description":"Describes the Cloud KMS encryption key version used to protect destination BigQuery table.","description_kind":"plain","computed":true}},"description":"Custom encryption configuration (e.g., Cloud KMS keys)","description_kind":"plain"},"max_items":1},"destination_table":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The ID of the dataset containing this table.","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The ID of the project containing this table.","description_kind":"plain","optional":true,"computed":true},"table_id":{"type":"string","description":"The table. Can be specified '{{table_id}}' if 'project_id' and 'dataset_id' are also set,\nor of the form 'projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}' if not.","description_kind":"plain","required":true}},"description":"Describes the table where the query results should be stored.\nThis property must be set for large results that exceed the maximum response size.\nFor queries that produce anonymous (cached) results, this field will be populated by BigQuery.","description_kind":"plain"},"max_items":1},"script_options":{"nesting_mode":"list","block":{"attributes":{"key_result_statement":{"type":"string","description":"Determines which statement in the script represents the \"key result\",\nused to populate the schema and query results of the script job. Possible values: [\"LAST\", \"FIRST_SELECT\"]","description_kind":"plain","optional":true},"statement_byte_budget":{"type":"string","description":"Limit on the number of bytes billed per statement. Exceeding this budget results in an error.","description_kind":"plain","optional":true},"statement_timeout_ms":{"type":"string","description":"Timeout period for each statement in a script.","description_kind":"plain","optional":true}},"description":"Options controlling the execution of scripts.","description_kind":"plain"},"max_items":1},"user_defined_function_resources":{"nesting_mode":"list","block":{"attributes":{"inline_code":{"type":"string","description":"An inline resource that contains code for a user-defined function (UDF).\nProviding a inline code resource is equivalent to providing a URI for a file containing the same code.","description_kind":"plain","optional":true},"resource_uri":{"type":"string","description":"A code resource to load from a Google Cloud Storage URI (gs://bucket/path).","description_kind":"plain","optional":true}},"description":"Describes user-defined function resources used in the query.","description_kind":"plain"}}},"description":"Configures a query job.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_bigquery_reservation":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ignore_idle_slots":{"type":"bool","description":"If false, any query using this reservation will use idle slots from other reservations within\nthe same admin project. If true, a query using this reservation will execute with the slot\ncapacity specified above at most.","description_kind":"plain","optional":true},"location":{"type":"string","description":"The geographic location where the transfer config should reside.\nExamples: US, EU, asia-northeast1. The default value is US.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the reservation. This field must only contain alphanumeric characters or dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"slot_capacity":{"type":"number","description":"Minimum slots available to this reservation. A slot is a unit of computational power in BigQuery, and serves as the\nunit of parallelism. Queries using this reservation might use more slots during runtime if ignoreIdleSlots is set to false.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_bigquery_routine":{"version":0,"block":{"attributes":{"creation_time":{"type":"number","description":"The time when this routine was created, in milliseconds since the\nepoch.","description_kind":"plain","computed":true},"dataset_id":{"type":"string","description":"The ID of the dataset containing this routine","description_kind":"plain","required":true},"definition_body":{"type":"string","description":"The body of the routine. For functions, this is the expression in the AS clause.\nIf language=SQL, it is the substring inside (but excluding) the parentheses.","description_kind":"plain","required":true},"description":{"type":"string","description":"The description of the routine if defined.","description_kind":"plain","optional":true},"determinism_level":{"type":"string","description":"The determinism level of the JavaScript UDF if defined. Possible values: [\"DETERMINISM_LEVEL_UNSPECIFIED\", \"DETERMINISTIC\", \"NOT_DETERMINISTIC\"]","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"imported_libraries":{"type":["list","string"],"description":"Optional. If language = \"JAVASCRIPT\", this field stores the path of the\nimported JAVASCRIPT libraries.","description_kind":"plain","optional":true},"language":{"type":"string","description":"The language of the routine. Possible values: [\"SQL\", \"JAVASCRIPT\"]","description_kind":"plain","optional":true},"last_modified_time":{"type":"number","description":"The time when this routine was modified, in milliseconds since the\nepoch.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"return_type":{"type":"string","description":"A JSON schema for the return type. Optional if language = \"SQL\"; required otherwise.\nIf absent, the return type is inferred from definitionBody at query time in each query\nthat references this routine. If present, then the evaluated result will be cast to\nthe specified returned type at query time. ~\u003e**NOTE**: Because this field expects a JSON\nstring, any changes to the string will create a diff, even if the JSON itself hasn't\nchanged. If the API returns a different value for the same schema, e.g. it switche\nd the order of values or replaced STRUCT field type with RECORD field type, we currently\ncannot suppress the recurring diff this causes. As a workaround, we recommend using\nthe schema as returned by the API.","description_kind":"plain","optional":true},"routine_id":{"type":"string","description":"The ID of the the routine. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 256 characters.","description_kind":"plain","required":true},"routine_type":{"type":"string","description":"The type of routine. Possible values: [\"SCALAR_FUNCTION\", \"PROCEDURE\"]","description_kind":"plain","optional":true}},"block_types":{"arguments":{"nesting_mode":"list","block":{"attributes":{"argument_kind":{"type":"string","description":"Defaults to FIXED_TYPE. Default value: \"FIXED_TYPE\" Possible values: [\"FIXED_TYPE\", \"ANY_TYPE\"]","description_kind":"plain","optional":true},"data_type":{"type":"string","description":"A JSON schema for the data type. Required unless argumentKind = ANY_TYPE.\n~\u003e**NOTE**: Because this field expects a JSON string, any changes to the string\nwill create a diff, even if the JSON itself hasn't changed. If the API returns\na different value for the same schema, e.g. it switched the order of values\nor replaced STRUCT field type with RECORD field type, we currently cannot\nsuppress the recurring diff this causes. As a workaround, we recommend using\nthe schema as returned by the API.","description_kind":"plain","optional":true},"mode":{"type":"string","description":"Specifies whether the argument is input or output. Can be set for procedures only. Possible values: [\"IN\", \"OUT\", \"INOUT\"]","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of this argument. Can be absent for function return argument.","description_kind":"plain","optional":true}},"description":"Input/output argument of a function or a stored procedure.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_bigquery_table":{"version":0,"block":{"attributes":{"clustering":{"type":["list","string"],"description":"Specifies column names to use for data clustering. Up to four top-level columns are allowed, and should be specified in descending priority order.","description_kind":"plain","optional":true},"creation_time":{"type":"number","description":"The time when this table was created, in milliseconds since the epoch.","description_kind":"plain","computed":true},"dataset_id":{"type":"string","description":"The dataset ID to create the table in. Changing this forces a new resource to be created.","description_kind":"plain","required":true},"deletion_protection":{"type":"bool","description":"Whether or not to allow Terraform to destroy the instance. Unless this field is set to false in Terraform state, a terraform destroy or terraform apply that would delete the instance will fail.","description_kind":"plain","optional":true},"description":{"type":"string","description":"The field description.","description_kind":"plain","optional":true},"etag":{"type":"string","description":"A hash of the resource.","description_kind":"plain","computed":true},"expiration_time":{"type":"number","description":"The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.","description_kind":"plain","optional":true,"computed":true},"friendly_name":{"type":"string","description":"A descriptive name for the table.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A mapping of labels to assign to the resource.","description_kind":"plain","optional":true},"last_modified_time":{"type":"number","description":"The time when this table was last modified, in milliseconds since the epoch.","description_kind":"plain","computed":true},"location":{"type":"string","description":"The geographic location where the table resides. This value is inherited from the dataset.","description_kind":"plain","computed":true},"num_bytes":{"type":"number","description":"The geographic location where the table resides. This value is inherited from the dataset.","description_kind":"plain","computed":true},"num_long_term_bytes":{"type":"number","description":"The number of bytes in the table that are considered \"long-term storage\".","description_kind":"plain","computed":true},"num_rows":{"type":"number","description":"The number of rows of data in this table, excluding any data in the streaming buffer.","description_kind":"plain","computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs.","description_kind":"plain","optional":true,"computed":true},"schema":{"type":"string","description":"A JSON schema for the table.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"table_id":{"type":"string","description":"A unique ID for the resource. Changing this forces a new resource to be created.","description_kind":"plain","required":true},"type":{"type":"string","description":"Describes the table type.","description_kind":"plain","computed":true}},"block_types":{"encryption_configuration":{"nesting_mode":"list","block":{"attributes":{"kms_key_name":{"type":"string","description":"The self link or full name of a key which should be used to encrypt this table. Note that the default bigquery service account will need to have encrypt/decrypt permissions on this key - you may want to see the google_bigquery_default_service_account datasource and the google_kms_crypto_key_iam_binding resource.","description_kind":"plain","required":true},"kms_key_version":{"type":"string","description":"The self link or full name of the kms key version used to encrypt this table.","description_kind":"plain","computed":true}},"description":"Specifies how the table should be encrypted. If left blank, the table will be encrypted with a Google-managed key; that process is transparent to the user.","description_kind":"plain"},"max_items":1},"external_data_configuration":{"nesting_mode":"list","block":{"attributes":{"autodetect":{"type":"bool","description":"Let BigQuery try to autodetect the schema and format of the table.","description_kind":"plain","required":true},"compression":{"type":"string","description":"The compression type of the data source. Valid values are \"NONE\" or \"GZIP\".","description_kind":"plain","optional":true},"ignore_unknown_values":{"type":"bool","description":"Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false.","description_kind":"plain","optional":true},"max_bad_records":{"type":"number","description":"The maximum number of bad records that BigQuery can ignore when reading data.","description_kind":"plain","optional":true},"schema":{"type":"string","description":"A JSON schema for the external table. Schema is required for CSV and JSON formats and is disallowed for Google Cloud Bigtable, Cloud Datastore backups, and Avro formats when using external tables.","description_kind":"plain","optional":true,"computed":true},"source_format":{"type":"string","description":"The data format. Supported values are: \"CSV\", \"GOOGLE_SHEETS\", \"NEWLINE_DELIMITED_JSON\", \"AVRO\", \"PARQUET\", \"ORC\" and \"DATASTORE_BACKUP\". To use \"GOOGLE_SHEETS\" the scopes must include \"googleapis.com/auth/drive.readonly\".","description_kind":"plain","required":true},"source_uris":{"type":["list","string"],"description":"A list of the fully-qualified URIs that point to your data in Google Cloud.","description_kind":"plain","required":true}},"block_types":{"csv_options":{"nesting_mode":"list","block":{"attributes":{"allow_jagged_rows":{"type":"bool","description":"Indicates if BigQuery should accept rows that are missing trailing optional columns.","description_kind":"plain","optional":true},"allow_quoted_newlines":{"type":"bool","description":"Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.","description_kind":"plain","optional":true},"encoding":{"type":"string","description":"The character encoding of the data. The supported values are UTF-8 or ISO-8859-1.","description_kind":"plain","optional":true},"field_delimiter":{"type":"string","description":"The separator for fields in a CSV file.","description_kind":"plain","optional":true},"quote":{"type":"string","description":"The value that is used to quote data sections in a CSV file. If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allow_quoted_newlines property to true. The API-side default is \", specified in Terraform escaped as \\\". Due to limitations with Terraform default values, this value is required to be explicitly set.","description_kind":"plain","required":true},"skip_leading_rows":{"type":"number","description":"The number of rows at the top of a CSV file that BigQuery will skip when reading the data.","description_kind":"plain","optional":true}},"description":"Additional properties to set if source_format is set to \"CSV\".","description_kind":"plain"},"max_items":1},"google_sheets_options":{"nesting_mode":"list","block":{"attributes":{"range":{"type":"string","description":"Range of a sheet to query from. Only used when non-empty. At least one of range or skip_leading_rows must be set. Typical format: \"sheet_name!top_left_cell_id:bottom_right_cell_id\" For example: \"sheet1!A1:B20\"","description_kind":"plain","optional":true},"skip_leading_rows":{"type":"number","description":"The number of rows at the top of the sheet that BigQuery will skip when reading the data. At least one of range or skip_leading_rows must be set.","description_kind":"plain","optional":true}},"description":"Additional options if source_format is set to \"GOOGLE_SHEETS\".","description_kind":"plain"},"max_items":1},"hive_partitioning_options":{"nesting_mode":"list","block":{"attributes":{"mode":{"type":"string","description":"When set, what mode of hive partitioning to use when reading data.","description_kind":"plain","optional":true},"require_partition_filter":{"type":"bool","description":"If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified.","description_kind":"plain","optional":true},"source_uri_prefix":{"type":"string","description":"When hive partition detection is requested, a common for all source uris must be required. The prefix must end immediately before the partition key encoding begins.","description_kind":"plain","optional":true}},"description":"When set, configures hive partitioning support. Not all storage formats support hive partitioning -- requesting hive partitioning on an unsupported format will lead to an error, as will providing an invalid specification.","description_kind":"plain"},"max_items":1}},"description":"Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table.","description_kind":"plain"},"max_items":1},"materialized_view":{"nesting_mode":"list","block":{"attributes":{"enable_refresh":{"type":"bool","description":"Specifies if BigQuery should automatically refresh materialized view when the base table is updated. The default is true.","description_kind":"plain","optional":true},"query":{"type":"string","description":"A query whose result is persisted.","description_kind":"plain","required":true},"refresh_interval_ms":{"type":"number","description":"Specifies maximum frequency at which this materialized view will be refreshed. The default is 1800000","description_kind":"plain","optional":true}},"description":"If specified, configures this table as a materialized view.","description_kind":"plain"},"max_items":1},"range_partitioning":{"nesting_mode":"list","block":{"attributes":{"field":{"type":"string","description":"The field used to determine how to create a range-based partition.","description_kind":"plain","required":true}},"block_types":{"range":{"nesting_mode":"list","block":{"attributes":{"end":{"type":"number","description":"End of the range partitioning, exclusive.","description_kind":"plain","required":true},"interval":{"type":"number","description":"The width of each range within the partition.","description_kind":"plain","required":true},"start":{"type":"number","description":"Start of the range partitioning, inclusive.","description_kind":"plain","required":true}},"description":"Information required to partition based on ranges. Structure is documented below.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"If specified, configures range-based partitioning for this table.","description_kind":"plain"},"max_items":1},"time_partitioning":{"nesting_mode":"list","block":{"attributes":{"expiration_ms":{"type":"number","description":"Number of milliseconds for which to keep the storage for a partition.","description_kind":"plain","optional":true,"computed":true},"field":{"type":"string","description":"The field used to determine how to create a time-based partition. If time-based partitioning is enabled without this value, the table is partitioned based on the load time.","description_kind":"plain","optional":true},"require_partition_filter":{"type":"bool","description":"If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified.","description_kind":"plain","optional":true},"type":{"type":"string","description":"The supported types are DAY, HOUR, MONTH, and YEAR, which will generate one partition per day, hour, month, and year, respectively.","description_kind":"plain","required":true}},"description":"If specified, configures time-based partitioning for this table.","description_kind":"plain"},"max_items":1},"view":{"nesting_mode":"list","block":{"attributes":{"query":{"type":"string","description":"A query that BigQuery executes when the view is referenced.","description_kind":"plain","required":true},"use_legacy_sql":{"type":"bool","description":"Specifies whether to use BigQuery's legacy SQL for this view. The default value is true. If set to false, the view will use BigQuery's standard SQL","description_kind":"plain","optional":true}},"description":"If specified, configures this table as a view.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_bigquery_table_iam_binding":{"version":0,"block":{"attributes":{"dataset_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"table_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_bigquery_table_iam_member":{"version":0,"block":{"attributes":{"dataset_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"table_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_bigquery_table_iam_policy":{"version":0,"block":{"attributes":{"dataset_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"table_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_bigtable_app_profile":{"version":0,"block":{"attributes":{"app_profile_id":{"type":"string","description":"The unique name of the app profile in the form '[_a-zA-Z0-9][-_.a-zA-Z0-9]*'.","description_kind":"plain","required":true},"description":{"type":"string","description":"Long form description of the use case for this app profile.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ignore_warnings":{"type":"bool","description":"If true, ignore safety checks when deleting/updating the app profile.","description_kind":"plain","optional":true},"instance":{"type":"string","description":"The name of the instance to create the app profile within.","description_kind":"plain","optional":true},"multi_cluster_routing_use_any":{"type":"bool","description":"If true, read/write requests are routed to the nearest cluster in the instance, and will fail over to the nearest cluster that is available\nin the event of transient errors or delays. Clusters in a region are considered equidistant. Choosing this option sacrifices read-your-writes\nconsistency to improve availability.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The unique name of the requested app profile. Values are of the form 'projects/\u003cproject\u003e/instances/\u003cinstance\u003e/appProfiles/\u003cappProfileId\u003e'.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"single_cluster_routing":{"nesting_mode":"list","block":{"attributes":{"allow_transactional_writes":{"type":"bool","description":"If true, CheckAndMutateRow and ReadModifyWriteRow requests are allowed by this app profile.\nIt is unsafe to send these requests to the same table/row/column in multiple clusters.","description_kind":"plain","optional":true},"cluster_id":{"type":"string","description":"The cluster to which read/write requests should be routed.","description_kind":"plain","required":true}},"description":"Use a single-cluster routing policy.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_bigtable_gc_policy":{"version":0,"block":{"attributes":{"column_family":{"type":"string","description":"The name of the column family.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_name":{"type":"string","description":"The name of the Bigtable instance.","description_kind":"plain","required":true},"mode":{"type":"string","description":"If multiple policies are set, you should choose between UNION OR INTERSECTION.","description_kind":"plain","optional":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"table":{"type":"string","description":"The name of the table.","description_kind":"plain","required":true}},"block_types":{"max_age":{"nesting_mode":"list","block":{"attributes":{"days":{"type":"number","description":"Number of days before applying GC policy.","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"duration":{"type":"string","description":"Duration before applying GC policy","description_kind":"plain","optional":true,"computed":true}},"description":"GC policy that applies to all cells older than the given age.","description_kind":"plain"},"max_items":1},"max_version":{"nesting_mode":"list","block":{"attributes":{"number":{"type":"number","description":"Number of version before applying the GC policy.","description_kind":"plain","required":true}},"description":"GC policy that applies to all versions of a cell except for the most recent.","description_kind":"plain"}}},"description_kind":"plain"}},"google_bigtable_instance":{"version":1,"block":{"attributes":{"deletion_protection":{"type":"bool","description":"Whether or not to allow Terraform to destroy the instance. Unless this field is set to false in Terraform state, a terraform destroy or terraform apply that would delete the instance will fail.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The human-readable display name of the Bigtable instance. Defaults to the instance name.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_type":{"type":"string","description":"The instance type to create. One of \"DEVELOPMENT\" or \"PRODUCTION\". Defaults to \"PRODUCTION\".","description_kind":"plain","deprecated":true,"optional":true},"labels":{"type":["map","string"],"description":"A mapping of labels to assign to the resource.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name (also called Instance Id in the Cloud Console) of the Cloud Bigtable instance.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"cluster":{"nesting_mode":"list","block":{"attributes":{"cluster_id":{"type":"string","description":"The ID of the Cloud Bigtable cluster.","description_kind":"plain","required":true},"kms_key_name":{"type":"string","description":"Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the cloudkms.cryptoKeyEncrypterDecrypter role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster. 3) All clusters within an instance must use the same CMEK key. Values are of the form projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}","description_kind":"plain","optional":true,"computed":true},"num_nodes":{"type":"number","description":"The number of nodes in your Cloud Bigtable cluster. Required, with a minimum of 1 for a PRODUCTION instance. Must be left unset for a DEVELOPMENT instance.","description_kind":"plain","optional":true,"computed":true},"storage_type":{"type":"string","description":"The storage type to use. One of \"SSD\" or \"HDD\". Defaults to \"SSD\".","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone to create the Cloud Bigtable cluster in. Each cluster must have a different zone in the same region. Zones that support Bigtable instances are noted on the Cloud Bigtable locations page.","description_kind":"plain","optional":true,"computed":true}},"description":"A block of cluster configuration options. This can be specified at least once.","description_kind":"plain"}}},"description_kind":"plain"}},"google_bigtable_instance_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_bigtable_instance_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_bigtable_instance_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_bigtable_table":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_name":{"type":"string","description":"The name of the Bigtable instance.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the table.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"split_keys":{"type":["list","string"],"description":"A list of predefined keys to split the table on. !\u003e Warning: Modifying the split_keys of an existing table will cause Terraform to delete/recreate the entire google_bigtable_table resource.","description_kind":"plain","optional":true}},"block_types":{"column_family":{"nesting_mode":"set","block":{"attributes":{"family":{"type":"string","description":"The name of the column family.","description_kind":"plain","required":true}},"description":"A group of columns within a table which share a common configuration. This can be specified multiple times.","description_kind":"plain"}}},"description_kind":"plain"}},"google_bigtable_table_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"table":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_bigtable_table_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"table":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_bigtable_table_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"table":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_billing_account_iam_binding":{"version":0,"block":{"attributes":{"billing_account_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_billing_account_iam_member":{"version":0,"block":{"attributes":{"billing_account_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_billing_account_iam_policy":{"version":0,"block":{"attributes":{"billing_account_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_billing_budget":{"version":1,"block":{"attributes":{"billing_account":{"type":"string","description":"ID of the billing account to set a budget on.","description_kind":"plain","required":true},"display_name":{"type":"string","description":"User data for display name in UI. Must be \u003c= 60 chars.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Resource name of the budget. The resource name\nimplies the scope of a budget. Values are of the form\nbillingAccounts/{billingAccountId}/budgets/{budgetId}.","description_kind":"plain","computed":true}},"block_types":{"all_updates_rule":{"nesting_mode":"list","block":{"attributes":{"disable_default_iam_recipients":{"type":"bool","description":"Boolean. When set to true, disables default notifications sent\nwhen a threshold is exceeded. Default recipients are\nthose with Billing Account Administrators and Billing\nAccount Users IAM roles for the target account.","description_kind":"plain","optional":true},"monitoring_notification_channels":{"type":["list","string"],"description":"The full resource name of a monitoring notification\nchannel in the form\nprojects/{project_id}/notificationChannels/{channel_id}.\nA maximum of 5 channels are allowed.","description_kind":"plain","optional":true},"pubsub_topic":{"type":"string","description":"The name of the Cloud Pub/Sub topic where budget related\nmessages will be published, in the form\nprojects/{project_id}/topics/{topic_id}. Updates are sent\nat regular intervals to the topic.","description_kind":"plain","optional":true},"schema_version":{"type":"string","description":"The schema version of the notification. Only \"1.0\" is\naccepted. It represents the JSON schema as defined in\nhttps://cloud.google.com/billing/docs/how-to/budgets#notification_format.","description_kind":"plain","optional":true}},"description":"Defines notifications that are sent on every update to the\nbilling account's spend, regardless of the thresholds defined\nusing threshold rules.","description_kind":"plain"},"max_items":1},"amount":{"nesting_mode":"list","block":{"attributes":{"last_period_amount":{"type":"bool","description":"Configures a budget amount that is automatically set to 100% of\nlast period's spend.\nBoolean. Set value to true to use. Do not set to false, instead\nuse the 'specified_amount' block.","description_kind":"plain","optional":true}},"block_types":{"specified_amount":{"nesting_mode":"list","block":{"attributes":{"currency_code":{"type":"string","description":"The 3-letter currency code defined in ISO 4217.","description_kind":"plain","optional":true,"computed":true},"nanos":{"type":"number","description":"Number of nano (10^-9) units of the amount.\nThe value must be between -999,999,999 and +999,999,999\ninclusive. If units is positive, nanos must be positive or\nzero. If units is zero, nanos can be positive, zero, or\nnegative. If units is negative, nanos must be negative or\nzero. For example $-1.75 is represented as units=-1 and\nnanos=-750,000,000.","description_kind":"plain","optional":true},"units":{"type":"string","description":"The whole units of the amount. For example if currencyCode\nis \"USD\", then 1 unit is one US dollar.","description_kind":"plain","optional":true}},"description":"A specified amount to use as the budget. currencyCode is\noptional. If specified, it must match the currency of the\nbilling account. The currencyCode is provided on output.","description_kind":"plain"},"max_items":1}},"description":"The budgeted amount for each usage period.","description_kind":"plain"},"min_items":1,"max_items":1},"budget_filter":{"nesting_mode":"list","block":{"attributes":{"credit_types":{"type":["list","string"],"description":"A set of subaccounts of the form billingAccounts/{account_id},\nspecifying that usage from only this set of subaccounts should\nbe included in the budget. If a subaccount is set to the name of\nthe parent account, usage from the parent account will be included.\nIf the field is omitted, the report will include usage from the parent\naccount and all subaccounts, if they exist.","description_kind":"plain","optional":true,"computed":true},"credit_types_treatment":{"type":"string","description":"Specifies how credits should be treated when determining spend\nfor threshold calculations. Default value: \"INCLUDE_ALL_CREDITS\" Possible values: [\"INCLUDE_ALL_CREDITS\", \"EXCLUDE_ALL_CREDITS\", \"INCLUDE_SPECIFIED_CREDITS\"]","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"A single label and value pair specifying that usage from only\nthis set of labeled resources should be included in the budget.","description_kind":"plain","optional":true,"computed":true},"projects":{"type":["set","string"],"description":"A set of projects of the form projects/{project_number},\nspecifying that usage from only this set of projects should be\nincluded in the budget. If omitted, the report will include\nall usage for the billing account, regardless of which project\nthe usage occurred on.","description_kind":"plain","optional":true},"services":{"type":["list","string"],"description":"A set of services of the form services/{service_id},\nspecifying that usage from only this set of services should be\nincluded in the budget. If omitted, the report will include\nusage for all the services. The service names are available\nthrough the Catalog API:\nhttps://cloud.google.com/billing/v1/how-tos/catalog-api.","description_kind":"plain","optional":true,"computed":true},"subaccounts":{"type":["list","string"],"description":"A set of subaccounts of the form billingAccounts/{account_id},\nspecifying that usage from only this set of subaccounts should\nbe included in the budget. If a subaccount is set to the name of\nthe parent account, usage from the parent account will be included.\nIf the field is omitted, the report will include usage from the parent\naccount and all subaccounts, if they exist.","description_kind":"plain","optional":true,"computed":true}},"description":"Filters that define which resources are used to compute the actual\nspend against the budget.","description_kind":"plain"},"max_items":1},"threshold_rules":{"nesting_mode":"list","block":{"attributes":{"spend_basis":{"type":"string","description":"The type of basis used to determine if spend has passed\nthe threshold. Default value: \"CURRENT_SPEND\" Possible values: [\"CURRENT_SPEND\", \"FORECASTED_SPEND\"]","description_kind":"plain","optional":true},"threshold_percent":{"type":"number","description":"Send an alert when this threshold is exceeded. This is a\n1.0-based percentage, so 0.5 = 50%. Must be \u003e= 0.","description_kind":"plain","required":true}},"description":"Rules that trigger alerts (notifications of thresholds being\ncrossed) when spend exceeds the specified percentages of the\nbudget.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_billing_subaccount":{"version":0,"block":{"attributes":{"billing_account_id":{"type":"string","description_kind":"plain","computed":true},"deletion_policy":{"type":"string","description_kind":"plain","optional":true},"display_name":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"master_billing_account":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","computed":true},"open":{"type":"bool","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_binary_authorization_attestor":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A descriptive comment. This field may be updated. The field may be\ndisplayed in chooser dialogs.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"attestation_authority_note":{"nesting_mode":"list","block":{"attributes":{"delegation_service_account_email":{"type":"string","description":"This field will contain the service account email address that\nthis Attestor will use as the principal when querying Container\nAnalysis. Attestor administrators must grant this service account\nthe IAM role needed to read attestations from the noteReference in\nContainer Analysis (containeranalysis.notes.occurrences.viewer).\nThis email address is fixed for the lifetime of the Attestor, but\ncallers should not make any other assumptions about the service\naccount email; future versions may use an email based on a\ndifferent naming pattern.","description_kind":"plain","computed":true},"note_reference":{"type":"string","description":"The resource name of a ATTESTATION_AUTHORITY Note, created by the\nuser. If the Note is in a different project from the Attestor, it\nshould be specified in the format 'projects/*/notes/*' (or the legacy\n'providers/*/notes/*'). This field may not be updated.\nAn attestation by this attestor is stored as a Container Analysis\nATTESTATION_AUTHORITY Occurrence that names a container image\nand that links to this Note.","description_kind":"plain","required":true}},"block_types":{"public_keys":{"nesting_mode":"list","block":{"attributes":{"ascii_armored_pgp_public_key":{"type":"string","description":"ASCII-armored representation of a PGP public key, as the\nentire output by the command\n'gpg --export --armor foo@example.com' (either LF or CRLF\nline endings). When using this field, id should be left\nblank. The BinAuthz API handlers will calculate the ID\nand fill it in automatically. BinAuthz computes this ID\nas the OpenPGP RFC4880 V4 fingerprint, represented as\nupper-case hex. If id is provided by the caller, it will\nbe overwritten by the API-calculated ID.","description_kind":"plain","optional":true},"comment":{"type":"string","description":"A descriptive comment. This field may be updated.","description_kind":"plain","optional":true},"id":{"type":"string","description":"The ID of this public key. Signatures verified by BinAuthz\nmust include the ID of the public key that can be used to\nverify them, and that ID must match the contents of this\nfield exactly. Additional restrictions on this field can\nbe imposed based on which public key type is encapsulated.\nSee the documentation on publicKey cases below for details.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"pkix_public_key":{"nesting_mode":"list","block":{"attributes":{"public_key_pem":{"type":"string","description":"A PEM-encoded public key, as described in\n'https://tools.ietf.org/html/rfc7468#section-13'","description_kind":"plain","optional":true},"signature_algorithm":{"type":"string","description":"The signature algorithm used to verify a message against\na signature using this key. These signature algorithm must\nmatch the structure and any object identifiers encoded in\npublicKeyPem (i.e. this algorithm must match that of the\npublic key).","description_kind":"plain","optional":true}},"description":"A raw PKIX SubjectPublicKeyInfo format public key.\n\nNOTE: id may be explicitly provided by the caller when using this\ntype of public key, but it MUST be a valid RFC3986 URI. If id is left\nblank, a default one will be computed based on the digest of the DER\nencoding of the public key.","description_kind":"plain"},"max_items":1}},"description":"Public keys that verify attestations signed by this attestor. This\nfield may be updated.\nIf this field is non-empty, one of the specified public keys must\nverify that an attestation was signed by this attestor for the\nimage specified in the admission request.\nIf this field is empty, this attestor always returns that no valid\nattestations exist.","description_kind":"plain"}}},"description":"A Container Analysis ATTESTATION_AUTHORITY Note, created by the user.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_binary_authorization_attestor_iam_binding":{"version":0,"block":{"attributes":{"attestor":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_binary_authorization_attestor_iam_member":{"version":0,"block":{"attributes":{"attestor":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_binary_authorization_attestor_iam_policy":{"version":0,"block":{"attributes":{"attestor":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_binary_authorization_policy":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A descriptive comment.","description_kind":"plain","optional":true},"global_policy_evaluation_mode":{"type":"string","description":"Controls the evaluation of a Google-maintained global admission policy\nfor common system-level images. Images not covered by the global\npolicy will be subject to the project admission policy. Possible values: [\"ENABLE\", \"DISABLE\"]","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"admission_whitelist_patterns":{"nesting_mode":"list","block":{"attributes":{"name_pattern":{"type":"string","description":"An image name pattern to whitelist, in the form\n'registry/path/to/image'. This supports a trailing * as a\nwildcard, but this is allowed only in text after the registry/\npart.","description_kind":"plain","required":true}},"description":"A whitelist of image patterns to exclude from admission rules. If an\nimage's name matches a whitelist pattern, the image's admission\nrequests will always be permitted regardless of your admission rules.","description_kind":"plain"}},"cluster_admission_rules":{"nesting_mode":"set","block":{"attributes":{"cluster":{"type":"string","description_kind":"plain","required":true},"enforcement_mode":{"type":"string","description":"The action when a pod creation is denied by the admission rule. Possible values: [\"ENFORCED_BLOCK_AND_AUDIT_LOG\", \"DRYRUN_AUDIT_LOG_ONLY\"]","description_kind":"plain","required":true},"evaluation_mode":{"type":"string","description":"How this admission rule will be evaluated. Possible values: [\"ALWAYS_ALLOW\", \"REQUIRE_ATTESTATION\", \"ALWAYS_DENY\"]","description_kind":"plain","required":true},"require_attestations_by":{"type":["set","string"],"description":"The resource names of the attestors that must attest to a\ncontainer image. If the attestor is in a different project from the\npolicy, it should be specified in the format 'projects/*/attestors/*'.\nEach attestor must exist before a policy can reference it. To add an\nattestor to a policy the principal issuing the policy change\nrequest must be able to read the attestor resource.\n\nNote: this field must be non-empty when the evaluation_mode field\nspecifies REQUIRE_ATTESTATION, otherwise it must be empty.","description_kind":"plain","optional":true}},"description":"Per-cluster admission rules. An admission rule specifies either that\nall container images used in a pod creation request must be attested\nto by one or more attestors, that all pod creations will be allowed,\nor that all pod creations will be denied. There can be at most one\nadmission rule per cluster spec.\n\n\nIdentifier format: '{{location}}.{{clusterId}}'.\nA location is either a compute zone (e.g. 'us-central1-a') or a region\n(e.g. 'us-central1').","description_kind":"plain"}},"default_admission_rule":{"nesting_mode":"list","block":{"attributes":{"enforcement_mode":{"type":"string","description":"The action when a pod creation is denied by the admission rule. Possible values: [\"ENFORCED_BLOCK_AND_AUDIT_LOG\", \"DRYRUN_AUDIT_LOG_ONLY\"]","description_kind":"plain","required":true},"evaluation_mode":{"type":"string","description":"How this admission rule will be evaluated. Possible values: [\"ALWAYS_ALLOW\", \"REQUIRE_ATTESTATION\", \"ALWAYS_DENY\"]","description_kind":"plain","required":true},"require_attestations_by":{"type":["set","string"],"description":"The resource names of the attestors that must attest to a\ncontainer image. If the attestor is in a different project from the\npolicy, it should be specified in the format 'projects/*/attestors/*'.\nEach attestor must exist before a policy can reference it. To add an\nattestor to a policy the principal issuing the policy change\nrequest must be able to read the attestor resource.\n\nNote: this field must be non-empty when the evaluation_mode field\nspecifies REQUIRE_ATTESTATION, otherwise it must be empty.","description_kind":"plain","optional":true}},"description":"Default admission rule for a cluster without a per-cluster admission\nrule.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloud_asset_folder_feed":{"version":0,"block":{"attributes":{"asset_names":{"type":["list","string"],"description":"A list of the full names of the assets to receive updates. You must specify either or both of \nassetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are\nexported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1.\nSee https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info.","description_kind":"plain","optional":true},"asset_types":{"type":["list","string"],"description":"A list of types of the assets to receive updates. You must specify either or both of assetNames\nand assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to\nthe feed. For example: \"compute.googleapis.com/Disk\"\nSee https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all\nsupported asset types.","description_kind":"plain","optional":true},"billing_project":{"type":"string","description":"The project whose identity will be used when sending messages to the\ndestination pubsub topic. It also specifies the project for API \nenablement check, quota, and billing.","description_kind":"plain","required":true},"content_type":{"type":"string","description":"Asset content type. If not specified, no content but the asset name and type will be returned. Possible values: [\"CONTENT_TYPE_UNSPECIFIED\", \"RESOURCE\", \"IAM_POLICY\", \"ORG_POLICY\", \"ACCESS_POLICY\"]","description_kind":"plain","optional":true},"feed_id":{"type":"string","description":"This is the client-assigned asset feed identifier and it needs to be unique under a specific parent.","description_kind":"plain","required":true},"folder":{"type":"string","description":"The folder this feed should be created in.","description_kind":"plain","required":true},"folder_id":{"type":"string","description":"The ID of the folder where this feed has been created. Both [FOLDER_NUMBER]\nand folders/[FOLDER_NUMBER] are accepted.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The format will be folders/{folder_number}/feeds/{client-assigned_feed_identifier}.","description_kind":"plain","computed":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Description of the expression. This is a longer text which describes the expression,\ne.g. when hovered over it in a UI.","description_kind":"plain","optional":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.","description_kind":"plain","required":true},"location":{"type":"string","description":"String indicating the location of the expression for error reporting, e.g. a file \nname and a position in the file.","description_kind":"plain","optional":true},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its purpose.\nThis can be used e.g. in UIs which allow to enter the expression.","description_kind":"plain","optional":true}},"description":"A condition which determines whether an asset update should be published. If specified, an asset\nwill be returned only when the expression evaluates to true. When set, expression field\nmust be a valid CEL expression on a TemporalAsset with name temporal_asset. Example: a Feed with\nexpression \"temporal_asset.deleted == true\" will only publish Asset deletions. Other fields of\ncondition are optional.","description_kind":"plain"},"max_items":1},"feed_output_config":{"nesting_mode":"list","block":{"block_types":{"pubsub_destination":{"nesting_mode":"list","block":{"attributes":{"topic":{"type":"string","description":"Destination on Cloud Pubsub topic.","description_kind":"plain","required":true}},"description":"Destination on Cloud Pubsub.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Output configuration for asset feed destination.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloud_asset_organization_feed":{"version":0,"block":{"attributes":{"asset_names":{"type":["list","string"],"description":"A list of the full names of the assets to receive updates. You must specify either or both of \nassetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are\nexported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1.\nSee https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info.","description_kind":"plain","optional":true},"asset_types":{"type":["list","string"],"description":"A list of types of the assets to receive updates. You must specify either or both of assetNames\nand assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to\nthe feed. For example: \"compute.googleapis.com/Disk\"\nSee https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all\nsupported asset types.","description_kind":"plain","optional":true},"billing_project":{"type":"string","description":"The project whose identity will be used when sending messages to the\ndestination pubsub topic. It also specifies the project for API \nenablement check, quota, and billing.","description_kind":"plain","required":true},"content_type":{"type":"string","description":"Asset content type. If not specified, no content but the asset name and type will be returned. Possible values: [\"CONTENT_TYPE_UNSPECIFIED\", \"RESOURCE\", \"IAM_POLICY\", \"ORG_POLICY\", \"ACCESS_POLICY\"]","description_kind":"plain","optional":true},"feed_id":{"type":"string","description":"This is the client-assigned asset feed identifier and it needs to be unique under a specific parent.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The format will be organizations/{organization_number}/feeds/{client-assigned_feed_identifier}.","description_kind":"plain","computed":true},"org_id":{"type":"string","description":"The organization this feed should be created in.","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Description of the expression. This is a longer text which describes the expression,\ne.g. when hovered over it in a UI.","description_kind":"plain","optional":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.","description_kind":"plain","required":true},"location":{"type":"string","description":"String indicating the location of the expression for error reporting, e.g. a file \nname and a position in the file.","description_kind":"plain","optional":true},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its purpose.\nThis can be used e.g. in UIs which allow to enter the expression.","description_kind":"plain","optional":true}},"description":"A condition which determines whether an asset update should be published. If specified, an asset\nwill be returned only when the expression evaluates to true. When set, expression field\nmust be a valid CEL expression on a TemporalAsset with name temporal_asset. Example: a Feed with\nexpression \"temporal_asset.deleted == true\" will only publish Asset deletions. Other fields of\ncondition are optional.","description_kind":"plain"},"max_items":1},"feed_output_config":{"nesting_mode":"list","block":{"block_types":{"pubsub_destination":{"nesting_mode":"list","block":{"attributes":{"topic":{"type":"string","description":"Destination on Cloud Pubsub topic.","description_kind":"plain","required":true}},"description":"Destination on Cloud Pubsub.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Output configuration for asset feed destination.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloud_asset_project_feed":{"version":0,"block":{"attributes":{"asset_names":{"type":["list","string"],"description":"A list of the full names of the assets to receive updates. You must specify either or both of \nassetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are\nexported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1.\nSee https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info.","description_kind":"plain","optional":true},"asset_types":{"type":["list","string"],"description":"A list of types of the assets to receive updates. You must specify either or both of assetNames\nand assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to\nthe feed. For example: \"compute.googleapis.com/Disk\"\nSee https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all\nsupported asset types.","description_kind":"plain","optional":true},"billing_project":{"type":"string","description":"The project whose identity will be used when sending messages to the\ndestination pubsub topic. It also specifies the project for API \nenablement check, quota, and billing. If not specified, the resource's\nproject will be used.","description_kind":"plain","optional":true},"content_type":{"type":"string","description":"Asset content type. If not specified, no content but the asset name and type will be returned. Possible values: [\"CONTENT_TYPE_UNSPECIFIED\", \"RESOURCE\", \"IAM_POLICY\", \"ORG_POLICY\", \"ACCESS_POLICY\"]","description_kind":"plain","optional":true},"feed_id":{"type":"string","description":"This is the client-assigned asset feed identifier and it needs to be unique under a specific parent.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The format will be projects/{projectNumber}/feeds/{client-assigned_feed_identifier}.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Description of the expression. This is a longer text which describes the expression,\ne.g. when hovered over it in a UI.","description_kind":"plain","optional":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.","description_kind":"plain","required":true},"location":{"type":"string","description":"String indicating the location of the expression for error reporting, e.g. a file \nname and a position in the file.","description_kind":"plain","optional":true},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its purpose.\nThis can be used e.g. in UIs which allow to enter the expression.","description_kind":"plain","optional":true}},"description":"A condition which determines whether an asset update should be published. If specified, an asset\nwill be returned only when the expression evaluates to true. When set, expression field\nmust be a valid CEL expression on a TemporalAsset with name temporal_asset. Example: a Feed with\nexpression \"temporal_asset.deleted == true\" will only publish Asset deletions. Other fields of\ncondition are optional.","description_kind":"plain"},"max_items":1},"feed_output_config":{"nesting_mode":"list","block":{"block_types":{"pubsub_destination":{"nesting_mode":"list","block":{"attributes":{"topic":{"type":"string","description":"Destination on Cloud Pubsub topic.","description_kind":"plain","required":true}},"description":"Destination on Cloud Pubsub.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Output configuration for asset feed destination.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloud_identity_group":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"The time when the Group was created.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An extended description to help users determine the purpose of a Group.\nMust not be longer than 4,096 characters.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The display name of the Group.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"initial_group_config":{"type":"string","description":"The initial configuration options for creating a Group.\n\nSee the\n[API reference](https://cloud.google.com/identity/docs/reference/rest/v1beta1/groups/create#initialgroupconfig)\nfor possible values. Default value: \"EMPTY\" Possible values: [\"INITIAL_GROUP_CONFIG_UNSPECIFIED\", \"WITH_INITIAL_OWNER\", \"EMPTY\"]","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"The labels that apply to the Group.\n\nMust not contain more than one entry. Must contain the entry\n'cloudidentity.googleapis.com/groups.discussion_forum': '' if the Group is a Google Group or\n'system/groups/external': '' if the Group is an external-identity-mapped group.","description_kind":"plain","required":true},"name":{"type":"string","description":"Resource name of the Group in the format: groups/{group_id}, where group_id\nis the unique ID assigned to the Group.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The resource name of the entity under which this Group resides in the\nCloud Identity resource hierarchy.\n\nMust be of the form identitysources/{identity_source_id} for external-identity-mapped\ngroups or customers/{customer_id} for Google Groups.","description_kind":"plain","required":true},"update_time":{"type":"string","description":"The time when the Group was last updated.","description_kind":"plain","computed":true}},"block_types":{"group_key":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description":"The ID of the entity.\n\nFor Google-managed entities, the id must be the email address of an existing\ngroup or user.\n\nFor external-identity-mapped entities, the id must be a string conforming\nto the Identity Source's requirements.\n\nMust be unique within a namespace.","description_kind":"plain","required":true},"namespace":{"type":"string","description":"The namespace in which the entity exists.\n\nIf not specified, the EntityKey represents a Google-managed entity\nsuch as a Google user or a Google Group.\n\nIf specified, the EntityKey represents an external-identity-mapped group.\nThe namespace must correspond to an identity source created in Admin Console\nand must be in the form of 'identitysources/{identity_source_id}'.","description_kind":"plain","optional":true}},"description":"EntityKey of the Group.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloud_identity_group_membership":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"The time when the Membership was created.","description_kind":"plain","computed":true},"group":{"type":"string","description":"The name of the Group to create this membership in.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of the Membership, of the form groups/{group_id}/memberships/{membership_id}.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of the membership.","description_kind":"plain","computed":true},"update_time":{"type":"string","description":"The time when the Membership was last updated.","description_kind":"plain","computed":true}},"block_types":{"preferred_member_key":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description":"The ID of the entity.\n\nFor Google-managed entities, the id must be the email address of an existing\ngroup or user.\n\nFor external-identity-mapped entities, the id must be a string conforming\nto the Identity Source's requirements.\n\nMust be unique within a namespace.","description_kind":"plain","required":true},"namespace":{"type":"string","description":"The namespace in which the entity exists.\n\nIf not specified, the EntityKey represents a Google-managed entity\nsuch as a Google user or a Google Group.\n\nIf specified, the EntityKey represents an external-identity-mapped group.\nThe namespace must correspond to an identity source created in Admin Console\nand must be in the form of 'identitysources/{identity_source_id}'.","description_kind":"plain","optional":true}},"description":"EntityKey of the member.","description_kind":"plain"},"max_items":1},"roles":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description":"The name of the MembershipRole. Must be one of OWNER, MANAGER, MEMBER. Possible values: [\"OWNER\", \"MANAGER\", \"MEMBER\"]","description_kind":"plain","required":true}},"description":"The MembershipRoles that apply to the Membership.\nMust not contain duplicate MembershipRoles with the same name.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloud_run_domain_mapping":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location of the cloud run instance. eg us-central1","description_kind":"plain","required":true},"name":{"type":"string","description":"Name should be a [verified](https://support.google.com/webmasters/answer/9008080) domain","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":["list",["object",{"conditions":["list",["object",{"message":"string","reason":"string","status":"string","type":"string"}]],"mapped_route_name":"string","observed_generation":"number","resource_records":["list",["object",{"name":"string","rrdata":"string","type":"string"}]]}]],"description":"The current status of the DomainMapping.","description_kind":"plain","computed":true}},"block_types":{"metadata":{"nesting_mode":"list","block":{"attributes":{"annotations":{"type":["map","string"],"description":"Annotations is a key value map stored with a resource that\nmay be set by external tools to store and retrieve arbitrary metadata. More\ninfo: http://kubernetes.io/docs/user-guide/annotations\n\n**Note**: The Cloud Run API may add additional annotations that were not provided in your config.\nIf terraform plan shows a diff where a server-side annotation is added, you can add it to your config\nor apply the lifecycle.ignore_changes rule to the metadata.0.annotations field.","description_kind":"plain","optional":true,"computed":true},"generation":{"type":"number","description":"A sequence number representing a specific generation of the desired state.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Map of string keys and values that can be used to organize and categorize\n(scope and select) objects. May match selectors of replication controllers\nand routes.\nMore info: http://kubernetes.io/docs/user-guide/labels","description_kind":"plain","optional":true,"computed":true},"namespace":{"type":"string","description":"In Cloud Run the namespace must be equal to either the\nproject ID or project number.","description_kind":"plain","required":true},"resource_version":{"type":"string","description":"An opaque value that represents the internal version of this object that\ncan be used by clients to determine when objects have changed. May be used\nfor optimistic concurrency, change detection, and the watch operation on a\nresource or set of resources. They may only be valid for a\nparticular resource or set of resources.\n\nMore info:\nhttps://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"SelfLink is a URL representing this object.","description_kind":"plain","computed":true},"uid":{"type":"string","description":"UID is a unique id generated by the server on successful creation of a resource and is not\nallowed to change on PUT operations.\n\nMore info: http://kubernetes.io/docs/user-guide/identifiers#uids","description_kind":"plain","computed":true}},"description":"Metadata associated with this DomainMapping.","description_kind":"plain"},"min_items":1,"max_items":1},"spec":{"nesting_mode":"list","block":{"attributes":{"certificate_mode":{"type":"string","description":"The mode of the certificate. Default value: \"AUTOMATIC\" Possible values: [\"NONE\", \"AUTOMATIC\"]","description_kind":"plain","optional":true},"force_override":{"type":"bool","description":"If set, the mapping will override any mapping set before this spec was set.\nIt is recommended that the user leaves this empty to receive an error\nwarning about a potential conflict and only set it once the respective UI\nhas given such a warning.","description_kind":"plain","optional":true},"route_name":{"type":"string","description":"The name of the Cloud Run Service that this DomainMapping applies to.\nThe route must exist.","description_kind":"plain","required":true}},"description":"The spec for this DomainMapping.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloud_run_service":{"version":1,"block":{"attributes":{"autogenerate_revision_name":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location of the cloud run instance. eg us-central1","description_kind":"plain","required":true},"name":{"type":"string","description":"Name must be unique within a namespace, within a Cloud Run region.\nIs required when creating resources. Name is primarily intended\nfor creation idempotence and configuration definition. Cannot be updated.\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":["list",["object",{"conditions":["list",["object",{"message":"string","reason":"string","status":"string","type":"string"}]],"latest_created_revision_name":"string","latest_ready_revision_name":"string","observed_generation":"number","url":"string"}]],"description":"The current status of the Service.","description_kind":"plain","computed":true}},"block_types":{"metadata":{"nesting_mode":"list","block":{"attributes":{"annotations":{"type":["map","string"],"description":"Annotations is a key value map stored with a resource that\nmay be set by external tools to store and retrieve arbitrary metadata. More\ninfo: http://kubernetes.io/docs/user-guide/annotations\n\n**Note**: The Cloud Run API may add additional annotations that were not provided in your config.\nIf terraform plan shows a diff where a server-side annotation is added, you can add it to your config\nor apply the lifecycle.ignore_changes rule to the metadata.0.annotations field.\n\nCloud Run (fully managed) uses the following annotation keys to configure features on a Service:\n\n- 'run.googleapis.com/ingress' sets the [ingress settings](https://cloud.google.com/sdk/gcloud/reference/run/deploy#--ingress)\n for the Service. For example, '\"run.googleapis.com/ingress\" = \"all\"'.","description_kind":"plain","optional":true,"computed":true},"generation":{"type":"number","description":"A sequence number representing a specific generation of the desired state.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Map of string keys and values that can be used to organize and categorize\n(scope and select) objects. May match selectors of replication controllers\nand routes.\nMore info: http://kubernetes.io/docs/user-guide/labels","description_kind":"plain","optional":true,"computed":true},"namespace":{"type":"string","description":"In Cloud Run the namespace must be equal to either the\nproject ID or project number.","description_kind":"plain","optional":true,"computed":true},"resource_version":{"type":"string","description":"An opaque value that represents the internal version of this object that\ncan be used by clients to determine when objects have changed. May be used\nfor optimistic concurrency, change detection, and the watch operation on a\nresource or set of resources. They may only be valid for a\nparticular resource or set of resources.\n\nMore info:\nhttps://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"SelfLink is a URL representing this object.","description_kind":"plain","computed":true},"uid":{"type":"string","description":"UID is a unique id generated by the server on successful creation of a resource and is not\nallowed to change on PUT operations.\n\nMore info: http://kubernetes.io/docs/user-guide/identifiers#uids","description_kind":"plain","computed":true}},"description":"Metadata associated with this Service, including name, namespace, labels,\nand annotations.","description_kind":"plain"},"max_items":1},"template":{"nesting_mode":"list","block":{"block_types":{"metadata":{"nesting_mode":"list","block":{"attributes":{"annotations":{"type":["map","string"],"description":"Annotations is a key value map stored with a resource that\nmay be set by external tools to store and retrieve arbitrary metadata. More\ninfo: http://kubernetes.io/docs/user-guide/annotations\n\n**Note**: The Cloud Run API may add additional annotations that were not provided in your config.\nIf terraform plan shows a diff where a server-side annotation is added, you can add it to your config\nor apply the lifecycle.ignore_changes rule to the metadata.0.annotations field.","description_kind":"plain","optional":true,"computed":true},"generation":{"type":"number","description":"A sequence number representing a specific generation of the desired state.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Map of string keys and values that can be used to organize and categorize\n(scope and select) objects. May match selectors of replication controllers\nand routes.\nMore info: http://kubernetes.io/docs/user-guide/labels","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name must be unique within a namespace, within a Cloud Run region.\nIs required when creating resources. Name is primarily intended\nfor creation idempotence and configuration definition. Cannot be updated.\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names","description_kind":"plain","optional":true,"computed":true},"namespace":{"type":"string","description":"In Cloud Run the namespace must be equal to either the\nproject ID or project number. It will default to the resource's project.","description_kind":"plain","optional":true,"computed":true},"resource_version":{"type":"string","description":"An opaque value that represents the internal version of this object that\ncan be used by clients to determine when objects have changed. May be used\nfor optimistic concurrency, change detection, and the watch operation on a\nresource or set of resources. They may only be valid for a\nparticular resource or set of resources.\n\nMore info:\nhttps://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"SelfLink is a URL representing this object.","description_kind":"plain","computed":true},"uid":{"type":"string","description":"UID is a unique id generated by the server on successful creation of a resource and is not\nallowed to change on PUT operations.\n\nMore info: http://kubernetes.io/docs/user-guide/identifiers#uids","description_kind":"plain","computed":true}},"description":"Optional metadata for this Revision, including labels and annotations.\nName will be generated by the Configuration. To set minimum instances\nfor this revision, use the \"autoscaling.knative.dev/minScale\" annotation\nkey. To set maximum instances for this revision, use the\n\"autoscaling.knative.dev/maxScale\" annotation key. To set Cloud SQL\nconnections for the revision, use the \"run.googleapis.com/cloudsql-instances\"\nannotation key.","description_kind":"plain"},"max_items":1},"spec":{"nesting_mode":"list","block":{"attributes":{"container_concurrency":{"type":"number","description":"ContainerConcurrency specifies the maximum allowed in-flight (concurrent)\nrequests per container of the Revision. Values are:\n- '0' thread-safe, the system should manage the max concurrency. This is\n the default value.\n- '1' not-thread-safe. Single concurrency\n- '2-N' thread-safe, max concurrency of N","description_kind":"plain","optional":true,"computed":true},"service_account_name":{"type":"string","description":"Email address of the IAM service account associated with the revision of the\nservice. The service account represents the identity of the running revision,\nand determines what permissions the revision has. If not provided, the revision\nwill use the project's default service account.","description_kind":"plain","optional":true},"serving_state":{"type":"string","description":"ServingState holds a value describing the state the resources\nare in for this Revision.\nIt is expected\nthat the system will manipulate this based on routability and load.","description_kind":"plain","deprecated":true,"computed":true},"timeout_seconds":{"type":"number","description":"TimeoutSeconds holds the max duration the instance is allowed for responding to a request.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"containers":{"nesting_mode":"list","block":{"attributes":{"args":{"type":["list","string"],"description":"Arguments to the entrypoint.\nThe docker image's CMD is used if this is not provided.\nVariable references $(VAR_NAME) are expanded using the container's\nenvironment. If a variable cannot be resolved, the reference in the input\nstring will be unchanged. The $(VAR_NAME) syntax can be escaped with a\ndouble $$, ie: $$(VAR_NAME). Escaped references will never be expanded,\nregardless of whether the variable exists or not.\nMore info:\nhttps://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell","description_kind":"plain","optional":true},"command":{"type":["list","string"],"description":"Entrypoint array. Not executed within a shell.\nThe docker image's ENTRYPOINT is used if this is not provided.\nVariable references $(VAR_NAME) are expanded using the container's\nenvironment. If a variable cannot be resolved, the reference in the input\nstring will be unchanged. The $(VAR_NAME) syntax can be escaped with a\ndouble $$, ie: $$(VAR_NAME). Escaped references will never be expanded,\nregardless of whether the variable exists or not.\nMore info:\nhttps://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell","description_kind":"plain","optional":true},"image":{"type":"string","description":"Docker image name. This is most often a reference to a container located\nin the container registry, such as gcr.io/cloudrun/hello\nMore info: https://kubernetes.io/docs/concepts/containers/images","description_kind":"plain","required":true},"working_dir":{"type":"string","description":"Container's working directory.\nIf not specified, the container runtime's default will be used, which\nmight be configured in the container image.","description_kind":"plain","deprecated":true,"optional":true}},"block_types":{"env":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description":"Name of the environment variable.","description_kind":"plain","optional":true},"value":{"type":"string","description":"Variable references $(VAR_NAME) are expanded\nusing the previous defined environment variables in the container and\nany route environment variables. If a variable cannot be resolved,\nthe reference in the input string will be unchanged. The $(VAR_NAME)\nsyntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped\nreferences will never be expanded, regardless of whether the variable\nexists or not.\nDefaults to \"\".","description_kind":"plain","optional":true}},"description":"List of environment variables to set in the container.","description_kind":"plain"}},"env_from":{"nesting_mode":"list","block":{"attributes":{"prefix":{"type":"string","description":"An optional identifier to prepend to each key in the ConfigMap.","description_kind":"plain","optional":true}},"block_types":{"config_map_ref":{"nesting_mode":"list","block":{"attributes":{"optional":{"type":"bool","description":"Specify whether the ConfigMap must be defined","description_kind":"plain","optional":true}},"block_types":{"local_object_reference":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the referent.\nMore info:\nhttps://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names","description_kind":"plain","required":true}},"description":"The ConfigMap to select from.","description_kind":"plain"},"max_items":1}},"description":"The ConfigMap to select from.","description_kind":"plain"},"max_items":1},"secret_ref":{"nesting_mode":"list","block":{"attributes":{"optional":{"type":"bool","description":"Specify whether the Secret must be defined","description_kind":"plain","optional":true}},"block_types":{"local_object_reference":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the referent.\nMore info:\nhttps://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names","description_kind":"plain","required":true}},"description":"The Secret to select from.","description_kind":"plain"},"max_items":1}},"description":"The Secret to select from.","description_kind":"plain"},"max_items":1}},"description":"List of sources to populate environment variables in the container.\nAll invalid keys will be reported as an event when the container is starting.\nWhen a key exists in multiple sources, the value associated with the last source will\ntake precedence. Values defined by an Env with a duplicate key will take\nprecedence.","description_kind":"plain","deprecated":true}},"ports":{"nesting_mode":"list","block":{"attributes":{"container_port":{"type":"number","description":"Port number.","description_kind":"plain","required":true},"name":{"type":"string","description":"Name of the port.","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description":"Protocol used on port. Defaults to TCP.","description_kind":"plain","optional":true}},"description":"List of open ports in the container.\nMore Info: \nhttps://cloud.google.com/run/docs/reference/rest/v1/RevisionSpec#ContainerPort","description_kind":"plain"}},"resources":{"nesting_mode":"list","block":{"attributes":{"limits":{"type":["map","string"],"description":"Limits describes the maximum amount of compute resources allowed.\nThe values of the map is string form of the 'quantity' k8s type:\nhttps://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go","description_kind":"plain","optional":true,"computed":true},"requests":{"type":["map","string"],"description":"Requests describes the minimum amount of compute resources required.\nIf Requests is omitted for a container, it defaults to Limits if that is\nexplicitly specified, otherwise to an implementation-defined value.\nThe values of the map is string form of the 'quantity' k8s type:\nhttps://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go","description_kind":"plain","optional":true}},"description":"Compute Resources required by this container. Used to set values such as max memory\nMore info:\nhttps://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits","description_kind":"plain"},"max_items":1}},"description":"Container defines the unit of execution for this Revision.\nIn the context of a Revision, we disallow a number of the fields of\nthis Container, including: name, ports, and volumeMounts.\nThe runtime contract is documented here:\nhttps://github.com/knative/serving/blob/master/docs/runtime-contract.md","description_kind":"plain"}}},"description":"RevisionSpec holds the desired state of the Revision (from the client).","description_kind":"plain"},"max_items":1}},"description":"template holds the latest specification for the Revision to\nbe stamped out. The template references the container image, and may also\ninclude labels and annotations that should be attached to the Revision.\nTo correlate a Revision, and/or to force a Revision to be created when the\nspec doesn't otherwise change, a nonce label may be provided in the\ntemplate metadata. For more details, see:\nhttps://github.com/knative/serving/blob/master/docs/client-conventions.md#associate-modifications-with-revisions\n\nCloud Run does not currently support referencing a build that is\nresponsible for materializing the container image from source.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"traffic":{"nesting_mode":"list","block":{"attributes":{"latest_revision":{"type":"bool","description":"LatestRevision may be optionally provided to indicate that the latest ready\nRevision of the Configuration should be used for this traffic target. When\nprovided LatestRevision must be true if RevisionName is empty; it must be\nfalse when RevisionName is non-empty.","description_kind":"plain","optional":true},"percent":{"type":"number","description":"Percent specifies percent of the traffic to this Revision or Configuration.","description_kind":"plain","required":true},"revision_name":{"type":"string","description":"RevisionName of a specific revision to which to send this portion of traffic.","description_kind":"plain","optional":true}},"description":"Traffic specifies how to distribute traffic over a collection of Knative Revisions\nand Configurations","description_kind":"plain"}}},"description_kind":"plain"}},"google_cloud_run_service_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_cloud_run_service_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_cloud_run_service_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_cloud_scheduler_job":{"version":0,"block":{"attributes":{"attempt_deadline":{"type":"string","description":"The deadline for job attempts. If the request handler does not respond by this deadline then the request is\ncancelled and the attempt is marked as a DEADLINE_EXCEEDED failure. The failed attempt can be viewed in\nexecution logs. Cloud Scheduler will retry the job according to the RetryConfig.\nThe allowed duration for this deadline is:\n* For HTTP targets, between 15 seconds and 30 minutes.\n* For App Engine HTTP targets, between 15 seconds and 24 hours.\n* **Note**: For PubSub targets, this field is ignored - setting it will introduce an unresolvable diff.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\"","description_kind":"plain","optional":true},"description":{"type":"string","description":"A human-readable description for the job. \nThis string must not contain more than 500 characters.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the job.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region where the scheduler job resides. If it is not provided, Terraform will use the provider default.","description_kind":"plain","optional":true,"computed":true},"schedule":{"type":"string","description":"Describes the schedule on which the job will be executed.","description_kind":"plain","optional":true},"time_zone":{"type":"string","description":"Specifies the time zone to be used in interpreting schedule.\nThe value of this field must be a time zone name from the tz database.","description_kind":"plain","optional":true}},"block_types":{"app_engine_http_target":{"nesting_mode":"list","block":{"attributes":{"body":{"type":"string","description":"HTTP request body. \nA request body is allowed only if the HTTP method is POST or PUT. \nIt will result in invalid argument error to set a body on a job with an incompatible HttpMethod.\n\nA base64-encoded string.","description_kind":"plain","optional":true},"headers":{"type":["map","string"],"description":"HTTP request headers.\nThis map contains the header field names and values. \nHeaders can be set when the job is created.","description_kind":"plain","optional":true},"http_method":{"type":"string","description":"Which HTTP method to use for the request.","description_kind":"plain","optional":true},"relative_uri":{"type":"string","description":"The relative URI.\nThe relative URL must begin with \"/\" and must be a valid HTTP relative URL. \nIt can contain a path, query string arguments, and \\# fragments. \nIf the relative URL is empty, then the root path \"/\" will be used. \nNo spaces are allowed, and the maximum length allowed is 2083 characters","description_kind":"plain","required":true}},"block_types":{"app_engine_routing":{"nesting_mode":"list","block":{"attributes":{"instance":{"type":"string","description":"App instance.\nBy default, the job is sent to an instance which is available when the job is attempted.","description_kind":"plain","optional":true},"service":{"type":"string","description":"App service.\nBy default, the job is sent to the service which is the default service when the job is attempted.","description_kind":"plain","optional":true},"version":{"type":"string","description":"App version.\nBy default, the job is sent to the version which is the default version when the job is attempted.","description_kind":"plain","optional":true}},"description":"App Engine Routing setting for the job.","description_kind":"plain"},"max_items":1}},"description":"App Engine HTTP target.\nIf the job providers a App Engine HTTP target the cron will \nsend a request to the service instance","description_kind":"plain"},"max_items":1},"http_target":{"nesting_mode":"list","block":{"attributes":{"body":{"type":"string","description":"HTTP request body. \nA request body is allowed only if the HTTP method is POST, PUT, or PATCH. \nIt is an error to set body on a job with an incompatible HttpMethod.\n\nA base64-encoded string.","description_kind":"plain","optional":true},"headers":{"type":["map","string"],"description":"This map contains the header field names and values. \nRepeated headers are not supported, but a header value can contain commas.","description_kind":"plain","optional":true},"http_method":{"type":"string","description":"Which HTTP method to use for the request.","description_kind":"plain","optional":true},"uri":{"type":"string","description":"The full URI path that the request will be sent to.","description_kind":"plain","required":true}},"block_types":{"oauth_token":{"nesting_mode":"list","block":{"attributes":{"scope":{"type":"string","description":"OAuth scope to be used for generating OAuth access token. If not specified,\n\"https://www.googleapis.com/auth/cloud-platform\" will be used.","description_kind":"plain","optional":true},"service_account_email":{"type":"string","description":"Service account email to be used for generating OAuth token.\nThe service account must be within the same project as the job.","description_kind":"plain","required":true}},"description":"Contains information needed for generating an OAuth token.\nThis type of authorization should be used when sending requests to a GCP endpoint.","description_kind":"plain"},"max_items":1},"oidc_token":{"nesting_mode":"list","block":{"attributes":{"audience":{"type":"string","description":"Audience to be used when generating OIDC token. If not specified,\nthe URI specified in target will be used.","description_kind":"plain","optional":true},"service_account_email":{"type":"string","description":"Service account email to be used for generating OAuth token.\nThe service account must be within the same project as the job.","description_kind":"plain","required":true}},"description":"Contains information needed for generating an OpenID Connect token.\nThis type of authorization should be used when sending requests to third party endpoints or Cloud Run.","description_kind":"plain"},"max_items":1}},"description":"HTTP target.\nIf the job providers a http_target the cron will \nsend a request to the targeted url","description_kind":"plain"},"max_items":1},"pubsub_target":{"nesting_mode":"list","block":{"attributes":{"attributes":{"type":["map","string"],"description":"Attributes for PubsubMessage.\nPubsub message must contain either non-empty data, or at least one attribute.","description_kind":"plain","optional":true},"data":{"type":"string","description":"The message payload for PubsubMessage.\nPubsub message must contain either non-empty data, or at least one attribute.\n\n A base64-encoded string.","description_kind":"plain","optional":true},"topic_name":{"type":"string","description":"The full resource name for the Cloud Pub/Sub topic to which\nmessages will be published when a job is delivered. ~\u003e**NOTE:**\nThe topic name must be in the same format as required by PubSub's\nPublishRequest.name, e.g. 'projects/my-project/topics/my-topic'.","description_kind":"plain","required":true}},"description":"Pub/Sub target\nIf the job providers a Pub/Sub target the cron will publish\na message to the provided topic","description_kind":"plain"},"max_items":1},"retry_config":{"nesting_mode":"list","block":{"attributes":{"max_backoff_duration":{"type":"string","description":"The maximum amount of time to wait before retrying a job after it fails.\nA duration in seconds with up to nine fractional digits, terminated by 's'.","description_kind":"plain","optional":true,"computed":true},"max_doublings":{"type":"number","description":"The time between retries will double maxDoublings times.\nA job's retry interval starts at minBackoffDuration, \nthen doubles maxDoublings times, then increases linearly, \nand finally retries retries at intervals of maxBackoffDuration up to retryCount times.","description_kind":"plain","optional":true,"computed":true},"max_retry_duration":{"type":"string","description":"The time limit for retrying a failed job, measured from time when an execution was first attempted. \nIf specified with retryCount, the job will be retried until both limits are reached.\nA duration in seconds with up to nine fractional digits, terminated by 's'.","description_kind":"plain","optional":true,"computed":true},"min_backoff_duration":{"type":"string","description":"The minimum amount of time to wait before retrying a job after it fails.\nA duration in seconds with up to nine fractional digits, terminated by 's'.","description_kind":"plain","optional":true,"computed":true},"retry_count":{"type":"number","description":"The number of attempts that the system will make to run a \njob using the exponential backoff procedure described by maxDoublings.\nValues greater than 5 and negative values are not allowed.","description_kind":"plain","optional":true,"computed":true}},"description":"By default, if a job does not complete successfully, \nmeaning that an acknowledgement is not received from the handler, \nthen it will be retried with exponential backoff according to the settings","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloud_tasks_queue":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location of the queue","description_kind":"plain","required":true},"name":{"type":"string","description":"The queue name.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"app_engine_routing_override":{"nesting_mode":"list","block":{"attributes":{"host":{"type":"string","description":"The host that the task is sent to.","description_kind":"plain","computed":true},"instance":{"type":"string","description":"App instance.\n\nBy default, the task is sent to an instance which is available when the task is attempted.","description_kind":"plain","optional":true},"service":{"type":"string","description":"App service.\n\nBy default, the task is sent to the service which is the default service when the task is attempted.","description_kind":"plain","optional":true},"version":{"type":"string","description":"App version.\n\nBy default, the task is sent to the version which is the default version when the task is attempted.","description_kind":"plain","optional":true}},"description":"Overrides for task-level appEngineRouting. These settings apply only\nto App Engine tasks in this queue","description_kind":"plain"},"max_items":1},"rate_limits":{"nesting_mode":"list","block":{"attributes":{"max_burst_size":{"type":"number","description":"The max burst size.\n\nMax burst size limits how fast tasks in queue are processed when many tasks are\nin the queue and the rate is high. This field allows the queue to have a high\nrate so processing starts shortly after a task is enqueued, but still limits\nresource usage when many tasks are enqueued in a short period of time.","description_kind":"plain","computed":true},"max_concurrent_dispatches":{"type":"number","description":"The maximum number of concurrent tasks that Cloud Tasks allows to\nbe dispatched for this queue. After this threshold has been\nreached, Cloud Tasks stops dispatching tasks until the number of\nconcurrent requests decreases.","description_kind":"plain","optional":true,"computed":true},"max_dispatches_per_second":{"type":"number","description":"The maximum rate at which tasks are dispatched from this queue.\n\nIf unspecified when the queue is created, Cloud Tasks will pick the default.","description_kind":"plain","optional":true,"computed":true}},"description":"Rate limits for task dispatches.\n\nThe queue's actual dispatch rate is the result of:\n\n* Number of tasks in the queue\n* User-specified throttling: rateLimits, retryConfig, and the queue's state.\n* System throttling due to 429 (Too Many Requests) or 503 (Service\n Unavailable) responses from the worker, high error rates, or to\n smooth sudden large traffic spikes.","description_kind":"plain"},"max_items":1},"retry_config":{"nesting_mode":"list","block":{"attributes":{"max_attempts":{"type":"number","description":"Number of attempts per task.\n\nCloud Tasks will attempt the task maxAttempts times (that is, if\nthe first attempt fails, then there will be maxAttempts - 1\nretries). Must be \u003e= -1.\n\nIf unspecified when the queue is created, Cloud Tasks will pick\nthe default.\n\n-1 indicates unlimited attempts.","description_kind":"plain","optional":true,"computed":true},"max_backoff":{"type":"string","description":"A task will be scheduled for retry between minBackoff and\nmaxBackoff duration after it fails, if the queue's RetryConfig\nspecifies that the task should be retried.","description_kind":"plain","optional":true,"computed":true},"max_doublings":{"type":"number","description":"The time between retries will double maxDoublings times.\n\nA task's retry interval starts at minBackoff, then doubles maxDoublings times,\nthen increases linearly, and finally retries retries at intervals of maxBackoff\nup to maxAttempts times.","description_kind":"plain","optional":true,"computed":true},"max_retry_duration":{"type":"string","description":"If positive, maxRetryDuration specifies the time limit for\nretrying a failed task, measured from when the task was first\nattempted. Once maxRetryDuration time has passed and the task has\nbeen attempted maxAttempts times, no further attempts will be\nmade and the task will be deleted.\n\nIf zero, then the task age is unlimited.","description_kind":"plain","optional":true,"computed":true},"min_backoff":{"type":"string","description":"A task will be scheduled for retry between minBackoff and\nmaxBackoff duration after it fails, if the queue's RetryConfig\nspecifies that the task should be retried.","description_kind":"plain","optional":true,"computed":true}},"description":"Settings that determine the retry behavior.","description_kind":"plain"},"max_items":1},"stackdriver_logging_config":{"nesting_mode":"list","block":{"attributes":{"sampling_ratio":{"type":"number","description":"Specifies the fraction of operations to write to Stackdriver Logging.\nThis field may contain any value between 0.0 and 1.0, inclusive. 0.0 is the\ndefault and means that no operations are logged.","description_kind":"plain","required":true}},"description":"Configuration options for writing logs to Stackdriver Logging.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloudbuild_trigger":{"version":1,"block":{"attributes":{"create_time":{"type":"string","description":"Time when the trigger was created.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Human-readable description of the trigger.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"Whether the trigger is disabled or not. If true, the trigger will never result in a build.","description_kind":"plain","optional":true},"filename":{"type":"string","description":"Path, from the source root, to a file whose contents is used for the template. Either a filename or build template must be provided.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ignored_files":{"type":["list","string"],"description":"ignoredFiles and includedFiles are file glob matches using https://golang.org/pkg/path/filepath/#Match\nextended with support for '**'.\n\nIf ignoredFiles and changed files are both empty, then they are not\nused to determine whether or not to trigger a build.\n\nIf ignoredFiles is not empty, then we ignore any files that match any\nof the ignored_file globs. If the change has no files that are outside\nof the ignoredFiles globs, then we do not trigger a build.","description_kind":"plain","optional":true},"included_files":{"type":["list","string"],"description":"ignoredFiles and includedFiles are file glob matches using https://golang.org/pkg/path/filepath/#Match\nextended with support for '**'.\n\nIf any of the files altered in the commit pass the ignoredFiles filter\nand includedFiles is empty, then as far as this filter is concerned, we\nshould trigger the build.\n\nIf any of the files altered in the commit pass the ignoredFiles filter\nand includedFiles is not empty, then we make sure that at least one of\nthose files matches a includedFiles glob. If not, then we do not trigger\na build.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the trigger. Must be unique within the project.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_account":{"type":"string","description":"The service account used for all user-controlled operations including\ntriggers.patch, triggers.run, builds.create, and builds.cancel.\n\nIf no service account is set, then the standard Cloud Build service account\n([PROJECT_NUM]@system.gserviceaccount.com) will be used instead.\n\nFormat: projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT_ID_OR_EMAIL}","description_kind":"plain","optional":true},"substitutions":{"type":["map","string"],"description":"Substitutions data for Build resource.","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"Tags for annotation of a BuildTrigger","description_kind":"plain","optional":true},"trigger_id":{"type":"string","description":"The unique identifier for the trigger.","description_kind":"plain","computed":true}},"block_types":{"build":{"nesting_mode":"list","block":{"attributes":{"images":{"type":["list","string"],"description":"A list of images to be pushed upon the successful completion of all build steps.\nThe images are pushed using the builder service account's credentials.\nThe digests of the pushed images will be stored in the Build resource's results field.\nIf any of the images fail to be pushed, the build status is marked FAILURE.","description_kind":"plain","optional":true},"logs_bucket":{"type":"string","description":"Google Cloud Storage bucket where logs should be written. \nLogs file names will be of the format ${logsBucket}/log-${build_id}.txt.","description_kind":"plain","optional":true},"queue_ttl":{"type":"string","description":"TTL in queue for this build. If provided and the build is enqueued longer than this value, \nthe build will expire and the build status will be EXPIRED.\nThe TTL starts ticking from createTime.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true},"substitutions":{"type":["map","string"],"description":"Substitutions data for Build resource.","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"Tags for annotation of a Build. These are not docker tags.","description_kind":"plain","optional":true},"timeout":{"type":"string","description":"Amount of time that this build should be allowed to run, to second granularity.\nIf this amount of time elapses, work on the build will cease and the build status will be TIMEOUT.\nThis timeout must be equal to or greater than the sum of the timeouts for build steps within the build.\nThe expected format is the number of seconds followed by s.\nDefault time is ten minutes (600s).","description_kind":"plain","optional":true}},"block_types":{"artifacts":{"nesting_mode":"list","block":{"attributes":{"images":{"type":["list","string"],"description":"A list of images to be pushed upon the successful completion of all build steps.\n\nThe images will be pushed using the builder service account's credentials.\n\nThe digests of the pushed images will be stored in the Build resource's results field.\n\nIf any of the images fail to be pushed, the build is marked FAILURE.","description_kind":"plain","optional":true}},"block_types":{"objects":{"nesting_mode":"list","block":{"attributes":{"location":{"type":"string","description":"Cloud Storage bucket and optional object path, in the form \"gs://bucket/path/to/somewhere/\".\n\nFiles in the workspace matching any path pattern will be uploaded to Cloud Storage with\nthis location as a prefix.","description_kind":"plain","optional":true},"paths":{"type":["list","string"],"description":"Path globs used to match files in the build's workspace.","description_kind":"plain","optional":true},"timing":{"type":["list",["object",{"end_time":"string","start_time":"string"}]],"description":"Output only. Stores timing information for pushing all artifact objects.","description_kind":"plain","computed":true}},"description":"A list of objects to be uploaded to Cloud Storage upon successful completion of all build steps.\n\nFiles in the workspace matching specified paths globs will be uploaded to the\nCloud Storage location using the builder service account's credentials.\n\nThe location and generation of the uploaded objects will be stored in the Build resource's results field.\n\nIf any objects fail to be pushed, the build is marked FAILURE.","description_kind":"plain"},"max_items":1}},"description":"Artifacts produced by the build that should be uploaded upon successful completion of all build steps.","description_kind":"plain"},"max_items":1},"options":{"nesting_mode":"list","block":{"attributes":{"disk_size_gb":{"type":"number","description":"Requested disk size for the VM that runs the build. Note that this is NOT \"disk free\";\nsome of the space will be used by the operating system and build utilities.\nAlso note that this is the minimum disk size that will be allocated for the build --\nthe build may run with a larger disk than requested. At present, the maximum disk size\nis 1000GB; builds that request more than the maximum are rejected with an error.","description_kind":"plain","optional":true},"dynamic_substitutions":{"type":"bool","description":"Option to specify whether or not to apply bash style string operations to the substitutions.\n\nNOTE this is always enabled for triggered builds and cannot be overridden in the build configuration file.","description_kind":"plain","optional":true},"env":{"type":["list","string"],"description":"A list of global environment variable definitions that will exist for all build steps\nin this build. If a variable is defined in both globally and in a build step,\nthe variable will use the build step value.\n\nThe elements are of the form \"KEY=VALUE\" for the environment variable \"KEY\" being given the value \"VALUE\".","description_kind":"plain","optional":true},"log_streaming_option":{"type":"string","description":"Option to define build log streaming behavior to Google Cloud Storage. Possible values: [\"STREAM_DEFAULT\", \"STREAM_ON\", \"STREAM_OFF\"]","description_kind":"plain","optional":true},"logging":{"type":"string","description":"Option to specify the logging mode, which determines if and where build logs are stored. Possible values: [\"LOGGING_UNSPECIFIED\", \"LEGACY\", \"GCS_ONLY\", \"STACKDRIVER_ONLY\", \"NONE\"]","description_kind":"plain","optional":true},"machine_type":{"type":"string","description":"Compute Engine machine type on which to run the build. Possible values: [\"UNSPECIFIED\", \"N1_HIGHCPU_8\", \"N1_HIGHCPU_32\", \"E2_HIGHCPU_8\", \"E2_HIGHCPU_32\"]","description_kind":"plain","optional":true},"requested_verify_option":{"type":"string","description":"Requested verifiability options. Possible values: [\"NOT_VERIFIED\", \"VERIFIED\"]","description_kind":"plain","optional":true},"secret_env":{"type":["list","string"],"description":"A list of global environment variables, which are encrypted using a Cloud Key Management\nService crypto key. These values must be specified in the build's Secret. These variables\nwill be available to all build steps in this build.","description_kind":"plain","optional":true},"source_provenance_hash":{"type":["list","string"],"description":"Requested hash for SourceProvenance. Possible values: [\"NONE\", \"SHA256\", \"MD5\"]","description_kind":"plain","optional":true},"substitution_option":{"type":"string","description":"Option to specify behavior when there is an error in the substitution checks.\n\nNOTE this is always set to ALLOW_LOOSE for triggered builds and cannot be overridden\nin the build configuration file. Possible values: [\"MUST_MATCH\", \"ALLOW_LOOSE\"]","description_kind":"plain","optional":true},"worker_pool":{"type":"string","description":"Option to specify a WorkerPool for the build. Format projects/{project}/workerPools/{workerPool}\n\nThis field is experimental.","description_kind":"plain","optional":true}},"block_types":{"volumes":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the volume to mount.\n\nVolume names must be unique per build step and must be valid names for Docker volumes.\nEach named volume must be used by at least two build steps.","description_kind":"plain","optional":true},"path":{"type":"string","description":"Path at which to mount the volume.\n\nPaths must be absolute and cannot conflict with other volume paths on the same\nbuild step or with certain reserved volume paths.","description_kind":"plain","optional":true}},"description":"Global list of volumes to mount for ALL build steps\n\nEach volume is created as an empty volume prior to starting the build process.\nUpon completion of the build, volumes and their contents are discarded. Global\nvolume names and paths cannot conflict with the volumes defined a build step.\n\nUsing a global volume in a build with only one step is not valid as it is indicative\nof a build request with an incorrect configuration.","description_kind":"plain"}}},"description":"Special options for this build.","description_kind":"plain"},"max_items":1},"secret":{"nesting_mode":"list","block":{"attributes":{"kms_key_name":{"type":"string","description":"Cloud KMS key name to use to decrypt these envs.","description_kind":"plain","required":true},"secret_env":{"type":["map","string"],"description":"Map of environment variable name to its encrypted value.\nSecret environment variables must be unique across all of a build's secrets, \nand must be used by at least one build step. Values can be at most 64 KB in size. \nThere can be at most 100 secret values across all of a build's secrets.","description_kind":"plain","optional":true}},"description":"Secrets to decrypt using Cloud Key Management Service.","description_kind":"plain"}},"source":{"nesting_mode":"list","block":{"block_types":{"repo_source":{"nesting_mode":"list","block":{"attributes":{"branch_name":{"type":"string","description":"Regex matching branches to build. Exactly one a of branch name, tag, or commit SHA must be provided.\nThe syntax of the regular expressions accepted is the syntax accepted by RE2 and \ndescribed at https://github.com/google/re2/wiki/Syntax","description_kind":"plain","optional":true},"commit_sha":{"type":"string","description":"Explicit commit SHA to build. Exactly one a of branch name, tag, or commit SHA must be provided.","description_kind":"plain","optional":true},"dir":{"type":"string","description":"Directory, relative to the source root, in which to run the build.\nThis must be a relative path. If a step's dir is specified and is an absolute path, \nthis value is ignored for that step's execution.","description_kind":"plain","optional":true},"invert_regex":{"type":"bool","description":"Only trigger a build if the revision regex does NOT match the revision regex.","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"ID of the project that owns the Cloud Source Repository. \nIf omitted, the project ID requesting the build is assumed.","description_kind":"plain","optional":true},"repo_name":{"type":"string","description":"Name of the Cloud Source Repository.","description_kind":"plain","required":true},"substitutions":{"type":["map","string"],"description":"Substitutions to use in a triggered build. Should only be used with triggers.run","description_kind":"plain","optional":true},"tag_name":{"type":"string","description":"Regex matching tags to build. Exactly one a of branch name, tag, or commit SHA must be provided.\nThe syntax of the regular expressions accepted is the syntax accepted by RE2 and \ndescribed at https://github.com/google/re2/wiki/Syntax","description_kind":"plain","optional":true}},"description":"Location of the source in a Google Cloud Source Repository.","description_kind":"plain"},"max_items":1},"storage_source":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description":"Google Cloud Storage bucket containing the source.","description_kind":"plain","required":true},"generation":{"type":"string","description":"Google Cloud Storage generation for the object. \nIf the generation is omitted, the latest generation will be used","description_kind":"plain","optional":true},"object":{"type":"string","description":"Google Cloud Storage object containing the source.\nThis object must be a gzipped archive file (.tar.gz) containing source to build.","description_kind":"plain","required":true}},"description":"Location of the source in an archive file in Google Cloud Storage.","description_kind":"plain"},"max_items":1}},"description":"The location of the source files to build.\n\nOne of 'storageSource' or 'repoSource' must be provided.","description_kind":"plain"},"max_items":1},"step":{"nesting_mode":"list","block":{"attributes":{"args":{"type":["list","string"],"description":"A list of arguments that will be presented to the step when it is started.\n\nIf the image used to run the step's container has an entrypoint, the args\nare used as arguments to that entrypoint. If the image does not define an\nentrypoint, the first element in args is used as the entrypoint, and the\nremainder will be used as arguments.","description_kind":"plain","optional":true},"dir":{"type":"string","description":"Working directory to use when running this step's container.\n\nIf this value is a relative path, it is relative to the build's working\ndirectory. If this value is absolute, it may be outside the build's working\ndirectory, in which case the contents of the path may not be persisted\nacross build step executions, unless a 'volume' for that path is specified.\n\nIf the build specifies a 'RepoSource' with 'dir' and a step with a\n'dir',\nwhich specifies an absolute path, the 'RepoSource' 'dir' is ignored\nfor the step's execution.","description_kind":"plain","optional":true},"entrypoint":{"type":"string","description":"Entrypoint to be used instead of the build step image's\ndefault entrypoint.\nIf unset, the image's default entrypoint is used","description_kind":"plain","optional":true},"env":{"type":["list","string"],"description":"A list of environment variable definitions to be used when\nrunning a step.\n\nThe elements are of the form \"KEY=VALUE\" for the environment variable\n\"KEY\" being given the value \"VALUE\".","description_kind":"plain","optional":true},"id":{"type":"string","description":"Unique identifier for this build step, used in 'wait_for' to\nreference this build step as a dependency.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the container image that will run this particular build step.\n\nIf the image is available in the host's Docker daemon's cache, it will be\nrun directly. If not, the host will attempt to pull the image first, using\nthe builder service account's credentials if necessary.\n\nThe Docker daemon's cache will already have the latest versions of all of\nthe officially supported build steps (see https://github.com/GoogleCloudPlatform/cloud-builders \nfor images and examples).\nThe Docker daemon will also have cached many of the layers for some popular\nimages, like \"ubuntu\", \"debian\", but they will be refreshed at the time\nyou attempt to use them.\n\nIf you built an image in a previous build step, it will be stored in the\nhost's Docker daemon's cache and is available to use as the name for a\nlater build step.","description_kind":"plain","required":true},"secret_env":{"type":["list","string"],"description":"A list of environment variables which are encrypted using\na Cloud Key\nManagement Service crypto key. These values must be specified in\nthe build's 'Secret'.","description_kind":"plain","optional":true},"timeout":{"type":"string","description":"Time limit for executing this build step. If not defined,\nthe step has no\ntime limit and will be allowed to continue to run until either it\ncompletes or the build itself times out.","description_kind":"plain","optional":true},"timing":{"type":"string","description":"Output only. Stores timing information for executing this\nbuild step.","description_kind":"plain","optional":true},"wait_for":{"type":["list","string"],"description":"The ID(s) of the step(s) that this build step depends on.\n\nThis build step will not start until all the build steps in 'wait_for'\nhave completed successfully. If 'wait_for' is empty, this build step\nwill start when all previous build steps in the 'Build.Steps' list\nhave completed successfully.","description_kind":"plain","optional":true}},"block_types":{"volumes":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the volume to mount.\n\nVolume names must be unique per build step and must be valid names for\nDocker volumes. Each named volume must be used by at least two build steps.","description_kind":"plain","required":true},"path":{"type":"string","description":"Path at which to mount the volume.\n\nPaths must be absolute and cannot conflict with other volume paths on\nthe same build step or with certain reserved volume paths.","description_kind":"plain","required":true}},"description":"List of volumes to mount into the build step.\n\nEach volume is created as an empty volume prior to execution of the\nbuild step. Upon completion of the build, volumes and their contents\nare discarded.\n\nUsing a named volume in only one step is not valid as it is\nindicative of a build request with an incorrect configuration.","description_kind":"plain"}}},"description":"The operations to be performed on the workspace.","description_kind":"plain"},"min_items":1}},"description":"Contents of the build template. Either a filename or build template must be provided.","description_kind":"plain"},"max_items":1},"github":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the repository. For example: The name for\nhttps://github.com/googlecloudplatform/cloud-builders is \"cloud-builders\".","description_kind":"plain","optional":true},"owner":{"type":"string","description":"Owner of the repository. For example: The owner for\nhttps://github.com/googlecloudplatform/cloud-builders is \"googlecloudplatform\".","description_kind":"plain","optional":true}},"block_types":{"pull_request":{"nesting_mode":"list","block":{"attributes":{"branch":{"type":"string","description":"Regex of branches to match.","description_kind":"plain","required":true},"comment_control":{"type":"string","description":"Whether to block builds on a \"/gcbrun\" comment from a repository owner or collaborator. Possible values: [\"COMMENTS_DISABLED\", \"COMMENTS_ENABLED\", \"COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY\"]","description_kind":"plain","optional":true},"invert_regex":{"type":"bool","description":"If true, branches that do NOT match the git_ref will trigger a build.","description_kind":"plain","optional":true}},"description":"filter to match changes in pull requests. Specify only one of pullRequest or push.","description_kind":"plain"},"max_items":1},"push":{"nesting_mode":"list","block":{"attributes":{"branch":{"type":"string","description":"Regex of branches to match. Specify only one of branch or tag.","description_kind":"plain","optional":true},"invert_regex":{"type":"bool","description":"When true, only trigger a build if the revision regex does NOT match the git_ref regex.","description_kind":"plain","optional":true},"tag":{"type":"string","description":"Regex of tags to match. Specify only one of branch or tag.","description_kind":"plain","optional":true}},"description":"filter to match changes in refs, like branches or tags. Specify only one of pullRequest or push.","description_kind":"plain"},"max_items":1}},"description":"Describes the configuration of a trigger that creates a build whenever a GitHub event is received.\n\nOne of 'trigger_template', 'github', 'pubsub_config' or 'webhook_config' must be provided.","description_kind":"plain"},"max_items":1},"pubsub_config":{"nesting_mode":"list","block":{"attributes":{"service_account_email":{"type":"string","description":"Service account that will make the push request.","description_kind":"plain","optional":true},"state":{"type":"string","description":"Potential issues with the underlying Pub/Sub subscription configuration.\nOnly populated on get requests.","description_kind":"plain","computed":true},"subscription":{"type":"string","description":"Output only. Name of the subscription.","description_kind":"plain","computed":true},"topic":{"type":"string","description":"The name of the topic from which this subscription is receiving messages.","description_kind":"plain","required":true}},"description":"PubsubConfig describes the configuration of a trigger that creates \na build whenever a Pub/Sub message is published.\n\nOne of 'trigger_template', 'github', 'pubsub_config' or 'webhook_config' must be provided.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"trigger_template":{"nesting_mode":"list","block":{"attributes":{"branch_name":{"type":"string","description":"Name of the branch to build. Exactly one a of branch name, tag, or commit SHA must be provided.\nThis field is a regular expression.","description_kind":"plain","optional":true},"commit_sha":{"type":"string","description":"Explicit commit SHA to build. Exactly one of a branch name, tag, or commit SHA must be provided.","description_kind":"plain","optional":true},"dir":{"type":"string","description":"Directory, relative to the source root, in which to run the build.\n\nThis must be a relative path. If a step's dir is specified and\nis an absolute path, this value is ignored for that step's\nexecution.","description_kind":"plain","optional":true},"invert_regex":{"type":"bool","description":"Only trigger a build if the revision regex does NOT match the revision regex.","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"ID of the project that owns the Cloud Source Repository. If\nomitted, the project ID requesting the build is assumed.","description_kind":"plain","optional":true,"computed":true},"repo_name":{"type":"string","description":"Name of the Cloud Source Repository. If omitted, the name \"default\" is assumed.","description_kind":"plain","optional":true},"tag_name":{"type":"string","description":"Name of the tag to build. Exactly one of a branch name, tag, or commit SHA must be provided.\nThis field is a regular expression.","description_kind":"plain","optional":true}},"description":"Template describing the types of source changes to trigger a build.\n\nBranch and tag names in trigger templates are interpreted as regular\nexpressions. Any branch or tag change that matches that regular\nexpression will trigger a build.\n\nOne of 'trigger_template', 'github', 'pubsub_config' or 'webhook_config' must be provided.","description_kind":"plain"},"max_items":1},"webhook_config":{"nesting_mode":"list","block":{"attributes":{"secret":{"type":"string","description":"Resource name for the secret required as a URL parameter.","description_kind":"plain","required":true},"state":{"type":"string","description":"Potential issues with the underlying Pub/Sub subscription configuration.\nOnly populated on get requests.","description_kind":"plain","computed":true}},"description":"WebhookConfig describes the configuration of a trigger that creates \na build whenever a webhook is sent to a trigger's webhook URL.\n\nOne of 'trigger_template', 'github', 'pubsub_config' or 'webhook_config' must be provided.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_cloudfunctions_function":{"version":0,"block":{"attributes":{"available_memory_mb":{"type":"number","description":"Memory (in MB), available to the function. Default value is 256. Possible values include 128, 256, 512, 1024, etc.","description_kind":"plain","optional":true},"build_environment_variables":{"type":["map","string"],"description":" A set of key/value environment variable pairs available during build time.","description_kind":"plain","optional":true},"description":{"type":"string","description":"Description of the function.","description_kind":"plain","optional":true},"entry_point":{"type":"string","description":"Name of the function that will be executed when the Google Cloud Function is triggered.","description_kind":"plain","optional":true},"environment_variables":{"type":["map","string"],"description":"A set of key/value environment variable pairs to assign to the function.","description_kind":"plain","optional":true},"https_trigger_url":{"type":"string","description":"URL which triggers function execution. Returned only if trigger_http is used.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ingress_settings":{"type":"string","description":"String value that controls what traffic can reach the function. Allowed values are ALLOW_ALL and ALLOW_INTERNAL_ONLY. Changes to this field will recreate the cloud function.","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to the function. Label keys must follow the requirements at https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements.","description_kind":"plain","optional":true},"max_instances":{"type":"number","description":"The limit on the maximum number of function instances that may coexist at a given time.","description_kind":"plain","optional":true},"name":{"type":"string","description":"A user-defined name of the function. Function names must be unique globally.","description_kind":"plain","required":true},"project":{"type":"string","description":"Project of the function. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region of function. If it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"runtime":{"type":"string","description":"The runtime in which the function is going to run. Eg. \"nodejs8\", \"nodejs10\", \"python37\", \"go111\".","description_kind":"plain","required":true},"service_account_email":{"type":"string","description":" If provided, the self-provided service account to run the function with.","description_kind":"plain","optional":true,"computed":true},"source_archive_bucket":{"type":"string","description":"The GCS bucket containing the zip archive which contains the function.","description_kind":"plain","optional":true},"source_archive_object":{"type":"string","description":"The source archive object (file) in archive bucket.","description_kind":"plain","optional":true},"timeout":{"type":"number","description":"Timeout (in seconds) for the function. Default value is 60 seconds. Cannot be more than 540 seconds.","description_kind":"plain","optional":true},"trigger_http":{"type":"bool","description":"Boolean variable. Any HTTP request (of a supported type) to the endpoint will trigger function execution. Supported HTTP request types are: POST, PUT, GET, DELETE, and OPTIONS. Endpoint is returned as https_trigger_url. Cannot be used with trigger_bucket and trigger_topic.","description_kind":"plain","optional":true},"vpc_connector":{"type":"string","description":"The VPC Network Connector that this cloud function can connect to. It can be either the fully-qualified URI, or the short name of the network connector resource. The format of this field is projects/*/locations/*/connectors/*.","description_kind":"plain","optional":true},"vpc_connector_egress_settings":{"type":"string","description":"The egress settings for the connector, controlling what traffic is diverted through it. Allowed values are ALL_TRAFFIC and PRIVATE_RANGES_ONLY. Defaults to PRIVATE_RANGES_ONLY. If unset, this field preserves the previously set value.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"event_trigger":{"nesting_mode":"list","block":{"attributes":{"event_type":{"type":"string","description":"The type of event to observe. For example: \"google.storage.object.finalize\". See the documentation on calling Cloud Functions for a full reference of accepted triggers.","description_kind":"plain","required":true},"resource":{"type":"string","description":"The name or partial URI of the resource from which to observe events. For example, \"myBucket\" or \"projects/my-project/topics/my-topic\"","description_kind":"plain","required":true}},"block_types":{"failure_policy":{"nesting_mode":"list","block":{"attributes":{"retry":{"type":"bool","description":"Whether the function should be retried on failure. Defaults to false.","description_kind":"plain","required":true}},"description":"Specifies policy for failed executions","description_kind":"plain"},"max_items":1}},"description":"A source that fires events in response to a condition in another service. Cannot be used with trigger_http.","description_kind":"plain"},"max_items":1},"source_repository":{"nesting_mode":"list","block":{"attributes":{"deployed_url":{"type":"string","description":"The URL pointing to the hosted repository where the function was defined at the time of deployment.","description_kind":"plain","computed":true},"url":{"type":"string","description":"The URL pointing to the hosted repository where the function is defined.","description_kind":"plain","required":true}},"description":"Represents parameters related to source repository where a function is hosted. Cannot be set alongside source_archive_bucket or source_archive_object.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloudfunctions_function_iam_binding":{"version":0,"block":{"attributes":{"cloud_function":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_cloudfunctions_function_iam_member":{"version":0,"block":{"attributes":{"cloud_function":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_cloudfunctions_function_iam_policy":{"version":0,"block":{"attributes":{"cloud_function":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_cloudiot_device":{"version":0,"block":{"attributes":{"blocked":{"type":"bool","description":"If a device is blocked, connections or requests from this device will fail.","description_kind":"plain","optional":true},"config":{"type":["list",["object",{"binary_data":"string","cloud_update_time":"string","device_ack_time":"string","version":"string"}]],"description":"The most recent device configuration, which is eventually sent from Cloud IoT Core to the device.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_config_ack_time":{"type":"string","description":"The last time a cloud-to-device config version acknowledgment was received from the device.","description_kind":"plain","computed":true},"last_config_send_time":{"type":"string","description":"The last time a cloud-to-device config version was sent to the device.","description_kind":"plain","computed":true},"last_error_status":{"type":["list",["object",{"details":["list",["map","string"]],"message":"string","number":"number"}]],"description":"The error message of the most recent error, such as a failure to publish to Cloud Pub/Sub.","description_kind":"plain","computed":true},"last_error_time":{"type":"string","description":"The time the most recent error occurred, such as a failure to publish to Cloud Pub/Sub.","description_kind":"plain","computed":true},"last_event_time":{"type":"string","description":"The last time a telemetry event was received.","description_kind":"plain","computed":true},"last_heartbeat_time":{"type":"string","description":"The last time an MQTT PINGREQ was received.","description_kind":"plain","computed":true},"last_state_time":{"type":"string","description":"The last time a state event was received.","description_kind":"plain","computed":true},"log_level":{"type":"string","description":"The logging verbosity for device activity. Possible values: [\"NONE\", \"ERROR\", \"INFO\", \"DEBUG\"]","description_kind":"plain","optional":true},"metadata":{"type":["map","string"],"description":"The metadata key-value pairs assigned to the device.","description_kind":"plain","optional":true},"name":{"type":"string","description":"A unique name for the resource.","description_kind":"plain","required":true},"num_id":{"type":"string","description":"A server-defined unique numeric ID for the device.\nThis is a more compact way to identify devices, and it is globally unique.","description_kind":"plain","computed":true},"registry":{"type":"string","description":"The name of the device registry where this device should be created.","description_kind":"plain","required":true},"state":{"type":["list",["object",{"binary_data":"string","update_time":"string"}]],"description":"The state most recently received from the device.","description_kind":"plain","computed":true}},"block_types":{"credentials":{"nesting_mode":"list","block":{"attributes":{"expiration_time":{"type":"string","description":"The time at which this credential becomes invalid.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"public_key":{"nesting_mode":"list","block":{"attributes":{"format":{"type":"string","description":"The format of the key. Possible values: [\"RSA_PEM\", \"RSA_X509_PEM\", \"ES256_PEM\", \"ES256_X509_PEM\"]","description_kind":"plain","required":true},"key":{"type":"string","description":"The key data.","description_kind":"plain","required":true}},"description":"A public key used to verify the signature of JSON Web Tokens (JWTs).","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"The credentials used to authenticate this device.","description_kind":"plain"},"max_items":3},"gateway_config":{"nesting_mode":"list","block":{"attributes":{"gateway_auth_method":{"type":"string","description":"Indicates whether the device is a gateway. Possible values: [\"ASSOCIATION_ONLY\", \"DEVICE_AUTH_TOKEN_ONLY\", \"ASSOCIATION_AND_DEVICE_AUTH_TOKEN\"]","description_kind":"plain","optional":true},"gateway_type":{"type":"string","description":"Indicates whether the device is a gateway. Default value: \"NON_GATEWAY\" Possible values: [\"GATEWAY\", \"NON_GATEWAY\"]","description_kind":"plain","optional":true},"last_accessed_gateway_id":{"type":"string","description":"The ID of the gateway the device accessed most recently.","description_kind":"plain","computed":true},"last_accessed_gateway_time":{"type":"string","description":"The most recent time at which the device accessed the gateway specified in last_accessed_gateway.","description_kind":"plain","computed":true}},"description":"Gateway-related configuration and state.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloudiot_registry":{"version":0,"block":{"attributes":{"http_config":{"type":["map","string"],"description":"Activate or deactivate HTTP.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"log_level":{"type":"string","description":"The default logging verbosity for activity from devices in this\nregistry. Specifies which events should be written to logs. For\nexample, if the LogLevel is ERROR, only events that terminate in\nerrors will be logged. LogLevel is inclusive; enabling INFO logging\nwill also enable ERROR logging. Default value: \"NONE\" Possible values: [\"NONE\", \"ERROR\", \"INFO\", \"DEBUG\"]","description_kind":"plain","optional":true},"mqtt_config":{"type":["map","string"],"description":"Activate or deactivate MQTT.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"A unique name for the resource, required by device registry.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region in which the created registry should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"state_notification_config":{"type":["map","string"],"description":"A PubSub topic to publish device state updates.","description_kind":"plain","optional":true}},"block_types":{"credentials":{"nesting_mode":"list","block":{"attributes":{"public_key_certificate":{"type":["map","string"],"description":"A public key certificate format and data.","description_kind":"plain","required":true}},"description":"List of public key certificates to authenticate devices.","description_kind":"plain"},"max_items":10},"event_notification_configs":{"nesting_mode":"list","block":{"attributes":{"pubsub_topic_name":{"type":"string","description":"PubSub topic name to publish device events.","description_kind":"plain","required":true},"subfolder_matches":{"type":"string","description":"If the subfolder name matches this string exactly, this\nconfiguration will be used. The string must not include the\nleading '/' character. If empty, all strings are matched. Empty\nvalue can only be used for the last 'event_notification_configs'\nitem.","description_kind":"plain","optional":true}},"description":"List of configurations for event notifications, such as PubSub topics\nto publish device events to.","description_kind":"plain"},"max_items":10},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_composer_environment":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"User-defined labels for this environment. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])?. Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?. No more than 64 labels can be associated with a given environment. Both keys and values must be \u003c= 128 bytes in size.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the environment.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The location or Compute Engine region for the environment.","description_kind":"plain","optional":true}},"block_types":{"config":{"nesting_mode":"list","block":{"attributes":{"airflow_uri":{"type":"string","description":"The URI of the Apache Airflow Web UI hosted within this environment.","description_kind":"plain","computed":true},"dag_gcs_prefix":{"type":"string","description":"The Cloud Storage prefix of the DAGs for this environment. Although Cloud Storage objects reside in a flat namespace, a hierarchical file tree can be simulated using '/'-delimited object name prefixes. DAG objects for this environment reside in a simulated directory with this prefix.","description_kind":"plain","computed":true},"gke_cluster":{"type":"string","description":"The Kubernetes Engine cluster used to run this environment.","description_kind":"plain","computed":true},"node_count":{"type":"number","description":"The number of nodes in the Kubernetes Engine cluster that will be used to run this environment. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"node_config":{"nesting_mode":"list","block":{"attributes":{"disk_size_gb":{"type":"number","description":"The disk size in GB used for node VMs. Minimum size is 20GB. If unspecified, defaults to 100GB. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.","description_kind":"plain","optional":true,"computed":true},"ip_allocation_policy":{"type":["list",["object",{"cluster_ipv4_cidr_block":"string","cluster_secondary_range_name":"string","services_ipv4_cidr_block":"string","services_secondary_range_name":"string","use_ip_aliases":"bool"}]],"description":"Configuration for controlling how IPs are allocated in the GKE cluster. Cannot be updated.","description_kind":"plain","optional":true,"computed":true},"machine_type":{"type":"string","description":"The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: \"projects/{project}/zones/{zone}/machineTypes/{machineType}\". Must belong to the enclosing environment's project and region/zone. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.","description_kind":"plain","optional":true,"computed":true},"network":{"type":"string","description":"The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: \"projects/{project}/zones/{zone}/machineTypes/{machineType}\". Must belong to the enclosing environment's project and region/zone. The network must belong to the environment's project. If unspecified, the \"default\" network ID in the environment's project is used. If a Custom Subnet Network is provided, subnetwork must also be provided.","description_kind":"plain","optional":true,"computed":true},"oauth_scopes":{"type":["set","string"],"description":"The set of Google API scopes to be made available on all node VMs. Cannot be updated. If empty, defaults to [\"https://www.googleapis.com/auth/cloud-platform\"]. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.","description_kind":"plain","optional":true,"computed":true},"service_account":{"type":"string","description":"The Google Cloud Platform Service Account to be used by the node VMs. If a service account is not specified, the \"default\" Compute Engine service account is used. Cannot be updated. If given, note that the service account must have roles/composer.worker for any GCP resources created under the Cloud Composer Environment.","description_kind":"plain","optional":true,"computed":true},"subnetwork":{"type":"string","description":"The Compute Engine subnetwork to be used for machine communications, , specified as a self-link, relative resource name (e.g. \"projects/{project}/regions/{region}/subnetworks/{subnetwork}\"), or by name. If subnetwork is provided, network must also be provided and the subnetwork must belong to the enclosing environment's project and region.","description_kind":"plain","optional":true},"tags":{"type":["set","string"],"description":"The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with RFC1035. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The Compute Engine zone in which to deploy the VMs running the Apache Airflow software, specified as the zone name or relative resource name (e.g. \"projects/{project}/zones/{zone}\"). Must belong to the enclosing environment's project and region. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.","description_kind":"plain","optional":true,"computed":true}},"description":"The configuration used for the Kubernetes Engine cluster.","description_kind":"plain"},"max_items":1},"private_environment_config":{"nesting_mode":"list","block":{"attributes":{"cloud_sql_ipv4_cidr_block":{"type":"string","description":"The CIDR block from which IP range in tenant project will be reserved for Cloud SQL. Needs to be disjoint from web_server_ipv4_cidr_block.","description_kind":"plain","optional":true,"computed":true},"enable_private_endpoint":{"type":"bool","description":"If true, access to the public endpoint of the GKE cluster is denied. If this field is set to true, ip_allocation_policy.use_ip_aliases must be set to true for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.","description_kind":"plain","optional":true},"master_ipv4_cidr_block":{"type":"string","description":"The IP range in CIDR notation to use for the hosted master network. This range is used for assigning internal IP addresses to the cluster master or set of masters and to the internal load balancer virtual IP. This range must not overlap with any other ranges in use within the cluster's network. If left blank, the default value of '172.16.0.0/28' is used.","description_kind":"plain","optional":true,"computed":true},"web_server_ipv4_cidr_block":{"type":"string","description":"The CIDR block from which IP range for web server will be reserved. Needs to be disjoint from master_ipv4_cidr_block and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.","description_kind":"plain","optional":true,"computed":true}},"description":"The configuration used for the Private IP Cloud Composer environment.","description_kind":"plain"},"max_items":1},"software_config":{"nesting_mode":"list","block":{"attributes":{"airflow_config_overrides":{"type":["map","string"],"description":"Apache Airflow configuration properties to override. Property keys contain the section and property names, separated by a hyphen, for example \"core-dags_are_paused_at_creation\". Section names must not contain hyphens (\"-\"), opening square brackets (\"[\"), or closing square brackets (\"]\"). The property name must not be empty and cannot contain \"=\" or \";\". Section and property names cannot contain characters: \".\" Apache Airflow configuration property names must be written in snake_case. Property values can contain any character, and can be written in any lower/upper case format. Certain Apache Airflow configuration property values are blacklisted, and cannot be overridden.","description_kind":"plain","optional":true},"env_variables":{"type":["map","string"],"description":"Additional environment variables to provide to the Apache Airflow schedulerf, worker, and webserver processes. Environment variable names must match the regular expression [a-zA-Z_][a-zA-Z0-9_]*. They cannot specify Apache Airflow software configuration overrides (they cannot match the regular expression AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+), and they cannot match any of the following reserved names: AIRFLOW_HOME C_FORCE_ROOT CONTAINER_NAME DAGS_FOLDER GCP_PROJECT GCS_BUCKET GKE_CLUSTER_NAME SQL_DATABASE SQL_INSTANCE SQL_PASSWORD SQL_PROJECT SQL_REGION SQL_USER.","description_kind":"plain","optional":true},"image_version":{"type":"string","description":"The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression composer-[0-9]+\\.[0-9]+(\\.[0-9]+)?-airflow-[0-9]+\\.[0-9]+(\\.[0-9]+.*)?. The Cloud Composer portion of the version is a semantic version. The portion of the image version following 'airflow-' is an official Apache Airflow repository release name. See documentation for allowed release names.","description_kind":"plain","optional":true,"computed":true},"pypi_packages":{"type":["map","string"],"description":"Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name (e.g. \"numpy\"). Values are the lowercase extras and version specifier (e.g. \"==1.12.0\", \"[devel,gcp_api]\", \"[devel]\u003e=1.8.2, \u003c1.9.2\"). To specify a package without pinning it to a version specifier, use the empty string as the value.","description_kind":"plain","optional":true},"python_version":{"type":"string","description":"The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to '2' or '3'. If not specified, the default is '2'. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. Environments in newer versions always use Python major version 3.","description_kind":"plain","optional":true,"computed":true},"scheduler_count":{"type":"number","description":"The number of schedulers for Airflow. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-2.*.*.","description_kind":"plain","optional":true,"computed":true}},"description":"The configuration settings for software inside the environment.","description_kind":"plain"},"max_items":1}},"description":"Configuration parameters for this environment.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_address":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The static external IP address represented by this resource. Only\nIPv4 is supported. An address may only be specified for INTERNAL\naddress types. The IP address must be inside the specified subnetwork,\nif any.","description_kind":"plain","optional":true,"computed":true},"address_type":{"type":"string","description":"The type of address to reserve. Default value: \"EXTERNAL\" Possible values: [\"INTERNAL\", \"EXTERNAL\"]","description_kind":"plain","optional":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. The name must be 1-63 characters long, and\ncomply with RFC1035. Specifically, the name must be 1-63 characters\nlong and match the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?'\nwhich means the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit,\nexcept the last character, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"The URL of the network in which to reserve the address. This field\ncan only be used with INTERNAL type with the VPC_PEERING and\nIPSEC_INTERCONNECT purposes.","description_kind":"plain","optional":true},"network_tier":{"type":"string","description":"The networking tier used for configuring this address. If this field is not\nspecified, it is assumed to be PREMIUM. Possible values: [\"PREMIUM\", \"STANDARD\"]","description_kind":"plain","optional":true,"computed":true},"prefix_length":{"type":"number","description":"The prefix length if the resource represents an IP range.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"purpose":{"type":"string","description":"The purpose of this resource, which can be one of the following values:\n\n* GCE_ENDPOINT for addresses that are used by VM instances, alias IP\n ranges, internal load balancers, and similar resources.\n\n* SHARED_LOADBALANCER_VIP for an address that can be used by multiple\n internal load balancers.\n\n* VPC_PEERING for addresses that are reserved for VPC peer networks.\n\n* IPSEC_INTERCONNECT for addresses created from a private IP range\n that are reserved for a VLAN attachment in an IPsec-encrypted Cloud\n Interconnect configuration. These addresses are regional resources.\n\n* PRIVATE_SERVICE_CONNECT for a private network address that is used\nto configure Private Service Connect. Only global internal addresses\ncan use this purpose.\n\nThis should only be set when using an Internal address.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The Region in which the created address should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"subnetwork":{"type":"string","description":"The URL of the subnetwork in which to reserve the address. If an IP\naddress is specified, it must be within the subnetwork's IP range.\nThis field can only be used with INTERNAL type with\nGCE_ENDPOINT/DNS_RESOLVER purposes.","description_kind":"plain","optional":true,"computed":true},"users":{"type":["list","string"],"description":"The URLs of the resources that are using this address.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_attached_disk":{"version":0,"block":{"attributes":{"device_name":{"type":"string","description":"Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disks-x, where x is a number assigned by Google Compute Engine.","description_kind":"plain","optional":true,"computed":true},"disk":{"type":"string","description":"name or self_link of the disk that will be attached.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description":"name or self_link of the compute instance that the disk will be attached to. If the self_link is provided then zone and project are extracted from the self link. If only the name is used then zone and project must be defined as properties on the resource or provider.","description_kind":"plain","required":true},"mode":{"type":"string","description":"The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.","description_kind":"plain","optional":true},"project":{"type":"string","description":"The project that the referenced compute instance is a part of. If instance is referenced by its self_link the project defined in the link will take precedence.","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone that the referenced compute instance is located within. If instance is referenced by its self_link the zone defined in the link will take precedence.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_autoscaler":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. The name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"target":{"type":"string","description":"URL of the managed instance group that this autoscaler will scale.","description_kind":"plain","required":true},"zone":{"type":"string","description":"URL of the zone where the instance group resides.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"autoscaling_policy":{"nesting_mode":"list","block":{"attributes":{"cooldown_period":{"type":"number","description":"The number of seconds that the autoscaler should wait before it\nstarts collecting information from a new instance. This prevents\nthe autoscaler from collecting information when the instance is\ninitializing, during which the collected usage would not be\nreliable. The default time autoscaler waits is 60 seconds.\n\nVirtual machine initialization times might vary because of\nnumerous factors. We recommend that you test how long an\ninstance may take to initialize. To do this, create an instance\nand time the startup process.","description_kind":"plain","optional":true},"max_replicas":{"type":"number","description":"The maximum number of instances that the autoscaler can scale up\nto. This is required when creating or updating an autoscaler. The\nmaximum number of replicas should not be lower than minimal number\nof replicas.","description_kind":"plain","required":true},"min_replicas":{"type":"number","description":"The minimum number of replicas that the autoscaler can scale down\nto. This cannot be less than 0. If not provided, autoscaler will\nchoose a default value depending on maximum number of instances\nallowed.","description_kind":"plain","required":true},"mode":{"type":"string","description":"Defines operating mode for this policy. Default value: \"ON\" Possible values: [\"OFF\", \"ONLY_UP\", \"ON\"]","description_kind":"plain","optional":true}},"block_types":{"cpu_utilization":{"nesting_mode":"list","block":{"attributes":{"predictive_method":{"type":"string","description":"Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are:\n\n- NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics.\n\n- OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.","description_kind":"plain","optional":true},"target":{"type":"number","description":"The target CPU utilization that the autoscaler should maintain.\nMust be a float value in the range (0, 1]. If not specified, the\ndefault is 0.6.\n\nIf the CPU level is below the target utilization, the autoscaler\nscales down the number of instances until it reaches the minimum\nnumber of instances you specified or until the average CPU of\nyour instances reaches the target utilization.\n\nIf the average CPU is above the target utilization, the autoscaler\nscales up until it reaches the maximum number of instances you\nspecified or until the average utilization reaches the target\nutilization.","description_kind":"plain","required":true}},"description":"Defines the CPU utilization policy that allows the autoscaler to\nscale based on the average CPU utilization of a managed instance\ngroup.","description_kind":"plain"},"max_items":1},"load_balancing_utilization":{"nesting_mode":"list","block":{"attributes":{"target":{"type":"number","description":"Fraction of backend capacity utilization (set in HTTP(s) load\nbalancing configuration) that autoscaler should maintain. Must\nbe a positive float value. If not defined, the default is 0.8.","description_kind":"plain","required":true}},"description":"Configuration parameters of autoscaling based on a load balancer.","description_kind":"plain"},"max_items":1},"metric":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"The identifier (type) of the Stackdriver Monitoring metric.\nThe metric cannot have negative values.\n\nThe metric must have a value type of INT64 or DOUBLE.","description_kind":"plain","required":true},"target":{"type":"number","description":"The target value of the metric that autoscaler should\nmaintain. This must be a positive value. A utilization\nmetric scales number of virtual machines handling requests\nto increase or decrease proportionally to the metric.\n\nFor example, a good metric to use as a utilizationTarget is\nwww.googleapis.com/compute/instance/network/received_bytes_count.\nThe autoscaler will work to keep this value constant for each\nof the instances.","description_kind":"plain","optional":true},"type":{"type":"string","description":"Defines how target utilization value is expressed for a\nStackdriver Monitoring metric. Possible values: [\"GAUGE\", \"DELTA_PER_SECOND\", \"DELTA_PER_MINUTE\"]","description_kind":"plain","optional":true}},"description":"Configuration parameters of autoscaling based on a custom metric.","description_kind":"plain"}},"scale_in_control":{"nesting_mode":"list","block":{"attributes":{"time_window_sec":{"type":"number","description":"How long back autoscaling should look when computing recommendations\nto include directives regarding slower scale down, as described above.","description_kind":"plain","optional":true}},"block_types":{"max_scaled_in_replicas":{"nesting_mode":"list","block":{"attributes":{"fixed":{"type":"number","description":"Specifies a fixed number of VM instances. This must be a positive\ninteger.","description_kind":"plain","optional":true},"percent":{"type":"number","description":"Specifies a percentage of instances between 0 to 100%, inclusive.\nFor example, specify 80 for 80%.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1}},"description":"Defines scale in controls to reduce the risk of response latency\nand outages due to abrupt scale-in events","description_kind":"plain"},"max_items":1},"scaling_schedules":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"A description of a scaling schedule.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"A boolean value that specifies if a scaling schedule can influence autoscaler recommendations. If set to true, then a scaling schedule has no effect.","description_kind":"plain","optional":true},"duration_sec":{"type":"number","description":"The duration of time intervals (in seconds) for which this scaling schedule will be running. The minimum allowed value is 300.","description_kind":"plain","required":true},"min_required_replicas":{"type":"number","description":"Minimum number of VM instances that autoscaler will recommend in time intervals starting according to schedule.","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"schedule":{"type":"string","description":"The start timestamps of time intervals when this scaling schedule should provide a scaling signal. This field uses the extended cron format (with an optional year field).","description_kind":"plain","required":true},"time_zone":{"type":"string","description":"The time zone to be used when interpreting the schedule. The value of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database.","description_kind":"plain","optional":true}},"description":"Scaling schedules defined for an autoscaler. Multiple schedules can be set on an autoscaler and they can overlap.","description_kind":"plain"}}},"description":"The configuration parameters for the autoscaling algorithm. You can\ndefine one or more of the policies for an autoscaler: cpuUtilization,\ncustomMetricUtilizations, and loadBalancingUtilization.\n\nIf none of these are specified, the default will be to autoscale based\non cpuUtilization to 0.6 or 60%.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_backend_bucket":{"version":0,"block":{"attributes":{"bucket_name":{"type":"string","description":"Cloud Storage bucket name.","description_kind":"plain","required":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"custom_response_headers":{"type":["list","string"],"description":"Headers that the HTTP/S load balancer should add to proxied responses.","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional textual description of the resource; provided by the\nclient when the resource is created.","description_kind":"plain","optional":true},"enable_cdn":{"type":"bool","description":"If true, enable Cloud CDN for this BackendBucket.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the\nlast character, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"cdn_policy":{"nesting_mode":"list","block":{"attributes":{"cache_mode":{"type":"string","description":"Specifies the cache setting for all responses from this backend.\nThe possible values are: USE_ORIGIN_HEADERS, FORCE_CACHE_ALL and CACHE_ALL_STATIC Possible values: [\"USE_ORIGIN_HEADERS\", \"FORCE_CACHE_ALL\", \"CACHE_ALL_STATIC\"]","description_kind":"plain","optional":true,"computed":true},"client_ttl":{"type":"number","description":"Specifies the maximum allowed TTL for cached content served by this origin.","description_kind":"plain","optional":true,"computed":true},"default_ttl":{"type":"number","description":"Specifies the default TTL for cached content served by this origin for responses\nthat do not have an existing valid TTL (max-age or s-max-age).","description_kind":"plain","optional":true,"computed":true},"max_ttl":{"type":"number","description":"Specifies the maximum allowed TTL for cached content served by this origin.","description_kind":"plain","optional":true,"computed":true},"negative_caching":{"type":"bool","description":"Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects.","description_kind":"plain","optional":true,"computed":true},"serve_while_stale":{"type":"number","description":"Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache.","description_kind":"plain","optional":true,"computed":true},"signed_url_cache_max_age_sec":{"type":"number","description":"Maximum number of seconds the response to a signed URL request will\nbe considered fresh. After this time period,\nthe response will be revalidated before being served.\nWhen serving responses to signed URL requests,\nCloud CDN will internally behave as though\nall responses from this backend had a \"Cache-Control: public,\nmax-age=[TTL]\" header, regardless of any existing Cache-Control\nheader. The actual headers served in responses will not be altered.","description_kind":"plain","optional":true}},"block_types":{"negative_caching_policy":{"nesting_mode":"list","block":{"attributes":{"code":{"type":"number","description":"The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 308, 404, 405, 410, 421, 451 and 501\ncan be specified as values, and you cannot specify a status code more than once.","description_kind":"plain","optional":true},"ttl":{"type":"number","description":"The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s\n(30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.","description_kind":"plain","optional":true}},"description":"Sets a cache TTL for the specified HTTP status code. negativeCaching must be enabled to configure negativeCachingPolicy.\nOmitting the policy and leaving negativeCaching enabled will use Cloud CDN's default cache TTLs.","description_kind":"plain"}}},"description":"Cloud CDN configuration for this Backend Bucket.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_backend_bucket_signed_url_key":{"version":0,"block":{"attributes":{"backend_bucket":{"type":"string","description":"The backend bucket this signed URL key belongs.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_value":{"type":"string","description":"128-bit key value used for signing the URL. The key value must be a\nvalid RFC 4648 Section 5 base64url encoded string.","description_kind":"plain","required":true,"sensitive":true},"name":{"type":"string","description":"Name of the signed URL key.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_backend_service":{"version":1,"block":{"attributes":{"affinity_cookie_ttl_sec":{"type":"number","description":"Lifetime of cookies in seconds if session_affinity is\nGENERATED_COOKIE. If set to 0, the cookie is non-persistent and lasts\nonly until the end of the browser session (or equivalent). The\nmaximum allowed value for TTL is one day.\n\nWhen the load balancing scheme is INTERNAL, this field is not used.","description_kind":"plain","optional":true},"connection_draining_timeout_sec":{"type":"number","description":"Time for which instance will be drained (not accept new\nconnections, but still work to finish started).","description_kind":"plain","optional":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"custom_request_headers":{"type":["set","string"],"description":"Headers that the HTTP/S load balancer should add to proxied\nrequests.","description_kind":"plain","optional":true},"custom_response_headers":{"type":["set","string"],"description":"Headers that the HTTP/S load balancer should add to proxied\nresponses.","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"enable_cdn":{"type":"bool","description":"If true, enable Cloud CDN for this BackendService.","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource. A hash of the contents stored in this\nobject. This field is used in optimistic locking.","description_kind":"plain","computed":true},"health_checks":{"type":["set","string"],"description":"The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource\nfor health checking this BackendService. Currently at most one health\ncheck can be specified.\n\nA health check must be specified unless the backend service uses an internet\nor serverless NEG as a backend.\n\nFor internal load balancing, a URL to a HealthCheck resource must be specified instead.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"load_balancing_scheme":{"type":"string","description":"Indicates whether the backend service will be used with internal or\nexternal load balancing. A backend service created for one type of\nload balancing cannot be used with the other. Default value: \"EXTERNAL\" Possible values: [\"EXTERNAL\", \"INTERNAL_SELF_MANAGED\"]","description_kind":"plain","optional":true},"locality_lb_policy":{"type":"string","description":"The load balancing algorithm used within the scope of the locality.\nThe possible values are -\n\n* ROUND_ROBIN - This is a simple policy in which each healthy backend\n is selected in round robin order.\n\n* LEAST_REQUEST - An O(1) algorithm which selects two random healthy\n hosts and picks the host which has fewer active requests.\n\n* RING_HASH - The ring/modulo hash load balancer implements consistent\n hashing to backends. The algorithm has the property that the\n addition/removal of a host from a set of N hosts only affects\n 1/N of the requests.\n\n* RANDOM - The load balancer selects a random healthy host.\n\n* ORIGINAL_DESTINATION - Backend host is selected based on the client\n connection metadata, i.e., connections are opened\n to the same address as the destination address of\n the incoming connection before the connection\n was redirected to the load balancer.\n\n* MAGLEV - used as a drop in replacement for the ring hash load balancer.\n Maglev is not as stable as ring hash but has faster table lookup\n build times and host selection times. For more information about\n Maglev, refer to https://ai.google/research/pubs/pub44824\n\nThis field is applicable only when the load_balancing_scheme is set to\nINTERNAL_SELF_MANAGED. Possible values: [\"ROUND_ROBIN\", \"LEAST_REQUEST\", \"RING_HASH\", \"RANDOM\", \"ORIGINAL_DESTINATION\", \"MAGLEV\"]","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"port_name":{"type":"string","description":"Name of backend port. The same name should appear in the instance\ngroups referenced by this service. Required when the load balancing\nscheme is EXTERNAL.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description":"The protocol this BackendService uses to communicate with backends.\nThe default is HTTP. **NOTE**: HTTP2 is only valid for beta HTTP/2 load balancer\ntypes and may result in errors if used with the GA API. Possible values: [\"HTTP\", \"HTTPS\", \"HTTP2\", \"TCP\", \"SSL\", \"GRPC\"]","description_kind":"plain","optional":true,"computed":true},"security_policy":{"type":"string","description":"The security policy associated with this backend service.","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"session_affinity":{"type":"string","description":"Type of session affinity to use. The default is NONE. Session affinity is\nnot applicable if the protocol is UDP. Possible values: [\"NONE\", \"CLIENT_IP\", \"CLIENT_IP_PORT_PROTO\", \"CLIENT_IP_PROTO\", \"GENERATED_COOKIE\", \"HEADER_FIELD\", \"HTTP_COOKIE\"]","description_kind":"plain","optional":true,"computed":true},"timeout_sec":{"type":"number","description":"How many seconds to wait for the backend before considering it a\nfailed request. Default is 30 seconds. Valid range is [1, 86400].","description_kind":"plain","optional":true,"computed":true}},"block_types":{"backend":{"nesting_mode":"set","block":{"attributes":{"balancing_mode":{"type":"string","description":"Specifies the balancing mode for this backend.\n\nFor global HTTP(S) or TCP/SSL load balancing, the default is\nUTILIZATION. Valid values are UTILIZATION, RATE (for HTTP(S))\nand CONNECTION (for TCP/SSL). Default value: \"UTILIZATION\" Possible values: [\"UTILIZATION\", \"RATE\", \"CONNECTION\"]","description_kind":"plain","optional":true},"capacity_scaler":{"type":"number","description":"A multiplier applied to the group's maximum servicing capacity\n(based on UTILIZATION, RATE or CONNECTION).\n\nDefault value is 1, which means the group will serve up to 100%\nof its configured capacity (depending on balancingMode). A\nsetting of 0 means the group is completely drained, offering\n0% of its available Capacity. Valid range is [0.0,1.0].","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource.\nProvide this property when you create the resource.","description_kind":"plain","optional":true},"group":{"type":"string","description":"The fully-qualified URL of an Instance Group or Network Endpoint\nGroup resource. In case of instance group this defines the list\nof instances that serve traffic. Member virtual machine\ninstances from each instance group must live in the same zone as\nthe instance group itself. No two backends in a backend service\nare allowed to use same Instance Group resource.\n\nFor Network Endpoint Groups this defines list of endpoints. All\nendpoints of Network Endpoint Group must be hosted on instances\nlocated in the same zone as the Network Endpoint Group.\n\nBackend services cannot mix Instance Group and\nNetwork Endpoint Group backends.\n\nNote that you must specify an Instance Group or Network Endpoint\nGroup resource using the fully-qualified URL, rather than a\npartial URL.","description_kind":"plain","required":true},"max_connections":{"type":"number","description":"The max number of simultaneous connections for the group. Can\nbe used with either CONNECTION or UTILIZATION balancing modes.\n\nFor CONNECTION mode, either maxConnections or one\nof maxConnectionsPerInstance or maxConnectionsPerEndpoint,\nas appropriate for group type, must be set.","description_kind":"plain","optional":true,"computed":true},"max_connections_per_endpoint":{"type":"number","description":"The max number of simultaneous connections that a single backend\nnetwork endpoint can handle. This is used to calculate the\ncapacity of the group. Can be used in either CONNECTION or\nUTILIZATION balancing modes.\n\nFor CONNECTION mode, either\nmaxConnections or maxConnectionsPerEndpoint must be set.","description_kind":"plain","optional":true,"computed":true},"max_connections_per_instance":{"type":"number","description":"The max number of simultaneous connections that a single\nbackend instance can handle. This is used to calculate the\ncapacity of the group. Can be used in either CONNECTION or\nUTILIZATION balancing modes.\n\nFor CONNECTION mode, either maxConnections or\nmaxConnectionsPerInstance must be set.","description_kind":"plain","optional":true,"computed":true},"max_rate":{"type":"number","description":"The max requests per second (RPS) of the group.\n\nCan be used with either RATE or UTILIZATION balancing modes,\nbut required if RATE mode. For RATE mode, either maxRate or one\nof maxRatePerInstance or maxRatePerEndpoint, as appropriate for\ngroup type, must be set.","description_kind":"plain","optional":true,"computed":true},"max_rate_per_endpoint":{"type":"number","description":"The max requests per second (RPS) that a single backend network\nendpoint can handle. This is used to calculate the capacity of\nthe group. Can be used in either balancing mode. For RATE mode,\neither maxRate or maxRatePerEndpoint must be set.","description_kind":"plain","optional":true,"computed":true},"max_rate_per_instance":{"type":"number","description":"The max requests per second (RPS) that a single backend\ninstance can handle. This is used to calculate the capacity of\nthe group. Can be used in either balancing mode. For RATE mode,\neither maxRate or maxRatePerInstance must be set.","description_kind":"plain","optional":true,"computed":true},"max_utilization":{"type":"number","description":"Used when balancingMode is UTILIZATION. This ratio defines the\nCPU utilization target for the group. Valid range is [0.0, 1.0].","description_kind":"plain","optional":true,"computed":true}},"description":"The set of backends that serve this BackendService.","description_kind":"plain"}},"cdn_policy":{"nesting_mode":"list","block":{"attributes":{"cache_mode":{"type":"string","description":"Specifies the cache setting for all responses from this backend.\nThe possible values are: USE_ORIGIN_HEADERS, FORCE_CACHE_ALL and CACHE_ALL_STATIC Possible values: [\"USE_ORIGIN_HEADERS\", \"FORCE_CACHE_ALL\", \"CACHE_ALL_STATIC\"]","description_kind":"plain","optional":true,"computed":true},"client_ttl":{"type":"number","description":"Specifies the maximum allowed TTL for cached content served by this origin.","description_kind":"plain","optional":true,"computed":true},"default_ttl":{"type":"number","description":"Specifies the default TTL for cached content served by this origin for responses\nthat do not have an existing valid TTL (max-age or s-max-age).","description_kind":"plain","optional":true,"computed":true},"max_ttl":{"type":"number","description":"Specifies the maximum allowed TTL for cached content served by this origin.","description_kind":"plain","optional":true,"computed":true},"negative_caching":{"type":"bool","description":"Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects.","description_kind":"plain","optional":true,"computed":true},"serve_while_stale":{"type":"number","description":"Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache.","description_kind":"plain","optional":true,"computed":true},"signed_url_cache_max_age_sec":{"type":"number","description":"Maximum number of seconds the response to a signed URL request\nwill be considered fresh, defaults to 1hr (3600s). After this\ntime period, the response will be revalidated before\nbeing served.\n\nWhen serving responses to signed URL requests, Cloud CDN will\ninternally behave as though all responses from this backend had a\n\"Cache-Control: public, max-age=[TTL]\" header, regardless of any\nexisting Cache-Control header. The actual headers served in\nresponses will not be altered.","description_kind":"plain","optional":true}},"block_types":{"cache_key_policy":{"nesting_mode":"list","block":{"attributes":{"include_host":{"type":"bool","description":"If true requests to different hosts will be cached separately.","description_kind":"plain","optional":true},"include_protocol":{"type":"bool","description":"If true, http and https requests will be cached separately.","description_kind":"plain","optional":true},"include_query_string":{"type":"bool","description":"If true, include query string parameters in the cache key\naccording to query_string_whitelist and\nquery_string_blacklist. If neither is set, the entire query\nstring will be included.\n\nIf false, the query string will be excluded from the cache\nkey entirely.","description_kind":"plain","optional":true},"query_string_blacklist":{"type":["set","string"],"description":"Names of query string parameters to exclude in cache keys.\n\nAll other parameters will be included. Either specify\nquery_string_whitelist or query_string_blacklist, not both.\n'\u0026' and '=' will be percent encoded and not treated as\ndelimiters.","description_kind":"plain","optional":true},"query_string_whitelist":{"type":["set","string"],"description":"Names of query string parameters to include in cache keys.\n\nAll other parameters will be excluded. Either specify\nquery_string_whitelist or query_string_blacklist, not both.\n'\u0026' and '=' will be percent encoded and not treated as\ndelimiters.","description_kind":"plain","optional":true}},"description":"The CacheKeyPolicy for this CdnPolicy.","description_kind":"plain"},"max_items":1},"negative_caching_policy":{"nesting_mode":"list","block":{"attributes":{"code":{"type":"number","description":"The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 308, 404, 405, 410, 421, 451 and 501\ncan be specified as values, and you cannot specify a status code more than once.","description_kind":"plain","optional":true},"ttl":{"type":"number","description":"The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s\n(30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.","description_kind":"plain","optional":true}},"description":"Sets a cache TTL for the specified HTTP status code. negativeCaching must be enabled to configure negativeCachingPolicy.\nOmitting the policy and leaving negativeCaching enabled will use Cloud CDN's default cache TTLs.","description_kind":"plain"}}},"description":"Cloud CDN configuration for this BackendService.","description_kind":"plain"},"max_items":1},"circuit_breakers":{"nesting_mode":"list","block":{"attributes":{"max_connections":{"type":"number","description":"The maximum number of connections to the backend cluster.\nDefaults to 1024.","description_kind":"plain","optional":true},"max_pending_requests":{"type":"number","description":"The maximum number of pending requests to the backend cluster.\nDefaults to 1024.","description_kind":"plain","optional":true},"max_requests":{"type":"number","description":"The maximum number of parallel requests to the backend cluster.\nDefaults to 1024.","description_kind":"plain","optional":true},"max_requests_per_connection":{"type":"number","description":"Maximum requests for a single backend connection. This parameter\nis respected by both the HTTP/1.1 and HTTP/2 implementations. If\nnot specified, there is no limit. Setting this parameter to 1\nwill effectively disable keep alive.","description_kind":"plain","optional":true},"max_retries":{"type":"number","description":"The maximum number of parallel retries to the backend cluster.\nDefaults to 3.","description_kind":"plain","optional":true}},"description":"Settings controlling the volume of connections to a backend service. This field\nis applicable only when the load_balancing_scheme is set to INTERNAL_SELF_MANAGED.","description_kind":"plain"},"max_items":1},"consistent_hash":{"nesting_mode":"list","block":{"attributes":{"http_header_name":{"type":"string","description":"The hash based on the value of the specified header field.\nThis field is applicable if the sessionAffinity is set to HEADER_FIELD.","description_kind":"plain","optional":true},"minimum_ring_size":{"type":"number","description":"The minimum number of virtual nodes to use for the hash ring.\nLarger ring sizes result in more granular load\ndistributions. If the number of hosts in the load balancing pool\nis larger than the ring size, each host will be assigned a single\nvirtual node.\nDefaults to 1024.","description_kind":"plain","optional":true}},"block_types":{"http_cookie":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the cookie.","description_kind":"plain","optional":true},"path":{"type":"string","description":"Path to set for the cookie.","description_kind":"plain","optional":true}},"block_types":{"ttl":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"number","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.","description_kind":"plain","required":true}},"description":"Lifetime of the cookie.","description_kind":"plain"},"max_items":1}},"description":"Hash is based on HTTP Cookie. This field describes a HTTP cookie\nthat will be used as the hash key for the consistent hash load\nbalancer. If the cookie is not present, it will be generated.\nThis field is applicable if the sessionAffinity is set to HTTP_COOKIE.","description_kind":"plain"},"max_items":1}},"description":"Consistent Hash-based load balancing can be used to provide soft session\naffinity based on HTTP headers, cookies or other properties. This load balancing\npolicy is applicable only for HTTP connections. The affinity to a particular\ndestination host will be lost when one or more hosts are added/removed from the\ndestination service. This field specifies parameters that control consistent\nhashing. This field only applies if the load_balancing_scheme is set to\nINTERNAL_SELF_MANAGED. This field is only applicable when locality_lb_policy is\nset to MAGLEV or RING_HASH.","description_kind":"plain"},"max_items":1},"iap":{"nesting_mode":"list","block":{"attributes":{"oauth2_client_id":{"type":"string","description":"OAuth2 Client ID for IAP","description_kind":"plain","required":true},"oauth2_client_secret":{"type":"string","description":"OAuth2 Client Secret for IAP","description_kind":"plain","required":true,"sensitive":true},"oauth2_client_secret_sha256":{"type":"string","description":"OAuth2 Client Secret SHA-256 for IAP","description_kind":"plain","computed":true,"sensitive":true}},"description":"Settings for enabling Cloud Identity Aware Proxy","description_kind":"plain"},"max_items":1},"log_config":{"nesting_mode":"list","block":{"attributes":{"enable":{"type":"bool","description":"Whether to enable logging for the load balancer traffic served by this backend service.","description_kind":"plain","optional":true},"sample_rate":{"type":"number","description":"This field can only be specified if logging is enabled for this backend service. The value of\nthe field must be in [0, 1]. This configures the sampling rate of requests to the load balancer\nwhere 1.0 means all logged requests are reported and 0.0 means no logged requests are reported.\nThe default value is 1.0.","description_kind":"plain","optional":true}},"description":"This field denotes the logging options for the load balancer traffic served by this backend service.\nIf logging is enabled, logs will be exported to Stackdriver.","description_kind":"plain"},"max_items":1},"outlier_detection":{"nesting_mode":"list","block":{"attributes":{"consecutive_errors":{"type":"number","description":"Number of errors before a host is ejected from the connection pool. When the\nbackend host is accessed over HTTP, a 5xx return code qualifies as an error.\nDefaults to 5.","description_kind":"plain","optional":true},"consecutive_gateway_failure":{"type":"number","description":"The number of consecutive gateway failures (502, 503, 504 status or connection\nerrors that are mapped to one of those status codes) before a consecutive\ngateway failure ejection occurs. Defaults to 5.","description_kind":"plain","optional":true},"enforcing_consecutive_errors":{"type":"number","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through consecutive 5xx. This setting can be used to disable\nejection or to ramp it up slowly. Defaults to 100.","description_kind":"plain","optional":true},"enforcing_consecutive_gateway_failure":{"type":"number","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through consecutive gateway failures. This setting can be\nused to disable ejection or to ramp it up slowly. Defaults to 0.","description_kind":"plain","optional":true},"enforcing_success_rate":{"type":"number","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through success rate statistics. This setting can be used to\ndisable ejection or to ramp it up slowly. Defaults to 100.","description_kind":"plain","optional":true},"max_ejection_percent":{"type":"number","description":"Maximum percentage of hosts in the load balancing pool for the backend service\nthat can be ejected. Defaults to 10%.","description_kind":"plain","optional":true},"success_rate_minimum_hosts":{"type":"number","description":"The number of hosts in a cluster that must have enough request volume to detect\nsuccess rate outliers. If the number of hosts is less than this setting, outlier\ndetection via success rate statistics is not performed for any host in the\ncluster. Defaults to 5.","description_kind":"plain","optional":true},"success_rate_request_volume":{"type":"number","description":"The minimum number of total requests that must be collected in one interval (as\ndefined by the interval duration above) to include this host in success rate\nbased outlier detection. If the volume is lower than this setting, outlier\ndetection via success rate statistics is not performed for that host. Defaults\nto 100.","description_kind":"plain","optional":true},"success_rate_stdev_factor":{"type":"number","description":"This factor is used to determine the ejection threshold for success rate outlier\nejection. The ejection threshold is the difference between the mean success\nrate, and the product of this factor and the standard deviation of the mean\nsuccess rate: mean - (stdev * success_rate_stdev_factor). This factor is divided\nby a thousand to get a double. That is, if the desired factor is 1.9, the\nruntime value should be 1900. Defaults to 1900.","description_kind":"plain","optional":true}},"block_types":{"base_ejection_time":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"number","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"The base time that a host is ejected for. The real time is equal to the base\ntime multiplied by the number of times the host has been ejected. Defaults to\n30000ms or 30s.","description_kind":"plain"},"max_items":1},"interval":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"number","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Time interval between ejection sweep analysis. This can result in both new\nejections as well as hosts being returned to service. Defaults to 10 seconds.","description_kind":"plain"},"max_items":1}},"description":"Settings controlling eviction of unhealthy hosts from the load balancing pool.\nThis field is applicable only when the load_balancing_scheme is set\nto INTERNAL_SELF_MANAGED.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_backend_service_signed_url_key":{"version":0,"block":{"attributes":{"backend_service":{"type":"string","description":"The backend service this signed URL key belongs.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_value":{"type":"string","description":"128-bit key value used for signing the URL. The key value must be a\nvalid RFC 4648 Section 5 base64url encoded string.","description_kind":"plain","required":true,"sensitive":true},"name":{"type":"string","description":"Name of the signed URL key.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_disk":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image":{"type":"string","description":"The image from which to initialize this disk. This can be\none of: the image's 'self_link', 'projects/{project}/global/images/{image}',\n'projects/{project}/global/images/family/{family}', 'global/images/{image}',\n'global/images/family/{family}', 'family/{family}', '{project}/{family}',\n'{project}/{image}', '{family}', or '{image}'. If referred by family, the\nimages names must include the family name. If they don't, use the\n[google_compute_image data source](/docs/providers/google/d/compute_image.html).\nFor instance, the image 'centos-6-v20180104' includes its family name 'centos-6'.\nThese images can be referred by family name here.","description_kind":"plain","optional":true},"label_fingerprint":{"type":"string","description":"The fingerprint used for optimistic locking of this resource. Used\ninternally during updates.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Labels to apply to this disk. A list of key-\u003evalue pairs.","description_kind":"plain","optional":true},"last_attach_timestamp":{"type":"string","description":"Last attach timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"last_detach_timestamp":{"type":"string","description":"Last detach timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"physical_block_size_bytes":{"type":"number","description":"Physical block size of the persistent disk, in bytes. If not present\nin a request, a default value is used. Currently supported sizes\nare 4096 and 16384, other sizes may be added in the future.\nIf an unsupported value is requested, the error message will list\nthe supported values for the caller's project.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"provisioned_iops":{"type":"number","description":"Indicates how many IOPS must be provisioned for the disk.","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description":"Size of the persistent disk, specified in GB. You can specify this\nfield when creating a persistent disk using the 'image' or\n'snapshot' parameter, or specify it alone to create an empty\npersistent disk.\n\nIf you specify this field along with 'image' or 'snapshot',\nthe value must not be less than the size of the image\nor the size of the snapshot.\n\n~\u003e**NOTE** If you change the size, Terraform updates the disk size\nif upsizing is detected but recreates the disk if downsizing is requested.\nYou can add 'lifecycle.prevent_destroy' in the config to prevent destroying\nand recreating.","description_kind":"plain","optional":true,"computed":true},"snapshot":{"type":"string","description":"The source snapshot used to create this disk. You can provide this as\na partial or full URL to the resource. If the snapshot is in another\nproject than this disk, you must supply a full URL. For example, the\nfollowing are valid values:\n\n* 'https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot'\n* 'projects/project/global/snapshots/snapshot'\n* 'global/snapshots/snapshot'\n* 'snapshot'","description_kind":"plain","optional":true},"source_image_id":{"type":"string","description":"The ID value of the image used to create this disk. This value\nidentifies the exact image that was used to create this persistent\ndisk. For example, if you created the persistent disk from an image\nthat was later deleted and recreated under the same name, the source\nimage ID would identify the exact version of the image that was used.","description_kind":"plain","computed":true},"source_snapshot_id":{"type":"string","description":"The unique ID of the snapshot used to create this disk. This value\nidentifies the exact snapshot that was used to create this persistent\ndisk. For example, if you created the persistent disk from a snapshot\nthat was later deleted and recreated under the same name, the source\nsnapshot ID would identify the exact version of the snapshot that was\nused.","description_kind":"plain","computed":true},"type":{"type":"string","description":"URL of the disk type resource describing which disk type to use to\ncreate the disk. Provide this when creating the disk.","description_kind":"plain","optional":true},"users":{"type":["list","string"],"description":"Links to the users of the disk (attached instances) in form:\nproject/zones/zone/instances/instance","description_kind":"plain","computed":true},"zone":{"type":"string","description":"A reference to the zone where the disk resides.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"disk_encryption_key":{"nesting_mode":"list","block":{"attributes":{"kms_key_self_link":{"type":"string","description":"The self link of the encryption key used to encrypt the disk. Also called KmsKeyName\nin the cloud console. Your project's Compute Engine System service account\n('service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com') must have\n'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this feature.\nSee https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys","description_kind":"plain","optional":true},"kms_key_service_account":{"type":"string","description":"The service account used for the encryption request for the given KMS key.\nIf absent, the Compute Engine Service Agent service account is used.","description_kind":"plain","optional":true},"raw_key":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.","description_kind":"plain","optional":true,"sensitive":true},"sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.","description_kind":"plain","computed":true}},"description":"Encrypts the disk using a customer-supplied encryption key.\n\nAfter you encrypt a disk with a customer-supplied key, you must\nprovide the same key if you use the disk later (e.g. to create a disk\nsnapshot or an image, or to attach the disk to a virtual machine).\n\nCustomer-supplied encryption keys do not protect access to metadata of\nthe disk.\n\nIf you do not provide an encryption key when creating the disk, then\nthe disk will be encrypted using an automatically generated key and\nyou do not need to provide a key to use the disk later.","description_kind":"plain"},"max_items":1},"source_image_encryption_key":{"nesting_mode":"list","block":{"attributes":{"kms_key_self_link":{"type":"string","description":"The self link of the encryption key used to encrypt the disk. Also called KmsKeyName\nin the cloud console. Your project's Compute Engine System service account\n('service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com') must have\n'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this feature.\nSee https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys","description_kind":"plain","optional":true},"kms_key_service_account":{"type":"string","description":"The service account used for the encryption request for the given KMS key.\nIf absent, the Compute Engine Service Agent service account is used.","description_kind":"plain","optional":true},"raw_key":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.","description_kind":"plain","optional":true},"sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.","description_kind":"plain","computed":true}},"description":"The customer-supplied encryption key of the source image. Required if\nthe source image is protected by a customer-supplied encryption key.","description_kind":"plain"},"max_items":1},"source_snapshot_encryption_key":{"nesting_mode":"list","block":{"attributes":{"kms_key_self_link":{"type":"string","description":"The self link of the encryption key used to encrypt the disk. Also called KmsKeyName\nin the cloud console. Your project's Compute Engine System service account\n('service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com') must have\n'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this feature.\nSee https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys","description_kind":"plain","optional":true},"kms_key_service_account":{"type":"string","description":"The service account used for the encryption request for the given KMS key.\nIf absent, the Compute Engine Service Agent service account is used.","description_kind":"plain","optional":true},"raw_key":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.","description_kind":"plain","optional":true},"sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.","description_kind":"plain","computed":true}},"description":"The customer-supplied encryption key of the source snapshot. Required\nif the source snapshot is protected by a customer-supplied encryption\nkey.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_disk_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_compute_disk_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_compute_disk_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_compute_disk_resource_policy_attachment":{"version":0,"block":{"attributes":{"disk":{"type":"string","description":"The name of the disk in which the resource policies are attached to.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource policy to be attached to the disk for scheduling snapshot\ncreation. Do not specify the self link.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"A reference to the zone where the disk resides.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_external_vpn_gateway":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"redundancy_type":{"type":"string","description":"Indicates the redundancy type of this external VPN gateway Possible values: [\"FOUR_IPS_REDUNDANCY\", \"SINGLE_IP_INTERNALLY_REDUNDANT\", \"TWO_IPS_REDUNDANCY\"]","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"interface":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"number","description":"The numeric ID for this interface. Allowed values are based on the redundancy type\nof this external VPN gateway\n* '0 - SINGLE_IP_INTERNALLY_REDUNDANT'\n* '0, 1 - TWO_IPS_REDUNDANCY'\n* '0, 1, 2, 3 - FOUR_IPS_REDUNDANCY'","description_kind":"plain","optional":true},"ip_address":{"type":"string","description":"IP address of the interface in the external VPN gateway.\nOnly IPv4 is supported. This IP address can be either from\nyour on-premise gateway or another Cloud provider's VPN gateway,\nit cannot be an IP address from Google Compute Engine.","description_kind":"plain","optional":true}},"description":"A list of interfaces on this external VPN gateway.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_firewall":{"version":1,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"destination_ranges":{"type":["set","string"],"description":"If destination ranges are specified, the firewall will apply only to\ntraffic that has destination IP address in these ranges. These ranges\nmust be expressed in CIDR format. Only IPv4 is supported.","description_kind":"plain","optional":true,"computed":true},"direction":{"type":"string","description":"Direction of traffic to which this firewall applies; default is\nINGRESS. Note: For INGRESS traffic, it is NOT supported to specify\ndestinationRanges; For EGRESS traffic, it is NOT supported to specify\n'source_ranges' OR 'source_tags'. For INGRESS traffic, one of 'source_ranges',\n'source_tags' or 'source_service_accounts' is required. Possible values: [\"INGRESS\", \"EGRESS\"]","description_kind":"plain","optional":true,"computed":true},"disabled":{"type":"bool","description":"Denotes whether the firewall rule is disabled, i.e not applied to the\nnetwork it is associated with. When set to true, the firewall rule is\nnot enforced and the network behaves as if it did not exist. If this\nis unspecified, the firewall rule will be enabled.","description_kind":"plain","optional":true},"enable_logging":{"type":"bool","description":"This field denotes whether to enable logging for a particular firewall rule. If logging is enabled, logs will be exported to Stackdriver.","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"The name or self_link of the network to attach this firewall to.","description_kind":"plain","required":true},"priority":{"type":"number","description":"Priority for this rule. This is an integer between 0 and 65535, both\ninclusive. When not specified, the value assumed is 1000. Relative\npriorities determine precedence of conflicting rules. Lower value of\npriority implies higher precedence (eg, a rule with priority 0 has\nhigher precedence than a rule with priority 1). DENY rules take\nprecedence over ALLOW rules having equal priority.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"source_ranges":{"type":["set","string"],"description":"If source ranges are specified, the firewall will apply only to\ntraffic that has source IP address in these ranges. These ranges must\nbe expressed in CIDR format. One or both of sourceRanges and\nsourceTags may be set. If both properties are set, the firewall will\napply to traffic that has source IP address within sourceRanges OR the\nsource IP that belongs to a tag listed in the sourceTags property. The\nconnection does not need to match both properties for the firewall to\napply. Only IPv4 is supported.","description_kind":"plain","optional":true},"source_service_accounts":{"type":["set","string"],"description":"If source service accounts are specified, the firewall will apply only\nto traffic originating from an instance with a service account in this\nlist. Source service accounts cannot be used to control traffic to an\ninstance's external IP address because service accounts are associated\nwith an instance, not an IP address. sourceRanges can be set at the\nsame time as sourceServiceAccounts. If both are set, the firewall will\napply to traffic that has source IP address within sourceRanges OR the\nsource IP belongs to an instance with service account listed in\nsourceServiceAccount. The connection does not need to match both\nproperties for the firewall to apply. sourceServiceAccounts cannot be\nused at the same time as sourceTags or targetTags.","description_kind":"plain","optional":true},"source_tags":{"type":["set","string"],"description":"If source tags are specified, the firewall will apply only to traffic\nwith source IP that belongs to a tag listed in source tags. Source\ntags cannot be used to control traffic to an instance's external IP\naddress. Because tags are associated with an instance, not an IP\naddress. One or both of sourceRanges and sourceTags may be set. If\nboth properties are set, the firewall will apply to traffic that has\nsource IP address within sourceRanges OR the source IP that belongs to\na tag listed in the sourceTags property. The connection does not need\nto match both properties for the firewall to apply.","description_kind":"plain","optional":true},"target_service_accounts":{"type":["set","string"],"description":"A list of service accounts indicating sets of instances located in the\nnetwork that may make network connections as specified in allowed[].\ntargetServiceAccounts cannot be used at the same time as targetTags or\nsourceTags. If neither targetServiceAccounts nor targetTags are\nspecified, the firewall rule applies to all instances on the specified\nnetwork.","description_kind":"plain","optional":true},"target_tags":{"type":["set","string"],"description":"A list of instance tags indicating sets of instances located in the\nnetwork that may make network connections as specified in allowed[].\nIf no targetTags are specified, the firewall rule applies to all\ninstances on the specified network.","description_kind":"plain","optional":true}},"block_types":{"allow":{"nesting_mode":"set","block":{"attributes":{"ports":{"type":["list","string"],"description":"An optional list of ports to which this rule applies. This field\nis only applicable for UDP or TCP protocol. Each entry must be\neither an integer or a range. If not specified, this rule\napplies to connections through any port.\n\nExample inputs include: [\"22\"], [\"80\",\"443\"], and\n[\"12345-12349\"].","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"The IP protocol to which this rule applies. The protocol type is\nrequired when creating a firewall rule. This value can either be\none of the following well known protocol strings (tcp, udp,\nicmp, esp, ah, sctp, ipip, all), or the IP protocol number.","description_kind":"plain","required":true}},"description":"The list of ALLOW rules specified by this firewall. Each rule\nspecifies a protocol and port-range tuple that describes a permitted\nconnection.","description_kind":"plain"}},"deny":{"nesting_mode":"set","block":{"attributes":{"ports":{"type":["list","string"],"description":"An optional list of ports to which this rule applies. This field\nis only applicable for UDP or TCP protocol. Each entry must be\neither an integer or a range. If not specified, this rule\napplies to connections through any port.\n\nExample inputs include: [\"22\"], [\"80\",\"443\"], and\n[\"12345-12349\"].","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"The IP protocol to which this rule applies. The protocol type is\nrequired when creating a firewall rule. This value can either be\none of the following well known protocol strings (tcp, udp,\nicmp, esp, ah, sctp, ipip, all), or the IP protocol number.","description_kind":"plain","required":true}},"description":"The list of DENY rules specified by this firewall. Each rule specifies\na protocol and port-range tuple that describes a denied connection.","description_kind":"plain"}},"log_config":{"nesting_mode":"list","block":{"attributes":{"metadata":{"type":"string","description":"This field denotes whether to include or exclude metadata for firewall logs. Possible values: [\"EXCLUDE_ALL_METADATA\", \"INCLUDE_ALL_METADATA\"]","description_kind":"plain","required":true}},"description":"This field denotes the logging options for a particular firewall rule.\nIf defined, logging is enabled, and logs will be exported to Cloud Logging.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_firewall_policy":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create the resource.","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"Fingerprint of the resource. This field is used internally during updates of this resource.","description_kind":"plain","computed":true},"firewall_policy_id":{"type":"string","description":"The unique identifier for the resource. This identifier is defined by the server.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. It is a numeric ID allocated by GCP which uniquely identifies the Firewall Policy.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The parent of the firewall policy.","description_kind":"plain","required":true},"rule_tuple_count":{"type":"number","description":"Total count of all firewall policy rule tuples. A firewall policy can not exceed a set number of tuples.","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"Server-defined URL for the resource.","description_kind":"plain","computed":true},"self_link_with_id":{"type":"string","description":"Server-defined URL for this resource with the resource id.","description_kind":"plain","computed":true},"short_name":{"type":"string","description":"User-provided name of the Organization firewall policy. The name should be unique in the organization in which the firewall policy is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_firewall_policy_association":{"version":0,"block":{"attributes":{"attachment_target":{"type":"string","description":"The target that the firewall policy is attached to.","description_kind":"plain","required":true},"firewall_policy":{"type":"string","description":"The firewall policy ID of the association.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name for an association.","description_kind":"plain","required":true},"short_name":{"type":"string","description":"The short name of the firewall policy of the association.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_firewall_policy_rule":{"version":0,"block":{"attributes":{"action":{"type":"string","description":"The Action to perform when the client connection triggers the rule. Can currently be either \"allow\" or \"deny()\" where valid values for status are 403, 404, and 502.","description_kind":"plain","required":true},"description":{"type":"string","description":"An optional description for this resource.","description_kind":"plain","optional":true},"direction":{"type":"string","description":"The direction in which this rule applies. Possible values: INGRESS, EGRESS","description_kind":"plain","required":true},"disabled":{"type":"bool","description":"Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled.","description_kind":"plain","optional":true},"enable_logging":{"type":"bool","description":"Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on \"goto_next\" rules.","description_kind":"plain","optional":true},"firewall_policy":{"type":"string","description":"The firewall policy of the resource.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kind":{"type":"string","description":"Type of the resource. Always `compute#firewallPolicyRule` for firewall policy rules","description_kind":"plain","computed":true},"priority":{"type":"number","description":"An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority.","description_kind":"plain","required":true},"rule_tuple_count":{"type":"number","description":"Calculation of the complexity of a single firewall policy rule.","description_kind":"plain","computed":true},"target_resources":{"type":["list","string"],"description":"A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get this rule. If this field is left blank, all VMs within the organization will receive the rule.","description_kind":"plain","optional":true},"target_service_accounts":{"type":["list","string"],"description":"A list of service accounts indicating the sets of instances that are applied with this rule.","description_kind":"plain","optional":true}},"block_types":{"match":{"nesting_mode":"list","block":{"attributes":{"dest_ip_ranges":{"type":["list","string"],"description":"CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256.","description_kind":"plain","optional":true},"src_ip_ranges":{"type":["list","string"],"description":"CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256.","description_kind":"plain","optional":true}},"block_types":{"layer4_configs":{"nesting_mode":"list","block":{"attributes":{"ip_protocol":{"type":"string","description":"The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number.","description_kind":"plain","required":true},"ports":{"type":["list","string"],"description":"An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``.","description_kind":"plain","optional":true}},"description":"Pairs of IP protocols and ports that the rule should match.","description_kind":"plain"},"min_items":1}},"description":"A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_forwarding_rule":{"version":0,"block":{"attributes":{"all_ports":{"type":"bool","description":"This field is used along with the `backend_service` field for internal load balancing or with the `target` field for internal TargetInstance. This field cannot be used with `port` or `portRange` fields. When the load balancing scheme is `INTERNAL` and protocol is TCP/UDP, specify this field to allow packets addressed to any ports will be forwarded to the backends configured with this forwarding rule.","description_kind":"plain","optional":true},"allow_global_access":{"type":"bool","description":"This field is used along with the `backend_service` field for internal load balancing or with the `target` field for internal TargetInstance. If the field is set to `TRUE`, clients can access ILB from all regions. Otherwise only allows access from clients in the same region as the internal load balancer.","description_kind":"plain","optional":true},"backend_service":{"type":"string","description":"This field is only used for `INTERNAL` load balancing. For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.","description_kind":"plain","optional":true},"creation_timestamp":{"type":"string","description":"[Output Only] Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"IP address that this forwarding rule serves. When a client sends traffic to this IP address, the forwarding rule directs the traffic to the target that you specify in the forwarding rule. If you don't specify a reserved IP address, an ephemeral IP address is assigned. Methods for specifying an IP address: * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in `https://www.googleapis.com/compute/v1/projects/project_id/regions/region/addresses/address-name` * Partial URL or by name, as in: * `projects/project_id/regions/region/addresses/address-name` * `regions/region/addresses/address-name` * `global/addresses/address-name` * `address-name` The loadBalancingScheme and the forwarding rule's target determine the type of IP address that you can use. For detailed information, refer to [IP address specifications](/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).","description_kind":"plain","optional":true,"computed":true},"ip_protocol":{"type":"string","description":"The IP protocol to which this rule applies. For protocol forwarding, valid options are `TCP`, `UDP`, `ESP`, `AH`, `SCTP` or `ICMP`. For Internal TCP/UDP Load Balancing, the load balancing scheme is `INTERNAL`, and one of `TCP` or `UDP` are valid. For Traffic Director, the load balancing scheme is `INTERNAL_SELF_MANAGED`, and only `TCP`is valid. For Internal HTTP(S) Load Balancing, the load balancing scheme is `INTERNAL_MANAGED`, and only `TCP` is valid. For HTTP(S), SSL Proxy, and TCP Proxy Load Balancing, the load balancing scheme is `EXTERNAL` and only `TCP` is valid. For Network TCP/UDP Load Balancing, the load balancing scheme is `EXTERNAL`, and one of `TCP` or `UDP` is valid.","description_kind":"plain","optional":true,"computed":true},"is_mirroring_collector":{"type":"bool","description":"Indicates whether or not this load balancer can be used as a collector for packet mirroring. To prevent mirroring loops, instances behind this load balancer will not have their traffic mirrored even if a `PacketMirroring` rule applies to them. This can only be set to true for load balancers that have their `loadBalancingScheme` set to `INTERNAL`.","description_kind":"plain","optional":true},"label_fingerprint":{"type":"string","description":"Used internally during label updates.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Labels to apply to this rule.","description_kind":"plain","optional":true},"load_balancing_scheme":{"type":"string","description":"Specifies the forwarding rule type.\n\n* `EXTERNAL` is used for:\n * Classic Cloud VPN gateways\n * Protocol forwarding to VMs from an external IP address\n * The following load balancers: HTTP(S), SSL Proxy, TCP Proxy, and Network TCP/UDP\n* `INTERNAL` is used for:\n * Protocol forwarding to VMs from an internal IP address\n * Internal TCP/UDP load balancers\n* `INTERNAL_MANAGED` is used for:\n * Internal HTTP(S) load balancers\n* `INTERNAL_SELF_MANAGED` is used for:\n * Traffic Director\n\nFor more information about forwarding rules, refer to [Forwarding rule concepts](/load-balancing/docs/forwarding-rule-concepts). Possible values: INVALID, INTERNAL, INTERNAL_MANAGED, INTERNAL_SELF_MANAGED, EXTERNAL","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"This field is not used for external load balancing. For `INTERNAL` and `INTERNAL_SELF_MANAGED` load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.","description_kind":"plain","optional":true,"computed":true},"network_tier":{"type":"string","description":"This signifies the networking tier used for configuring this load balancer and can only take the following values: `PREMIUM`, `STANDARD`. For regional ForwardingRule, the valid values are `PREMIUM` and `STANDARD`. For GlobalForwardingRule, the valid value is `PREMIUM`. If this field is not specified, it is assumed to be `PREMIUM`. If `IPAddress` is specified, this value must be equal to the networkTier of the Address.","description_kind":"plain","optional":true,"computed":true},"port_range":{"type":"string","description":"When the load balancing scheme is `EXTERNAL`, `INTERNAL_SELF_MANAGED` and `INTERNAL_MANAGED`, you can specify a `port_range`. Use with a forwarding rule that points to a target proxy or a target pool. Do not use with a forwarding rule that points to a backend service. This field is used along with the `target` field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance. Applicable only when `IPProtocol` is `TCP`, `UDP`, or `SCTP`, only packets addressed to ports in the specified range will be forwarded to `target`. Forwarding rules with the same `[IPAddress, IPProtocol]` pair must have disjoint port ranges. Some types of forwarding target have constraints on the acceptable ports:\n\n* TargetHttpProxy: 80, 8080\n* TargetHttpsProxy: 443\n* TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688, 1883, 5222\n* TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688, 1883, 5222\n* TargetVpnGateway: 500, 4500\n\n@pattern: d+(?:-d+)?","description_kind":"plain","optional":true},"ports":{"type":["set","string"],"description":"This field is used along with the `backend_service` field for internal load balancing. When the load balancing scheme is `INTERNAL`, a list of ports can be configured, for example, ['80'], ['8000','9000']. Only packets addressed to these ports are forwarded to the backends configured with the forwarding rule. If the forwarding rule's loadBalancingScheme is INTERNAL, you can specify ports in one of the following ways: * A list of up to five ports, which can be non-contiguous * Keyword `ALL`, which causes the forwarding rule to forward traffic on any port of the forwarding rule's protocol. @pattern: d+(?:-d+)? For more information, refer to [Port specifications](/load-balancing/docs/forwarding-rule-concepts#port_specifications).","description_kind":"plain","optional":true},"project":{"type":"string","description":"The project this resource belongs in.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The location of this resource.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"[Output Only] Server-defined URL for the resource.","description_kind":"plain","computed":true},"service_label":{"type":"string","description":"An optional prefix to the service name for this Forwarding Rule. If specified, the prefix is the first label of the fully qualified service name. The label must be 1-63 characters long, and comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Specifically, the label must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. This field is only used for internal load balancing.","description_kind":"plain","optional":true},"service_name":{"type":"string","description":"[Output Only] The internal fully qualified service name for this Forwarding Rule. This field is only used for internal load balancing.","description_kind":"plain","computed":true},"subnetwork":{"type":"string","description":"This field is only used for `INTERNAL` load balancing. For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule. If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.","description_kind":"plain","optional":true,"computed":true},"target":{"type":"string","description":"The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For `INTERNAL_SELF_MANAGED` load balancing, only `targetHttpProxy` is valid, not `targetHttpsProxy`.","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_global_address":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The IP address or beginning of the address range represented by this\nresource. This can be supplied as an input to reserve a specific\naddress or omitted to allow GCP to choose a valid one for you.","description_kind":"plain","optional":true,"computed":true},"address_type":{"type":"string","description":"The type of the address to reserve.\n\n* EXTERNAL indicates public/external single IP address.\n* INTERNAL indicates internal IP ranges belonging to some network. Default value: \"EXTERNAL\" Possible values: [\"EXTERNAL\", \"INTERNAL\"]","description_kind":"plain","optional":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_version":{"type":"string","description":"The IP Version that will be used by this address. The default value is 'IPV4'. Possible values: [\"IPV4\", \"IPV6\"]","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"The URL of the network in which to reserve the IP range. The IP range\nmust be in RFC1918 space. The network cannot be deleted if there are\nany reserved IP ranges referring to it.\n\nThis should only be set when using an Internal address.","description_kind":"plain","optional":true},"prefix_length":{"type":"number","description":"The prefix length of the IP range. If not present, it means the\naddress field is a single IP address.\n\nThis field is not applicable to addresses with addressType=EXTERNAL,\nor addressType=INTERNAL when purpose=PRIVATE_SERVICE_CONNECT","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"purpose":{"type":"string","description":"The purpose of the resource. Possible values include:\n\n* VPC_PEERING - for peer networks\n\n* PRIVATE_SERVICE_CONNECT - for ([Beta](https://terraform.io/docs/providers/google/guides/provider_versions.html) only) Private Service Connect networks","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_global_forwarding_rule":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"IP address that this forwarding rule serves. When a client sends traffic to this IP address, the forwarding rule directs the traffic to the target that you specify in the forwarding rule. If you don't specify a reserved IP address, an ephemeral IP address is assigned. Methods for specifying an IP address: * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in `https://www.googleapis.com/compute/v1/projects/project_id/regions/region/addresses/address-name` * Partial URL or by name, as in: * `projects/project_id/regions/region/addresses/address-name` * `regions/region/addresses/address-name` * `global/addresses/address-name` * `address-name` The loadBalancingScheme and the forwarding rule's target determine the type of IP address that you can use. For detailed information, refer to [IP address specifications](/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).","description_kind":"plain","optional":true,"computed":true},"ip_protocol":{"type":"string","description":"The IP protocol to which this rule applies. For protocol forwarding, valid options are `TCP`, `UDP`, `ESP`, `AH`, `SCTP` or `ICMP`. For Internal TCP/UDP Load Balancing, the load balancing scheme is `INTERNAL`, and one of `TCP` or `UDP` are valid. For Traffic Director, the load balancing scheme is `INTERNAL_SELF_MANAGED`, and only `TCP`is valid. For Internal HTTP(S) Load Balancing, the load balancing scheme is `INTERNAL_MANAGED`, and only `TCP` is valid. For HTTP(S), SSL Proxy, and TCP Proxy Load Balancing, the load balancing scheme is `EXTERNAL` and only `TCP` is valid. For Network TCP/UDP Load Balancing, the load balancing scheme is `EXTERNAL`, and one of `TCP` or `UDP` is valid.","description_kind":"plain","optional":true,"computed":true},"ip_version":{"type":"string","description":"The IP Version that will be used by this forwarding rule. Valid options are `IPV4` or `IPV6`. This can only be specified for an external global forwarding rule. Possible values: UNSPECIFIED_VERSION, IPV4, IPV6","description_kind":"plain","optional":true},"label_fingerprint":{"type":"string","description":"Used internally during label updates.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Labels to apply to this rule.","description_kind":"plain","optional":true},"load_balancing_scheme":{"type":"string","description":"Specifies the forwarding rule type.\n\n* `EXTERNAL` is used for:\n * Classic Cloud VPN gateways\n * Protocol forwarding to VMs from an external IP address\n * The following load balancers: HTTP(S), SSL Proxy, TCP Proxy, and Network TCP/UDP\n* `INTERNAL` is used for:\n * Protocol forwarding to VMs from an internal IP address\n * Internal TCP/UDP load balancers\n* `INTERNAL_MANAGED` is used for:\n * Internal HTTP(S) load balancers\n* `INTERNAL_SELF_MANAGED` is used for:\n * Traffic Director\n\nFor more information about forwarding rules, refer to [Forwarding rule concepts](/load-balancing/docs/forwarding-rule-concepts). Possible values: INVALID, INTERNAL, INTERNAL_MANAGED, INTERNAL_SELF_MANAGED, EXTERNAL","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"This field is not used for external load balancing. For `INTERNAL` and `INTERNAL_SELF_MANAGED` load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.","description_kind":"plain","optional":true,"computed":true},"port_range":{"type":"string","description":"When the load balancing scheme is `EXTERNAL`, `INTERNAL_SELF_MANAGED` and `INTERNAL_MANAGED`, you can specify a `port_range`. Use with a forwarding rule that points to a target proxy or a target pool. Do not use with a forwarding rule that points to a backend service. This field is used along with the `target` field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance. Applicable only when `IPProtocol` is `TCP`, `UDP`, or `SCTP`, only packets addressed to ports in the specified range will be forwarded to `target`. Forwarding rules with the same `[IPAddress, IPProtocol]` pair must have disjoint port ranges. Some types of forwarding target have constraints on the acceptable ports:\n\n* TargetHttpProxy: 80, 8080\n* TargetHttpsProxy: 443\n* TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688, 1883, 5222\n* TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688, 1883, 5222\n* TargetVpnGateway: 500, 4500\n\n@pattern: d+(?:-d+)?","description_kind":"plain","optional":true},"project":{"type":"string","description":"The project this resource belongs in.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"[Output Only] Server-defined URL for the resource.","description_kind":"plain","computed":true},"target":{"type":"string","description":"The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For `INTERNAL_SELF_MANAGED` load balancing, only `targetHttpProxy` is valid, not `targetHttpsProxy`.","description_kind":"plain","required":true}},"block_types":{"metadata_filters":{"nesting_mode":"list","block":{"attributes":{"filter_match_criteria":{"type":"string","description":"Specifies how individual `filterLabel` matches within the list of `filterLabel`s contribute towards the overall `metadataFilter` match.\n\nSupported values are:\n\n* MATCH_ANY: At least one of the `filterLabels` must have a matching label in the provided metadata.\n* MATCH_ALL: All `filterLabels` must have matching labels in the provided metadata. Possible values: NOT_SET, MATCH_ALL, MATCH_ANY","description_kind":"plain","required":true}},"block_types":{"filter_labels":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of metadata label.\n\nThe name can have a maximum length of 1024 characters and must be at least 1 character long.","description_kind":"plain","required":true},"value":{"type":"string","description":"The value of the label must match the specified value.\n\nvalue can have a maximum length of 1024 characters.","description_kind":"plain","required":true}},"description":"The list of label value pairs that must match labels in the provided metadata based on `filterMatchCriteria`\n\nThis list must not be empty and can have at the most 64 entries.","description_kind":"plain"},"min_items":1,"max_items":64}},"description":"Opaque filter criteria used by Loadbalancer to restrict routing configuration to a limited set of [xDS](https://github.com/envoyproxy/data-plane-api/blob/master/XDS_PROTOCOL.md) compliant clients. In their xDS requests to Loadbalancer, xDS clients present [node metadata](https://github.com/envoyproxy/data-plane-api/search?q=%22message+Node%22+in%3A%2Fenvoy%2Fapi%2Fv2%2Fcore%2Fbase.proto\u0026). If a match takes place, the relevant configuration is made available to those proxies. Otherwise, all the resources (e.g. `TargetHttpProxy`, `UrlMap`) referenced by the `ForwardingRule` will not be visible to those proxies.\n\nFor each `metadataFilter` in this list, if its `filterMatchCriteria` is set to MATCH_ANY, at least one of the `filterLabel`s must match the corresponding label provided in the metadata. If its `filterMatchCriteria` is set to MATCH_ALL, then all of its `filterLabel`s must match with corresponding labels provided in the metadata.\n\n`metadataFilters` specified here will be applifed before those specified in the `UrlMap` that this `ForwardingRule` references.\n\n`metadataFilters` only applies to Loadbalancers that have their loadBalancingScheme set to `INTERNAL_SELF_MANAGED`.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_global_network_endpoint":{"version":0,"block":{"attributes":{"fqdn":{"type":"string","description":"Fully qualified domain name of network endpoint.\nThis can only be specified when network_endpoint_type of the NEG is INTERNET_FQDN_PORT.","description_kind":"plain","optional":true},"global_network_endpoint_group":{"type":"string","description":"The global network endpoint group this endpoint is part of.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"IPv4 address external endpoint.","description_kind":"plain","optional":true},"port":{"type":"number","description":"Port number of the external endpoint.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_global_network_endpoint_group":{"version":0,"block":{"attributes":{"default_port":{"type":"number","description":"The default port used if the port number is not specified in the\nnetwork endpoint.","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"network_endpoint_type":{"type":"string","description":"Type of network endpoints in this network endpoint group. Possible values: [\"INTERNET_IP_PORT\", \"INTERNET_FQDN_PORT\"]","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_ha_vpn_gateway":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"The network this VPN gateway is accepting traffic for.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region this gateway should sit in.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"vpn_interfaces":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"number","description":"The numeric ID of this VPN gateway interface.","description_kind":"plain","optional":true},"interconnect_attachment":{"type":"string","description":"URL of the interconnect attachment resource. When the value\nof this field is present, the VPN Gateway will be used for\nIPsec-encrypted Cloud Interconnect; all Egress or Ingress\ntraffic for this VPN Gateway interface will go through the\nspecified interconnect attachment resource.\n\nNot currently available publicly.","description_kind":"plain","optional":true},"ip_address":{"type":"string","description":"The external IP address for this VPN gateway interface.","description_kind":"plain","computed":true}},"description":"A list of interfaces on this VPN gateway.","description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_health_check":{"version":0,"block":{"attributes":{"check_interval_sec":{"type":"number","description":"How often (in seconds) to send a health check. The default value is 5\nseconds.","description_kind":"plain","optional":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"healthy_threshold":{"type":"number","description":"A so-far unhealthy instance will be marked healthy after this many\nconsecutive successes. The default value is 2.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the\nlast character, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"timeout_sec":{"type":"number","description":"How long (in seconds) to wait before claiming failure.\nThe default value is 5 seconds. It is invalid for timeoutSec to have\ngreater value than checkIntervalSec.","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of the health check. One of HTTP, HTTPS, TCP, or SSL.","description_kind":"plain","computed":true},"unhealthy_threshold":{"type":"number","description":"A so-far healthy instance will be marked unhealthy after this many\nconsecutive failures. The default value is 2.","description_kind":"plain","optional":true}},"block_types":{"grpc_health_check":{"nesting_mode":"list","block":{"attributes":{"grpc_service_name":{"type":"string","description":"The gRPC service name for the health check.\nThe value of grpcServiceName has the following meanings by convention:\n - Empty serviceName means the overall status of all services at the backend.\n - Non-empty serviceName means the health of that gRPC service, as defined by the owner of the service.\nThe grpcServiceName can only be ASCII.","description_kind":"plain","optional":true},"port":{"type":"number","description":"The port number for the health check request.\nMust be specified if portName and portSpecification are not set\nor if port_specification is USE_FIXED_PORT. Valid values are 1 through 65535.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, gRPC health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"http2_health_check":{"nesting_mode":"list","block":{"attributes":{"host":{"type":"string","description":"The value of the host header in the HTTP2 health check request.\nIf left empty (default value), the public IP on behalf of which this health\ncheck is performed will be used.","description_kind":"plain","optional":true},"port":{"type":"number","description":"The TCP port number for the HTTP2 health check request.\nThe default value is 443.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, HTTP2 health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"request_path":{"type":"string","description":"The request path of the HTTP2 health check request.\nThe default value is /.","description_kind":"plain","optional":true},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"http_health_check":{"nesting_mode":"list","block":{"attributes":{"host":{"type":"string","description":"The value of the host header in the HTTP health check request.\nIf left empty (default value), the public IP on behalf of which this health\ncheck is performed will be used.","description_kind":"plain","optional":true},"port":{"type":"number","description":"The TCP port number for the HTTP health check request.\nThe default value is 80.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, HTTP health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"request_path":{"type":"string","description":"The request path of the HTTP health check request.\nThe default value is /.","description_kind":"plain","optional":true},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"https_health_check":{"nesting_mode":"list","block":{"attributes":{"host":{"type":"string","description":"The value of the host header in the HTTPS health check request.\nIf left empty (default value), the public IP on behalf of which this health\ncheck is performed will be used.","description_kind":"plain","optional":true},"port":{"type":"number","description":"The TCP port number for the HTTPS health check request.\nThe default value is 443.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, HTTPS health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"request_path":{"type":"string","description":"The request path of the HTTPS health check request.\nThe default value is /.","description_kind":"plain","optional":true},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"log_config":{"nesting_mode":"list","block":{"attributes":{"enable":{"type":"bool","description":"Indicates whether or not to export logs. This is false by default,\nwhich means no health check logging will be done.","description_kind":"plain","optional":true}},"description":"Configure logging on this health check.","description_kind":"plain"},"max_items":1},"ssl_health_check":{"nesting_mode":"list","block":{"attributes":{"port":{"type":"number","description":"The TCP port number for the SSL health check request.\nThe default value is 443.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, SSL health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"request":{"type":"string","description":"The application data to send once the SSL connection has been\nestablished (default value is empty). If both request and response are\nempty, the connection establishment alone will indicate health. The request\ndata can only be ASCII.","description_kind":"plain","optional":true},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"tcp_health_check":{"nesting_mode":"list","block":{"attributes":{"port":{"type":"number","description":"The TCP port number for the TCP health check request.\nThe default value is 443.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, TCP health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"request":{"type":"string","description":"The application data to send once the TCP connection has been\nestablished (default value is empty). If both request and response are\nempty, the connection establishment alone will indicate health. The request\ndata can only be ASCII.","description_kind":"plain","optional":true},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_http_health_check":{"version":0,"block":{"attributes":{"check_interval_sec":{"type":"number","description":"How often (in seconds) to send a health check. The default value is 5\nseconds.","description_kind":"plain","optional":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"healthy_threshold":{"type":"number","description":"A so-far unhealthy instance will be marked healthy after this many\nconsecutive successes. The default value is 2.","description_kind":"plain","optional":true},"host":{"type":"string","description":"The value of the host header in the HTTP health check request. If\nleft empty (default value), the public IP on behalf of which this\nhealth check is performed will be used.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the\nlast character, which cannot be a dash.","description_kind":"plain","required":true},"port":{"type":"number","description":"The TCP port number for the HTTP health check request.\nThe default value is 80.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"request_path":{"type":"string","description":"The request path of the HTTP health check request.\nThe default value is /.","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"timeout_sec":{"type":"number","description":"How long (in seconds) to wait before claiming failure.\nThe default value is 5 seconds. It is invalid for timeoutSec to have\ngreater value than checkIntervalSec.","description_kind":"plain","optional":true},"unhealthy_threshold":{"type":"number","description":"A so-far healthy instance will be marked unhealthy after this many\nconsecutive failures. The default value is 2.","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_https_health_check":{"version":0,"block":{"attributes":{"check_interval_sec":{"type":"number","description":"How often (in seconds) to send a health check. The default value is 5\nseconds.","description_kind":"plain","optional":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"healthy_threshold":{"type":"number","description":"A so-far unhealthy instance will be marked healthy after this many\nconsecutive successes. The default value is 2.","description_kind":"plain","optional":true},"host":{"type":"string","description":"The value of the host header in the HTTPS health check request. If\nleft empty (default value), the public IP on behalf of which this\nhealth check is performed will be used.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the\nlast character, which cannot be a dash.","description_kind":"plain","required":true},"port":{"type":"number","description":"The TCP port number for the HTTPS health check request.\nThe default value is 443.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"request_path":{"type":"string","description":"The request path of the HTTPS health check request.\nThe default value is /.","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"timeout_sec":{"type":"number","description":"How long (in seconds) to wait before claiming failure.\nThe default value is 5 seconds. It is invalid for timeoutSec to have\ngreater value than checkIntervalSec.","description_kind":"plain","optional":true},"unhealthy_threshold":{"type":"number","description":"A so-far healthy instance will be marked unhealthy after this many\nconsecutive failures. The default value is 2.","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_image":{"version":0,"block":{"attributes":{"archive_size_bytes":{"type":"number","description":"Size of the image tar.gz archive stored in Google Cloud Storage (in\nbytes).","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"disk_size_gb":{"type":"number","description":"Size of the image when restored onto a persistent disk (in GB).","description_kind":"plain","optional":true,"computed":true},"family":{"type":"string","description":"The name of the image family to which this image belongs. You can\ncreate disks by specifying an image family instead of a specific\nimage name. The image family always returns its latest image that is\nnot deprecated. The name of the image family must comply with\nRFC1035.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label_fingerprint":{"type":"string","description":"The fingerprint used for optimistic locking of this resource. Used\ninternally during updates.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Labels to apply to this Image.","description_kind":"plain","optional":true},"licenses":{"type":["list","string"],"description":"Any applicable license URI.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the\nlast character, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"source_disk":{"type":"string","description":"The source disk to create this image based on.\nYou must provide either this property or the\nrawDisk.source property but not both to create an image.","description_kind":"plain","optional":true},"source_image":{"type":"string","description":"URL of the source image used to create this image. In order to create an image, you must provide the full or partial\nURL of one of the following:\n\n* The selfLink URL\n* This property\n* The rawDisk.source URL\n* The sourceDisk URL","description_kind":"plain","optional":true},"source_snapshot":{"type":"string","description":"URL of the source snapshot used to create this image.\n\nIn order to create an image, you must provide the full or partial URL of one of the following:\n\n* The selfLink URL\n* This property\n* The sourceImage URL\n* The rawDisk.source URL\n* The sourceDisk URL","description_kind":"plain","optional":true}},"block_types":{"guest_os_features":{"nesting_mode":"set","block":{"attributes":{"type":{"type":"string","description":"The type of supported feature. Read [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features) to see a list of available options. Possible values: [\"MULTI_IP_SUBNET\", \"SECURE_BOOT\", \"SEV_CAPABLE\", \"UEFI_COMPATIBLE\", \"VIRTIO_SCSI_MULTIQUEUE\", \"WINDOWS\", \"GVNIC\"]","description_kind":"plain","required":true}},"description":"A list of features to enable on the guest operating system.\nApplicable only for bootable images.","description_kind":"plain"}},"raw_disk":{"nesting_mode":"list","block":{"attributes":{"container_type":{"type":"string","description":"The format used to encode and transmit the block device, which\nshould be TAR. This is just a container and transmission format\nand not a runtime format. Provided by the client when the disk\nimage is created. Default value: \"TAR\" Possible values: [\"TAR\"]","description_kind":"plain","optional":true},"sha1":{"type":"string","description":"An optional SHA1 checksum of the disk image before unpackaging.\nThis is provided by the client when the disk image is created.","description_kind":"plain","optional":true},"source":{"type":"string","description":"The full Google Cloud Storage URL where disk storage is stored\nYou must provide either this property or the sourceDisk property\nbut not both.","description_kind":"plain","required":true}},"description":"The parameters of the raw disk image.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_image_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image":{"type":"string","description_kind":"plain","required":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_compute_image_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image":{"type":"string","description_kind":"plain","required":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_compute_image_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_compute_instance":{"version":6,"block":{"attributes":{"allow_stopping_for_update":{"type":"bool","description":"If true, allows Terraform to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail.","description_kind":"plain","optional":true},"can_ip_forward":{"type":"bool","description":"Whether sending and receiving of packets with non-matching source or destination IPs is allowed.","description_kind":"plain","optional":true},"cpu_platform":{"type":"string","description":"The CPU platform used by this instance.","description_kind":"plain","computed":true},"current_status":{"type":"string","description":"Current status of the instance.","description_kind":"plain","computed":true},"deletion_protection":{"type":"bool","description":"Whether deletion protection is enabled on this instance.","description_kind":"plain","optional":true},"description":{"type":"string","description":"A brief description of the resource.","description_kind":"plain","optional":true},"desired_status":{"type":"string","description":"Desired status of the instance. Either \"RUNNING\" or \"TERMINATED\".","description_kind":"plain","optional":true},"enable_display":{"type":"bool","description":"Whether the instance has virtual displays enabled.","description_kind":"plain","optional":true},"guest_accelerator":{"type":["list",["object",{"count":"number","type":"string"}]],"description":"List of the type and count of accelerator cards attached to the instance.","description_kind":"plain","optional":true,"computed":true},"hostname":{"type":"string","description":"A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression [a-z]([-a-z0-9]*[a-z0-9]), concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"The server-assigned unique identifier of this instance.","description_kind":"plain","computed":true},"label_fingerprint":{"type":"string","description":"The unique fingerprint of the labels.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs assigned to the instance.","description_kind":"plain","optional":true},"machine_type":{"type":"string","description":"The machine type to create.","description_kind":"plain","required":true},"metadata":{"type":["map","string"],"description":"Metadata key/value pairs made available within the instance.","description_kind":"plain","optional":true},"metadata_fingerprint":{"type":"string","description":"The unique fingerprint of the metadata.","description_kind":"plain","computed":true},"metadata_startup_script":{"type":"string","description":"Metadata startup scripts made available within the instance.","description_kind":"plain","optional":true},"min_cpu_platform":{"type":"string","description":"The minimum CPU platform specified for the VM instance.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the instance. One of name or self_link must be provided.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If self_link is provided, this value is ignored. If neither self_link nor project are provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"resource_policies":{"type":["list","string"],"description":"A list of short names or self_links of resource policies to attach to the instance. Currently a max of 1 resource policy is supported.","description_kind":"plain","optional":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"The list of tags attached to the instance.","description_kind":"plain","optional":true},"tags_fingerprint":{"type":"string","description":"The unique fingerprint of the tags.","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone of the instance. If self_link is provided, this value is ignored. If neither self_link nor zone are provided, the provider zone is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"advanced_machine_features":{"nesting_mode":"list","block":{"attributes":{"enable_nested_virtualization":{"type":"bool","description":"Whether to enable nested virtualization or not.","description_kind":"plain","optional":true},"threads_per_core":{"type":"number","description":"The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.","description_kind":"plain","optional":true}},"description":"Controls for advanced machine-related behavior features.","description_kind":"plain"},"max_items":1},"attached_disk":{"nesting_mode":"list","block":{"attributes":{"device_name":{"type":"string","description":"Name with which the attached disk is accessible under /dev/disk/by-id/","description_kind":"plain","optional":true,"computed":true},"disk_encryption_key_raw":{"type":"string","description":"A 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.","description_kind":"plain","optional":true,"sensitive":true},"disk_encryption_key_sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.","description_kind":"plain","computed":true},"kms_key_self_link":{"type":"string","description":"The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.","description_kind":"plain","optional":true,"computed":true},"mode":{"type":"string","description":"Read/write mode for the disk. One of \"READ_ONLY\" or \"READ_WRITE\".","description_kind":"plain","optional":true},"source":{"type":"string","description":"The name or self_link of the disk attached to this instance.","description_kind":"plain","required":true}},"description":"List of disks attached to the instance","description_kind":"plain"}},"boot_disk":{"nesting_mode":"list","block":{"attributes":{"auto_delete":{"type":"bool","description":"Whether the disk will be auto-deleted when the instance is deleted.","description_kind":"plain","optional":true},"device_name":{"type":"string","description":"Name with which attached disk will be accessible under /dev/disk/by-id/","description_kind":"plain","optional":true,"computed":true},"disk_encryption_key_raw":{"type":"string","description":"A 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.","description_kind":"plain","optional":true,"sensitive":true},"disk_encryption_key_sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.","description_kind":"plain","computed":true},"kms_key_self_link":{"type":"string","description":"The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.","description_kind":"plain","optional":true,"computed":true},"mode":{"type":"string","description":"Read/write mode for the disk. One of \"READ_ONLY\" or \"READ_WRITE\".","description_kind":"plain","optional":true},"source":{"type":"string","description":"The name or self_link of the disk attached to this instance.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"initialize_params":{"nesting_mode":"list","block":{"attributes":{"image":{"type":"string","description":"The image from which this disk was initialised.","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs assigned to the disk.","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description":"The size of the image in gigabytes.","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"The Google Compute Engine disk type. One of pd-standard, pd-ssd or pd-balanced.","description_kind":"plain","optional":true,"computed":true}},"description":"Parameters with which a disk was created alongside the instance.","description_kind":"plain"},"max_items":1}},"description":"The boot disk for the instance.","description_kind":"plain"},"min_items":1,"max_items":1},"confidential_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_confidential_compute":{"type":"bool","description":"Defines whether the instance should have confidential compute enabled.","description_kind":"plain","required":true}},"description":"The Confidential VM config being used by the instance. on_host_maintenance has to be set to TERMINATE or this will fail to create.","description_kind":"plain"},"max_items":1},"network_interface":{"nesting_mode":"list","block":{"attributes":{"ipv6_access_type":{"type":"string","description":"One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the interface","description_kind":"plain","computed":true},"network":{"type":"string","description":"The name or self_link of the network attached to this interface.","description_kind":"plain","optional":true,"computed":true},"network_ip":{"type":"string","description":"The private IP address assigned to the instance.","description_kind":"plain","optional":true,"computed":true},"nic_type":{"type":"string","description":"The type of vNIC to be used on this interface. Possible values:GVNIC, VIRTIO_NET","description_kind":"plain","optional":true},"stack_type":{"type":"string","description":"The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used.","description_kind":"plain","optional":true,"computed":true},"subnetwork":{"type":"string","description":"The name or self_link of the subnetwork attached to this interface.","description_kind":"plain","optional":true,"computed":true},"subnetwork_project":{"type":"string","description":"The project in which the subnetwork belongs.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"access_config":{"nesting_mode":"list","block":{"attributes":{"nat_ip":{"type":"string","description":"The IP address that is be 1:1 mapped to the instance's network ip.","description_kind":"plain","optional":true,"computed":true},"network_tier":{"type":"string","description":"The networking tier used for configuring this instance. One of PREMIUM or STANDARD.","description_kind":"plain","optional":true,"computed":true},"public_ptr_domain_name":{"type":"string","description":"The DNS domain name for the public PTR record.","description_kind":"plain","optional":true}},"description":"Access configurations, i.e. IPs via which this instance can be accessed via the Internet.","description_kind":"plain"}},"alias_ip_range":{"nesting_mode":"list","block":{"attributes":{"ip_cidr_range":{"type":"string","description":"The IP CIDR range represented by this alias IP range.","description_kind":"plain","required":true},"subnetwork_range_name":{"type":"string","description":"The subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range.","description_kind":"plain","optional":true}},"description":"An array of alias IP ranges for this network interface.","description_kind":"plain"}},"ipv6_access_config":{"nesting_mode":"list","block":{"attributes":{"external_ipv6":{"type":"string","description":"The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.","description_kind":"plain","computed":true},"external_ipv6_prefix_length":{"type":"string","description":"The prefix length of the external IPv6 range.","description_kind":"plain","computed":true},"network_tier":{"type":"string","description":"The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6","description_kind":"plain","required":true},"public_ptr_domain_name":{"type":"string","description":"The domain name to be used when creating DNSv6 records for the external IPv6 ranges.","description_kind":"plain","optional":true}},"description":"An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.","description_kind":"plain"}}},"description":"The networks attached to the instance.","description_kind":"plain"},"min_items":1},"reservation_affinity":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description":"The type of reservation from which this instance can consume resources.","description_kind":"plain","required":true}},"block_types":{"specific_reservation":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description":"Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify compute.googleapis.com/reservation-name as the key and specify the name of your reservation as the only value.","description_kind":"plain","required":true},"values":{"type":["list","string"],"description":"Corresponds to the label values of a reservation resource.","description_kind":"plain","required":true}},"description":"Specifies the label selector for the reservation to use.","description_kind":"plain"},"max_items":1}},"description":"Specifies the reservations that this instance can consume from.","description_kind":"plain"},"max_items":1},"scheduling":{"nesting_mode":"list","block":{"attributes":{"automatic_restart":{"type":"bool","description":"Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user).","description_kind":"plain","optional":true},"min_node_cpus":{"type":"number","description_kind":"plain","optional":true},"on_host_maintenance":{"type":"string","description":"Describes maintenance behavior for the instance. One of MIGRATE or TERMINATE,","description_kind":"plain","optional":true,"computed":true},"preemptible":{"type":"bool","description":"Whether the instance is preemptible.","description_kind":"plain","optional":true}},"block_types":{"node_affinities":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","required":true},"values":{"type":["set","string"],"description_kind":"plain","required":true}},"description":"Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems.","description_kind":"plain"}}},"description":"The scheduling strategy being used by the instance.","description_kind":"plain"},"max_items":1},"scratch_disk":{"nesting_mode":"list","block":{"attributes":{"interface":{"type":"string","description":"The disk interface used for attaching this disk. One of SCSI or NVME.","description_kind":"plain","required":true}},"description":"The scratch disks attached to the instance.","description_kind":"plain"}},"service_account":{"nesting_mode":"list","block":{"attributes":{"email":{"type":"string","description":"The service account e-mail address.","description_kind":"plain","optional":true,"computed":true},"scopes":{"type":["set","string"],"description":"A list of service scopes.","description_kind":"plain","required":true}},"description":"The service account to attach to the instance.","description_kind":"plain"},"max_items":1},"shielded_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description":"Whether integrity monitoring is enabled for the instance.","description_kind":"plain","optional":true},"enable_secure_boot":{"type":"bool","description":"Whether secure boot is enabled for the instance.","description_kind":"plain","optional":true},"enable_vtpm":{"type":"bool","description":"Whether the instance uses vTPM.","description_kind":"plain","optional":true}},"description":"The shielded vm config being used by the instance.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_instance_from_template":{"version":0,"block":{"attributes":{"allow_stopping_for_update":{"type":"bool","description":"If true, allows Terraform to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail.","description_kind":"plain","optional":true,"computed":true},"attached_disk":{"type":["list",["object",{"device_name":"string","disk_encryption_key_raw":"string","disk_encryption_key_sha256":"string","kms_key_self_link":"string","mode":"string","source":"string"}]],"description":"List of disks attached to the instance","description_kind":"plain","optional":true,"computed":true},"can_ip_forward":{"type":"bool","description":"Whether sending and receiving of packets with non-matching source or destination IPs is allowed.","description_kind":"plain","optional":true,"computed":true},"cpu_platform":{"type":"string","description":"The CPU platform used by this instance.","description_kind":"plain","computed":true},"current_status":{"type":"string","description":"Current status of the instance.","description_kind":"plain","computed":true},"deletion_protection":{"type":"bool","description":"Whether deletion protection is enabled on this instance.","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description":"A brief description of the resource.","description_kind":"plain","optional":true,"computed":true},"desired_status":{"type":"string","description":"Desired status of the instance. Either \"RUNNING\" or \"TERMINATED\".","description_kind":"plain","optional":true,"computed":true},"enable_display":{"type":"bool","description":"Whether the instance has virtual displays enabled.","description_kind":"plain","optional":true,"computed":true},"guest_accelerator":{"type":["list",["object",{"count":"number","type":"string"}]],"description":"List of the type and count of accelerator cards attached to the instance.","description_kind":"plain","optional":true,"computed":true},"hostname":{"type":"string","description":"A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression [a-z]([-a-z0-9]*[a-z0-9]), concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"The server-assigned unique identifier of this instance.","description_kind":"plain","computed":true},"label_fingerprint":{"type":"string","description":"The unique fingerprint of the labels.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs assigned to the instance.","description_kind":"plain","optional":true,"computed":true},"machine_type":{"type":"string","description":"The machine type to create.","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":["map","string"],"description":"Metadata key/value pairs made available within the instance.","description_kind":"plain","optional":true,"computed":true},"metadata_fingerprint":{"type":"string","description":"The unique fingerprint of the metadata.","description_kind":"plain","computed":true},"metadata_startup_script":{"type":"string","description":"Metadata startup scripts made available within the instance.","description_kind":"plain","optional":true,"computed":true},"min_cpu_platform":{"type":"string","description":"The minimum CPU platform specified for the VM instance.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the instance. One of name or self_link must be provided.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If self_link is provided, this value is ignored. If neither self_link nor project are provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"resource_policies":{"type":["list","string"],"description":"A list of short names or self_links of resource policies to attach to the instance. Currently a max of 1 resource policy is supported.","description_kind":"plain","optional":true,"computed":true},"scratch_disk":{"type":["list",["object",{"interface":"string"}]],"description":"The scratch disks attached to the instance.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"service_account":{"type":["list",["object",{"email":"string","scopes":["set","string"]}]],"description":"The service account to attach to the instance.","description_kind":"plain","optional":true,"computed":true},"source_instance_template":{"type":"string","description":"Name or self link of an instance template to create the instance based on.","description_kind":"plain","required":true},"tags":{"type":["set","string"],"description":"The list of tags attached to the instance.","description_kind":"plain","optional":true,"computed":true},"tags_fingerprint":{"type":"string","description":"The unique fingerprint of the tags.","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone of the instance. If self_link is provided, this value is ignored. If neither self_link nor zone are provided, the provider zone is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"advanced_machine_features":{"nesting_mode":"list","block":{"attributes":{"enable_nested_virtualization":{"type":"bool","description":"Whether to enable nested virtualization or not.","description_kind":"plain","optional":true,"computed":true},"threads_per_core":{"type":"number","description":"The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.","description_kind":"plain","optional":true,"computed":true}},"description":"Controls for advanced machine-related behavior features.","description_kind":"plain"},"max_items":1},"boot_disk":{"nesting_mode":"list","block":{"attributes":{"auto_delete":{"type":"bool","description":"Whether the disk will be auto-deleted when the instance is deleted.","description_kind":"plain","optional":true,"computed":true},"device_name":{"type":"string","description":"Name with which attached disk will be accessible under /dev/disk/by-id/","description_kind":"plain","optional":true,"computed":true},"disk_encryption_key_raw":{"type":"string","description":"A 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.","description_kind":"plain","optional":true,"computed":true,"sensitive":true},"disk_encryption_key_sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.","description_kind":"plain","computed":true},"kms_key_self_link":{"type":"string","description":"The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.","description_kind":"plain","optional":true,"computed":true},"mode":{"type":"string","description":"Read/write mode for the disk. One of \"READ_ONLY\" or \"READ_WRITE\".","description_kind":"plain","optional":true,"computed":true},"source":{"type":"string","description":"The name or self_link of the disk attached to this instance.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"initialize_params":{"nesting_mode":"list","block":{"attributes":{"image":{"type":"string","description":"The image from which this disk was initialised.","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs assigned to the disk.","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description":"The size of the image in gigabytes.","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"The Google Compute Engine disk type. One of pd-standard, pd-ssd or pd-balanced.","description_kind":"plain","optional":true,"computed":true}},"description":"Parameters with which a disk was created alongside the instance.","description_kind":"plain"},"max_items":1}},"description":"The boot disk for the instance.","description_kind":"plain"},"max_items":1},"confidential_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_confidential_compute":{"type":"bool","description":"Defines whether the instance should have confidential compute enabled.","description_kind":"plain","required":true}},"description":"The Confidential VM config being used by the instance. on_host_maintenance has to be set to TERMINATE or this will fail to create.","description_kind":"plain"},"max_items":1},"network_interface":{"nesting_mode":"list","block":{"attributes":{"access_config":{"type":["list",["object",{"nat_ip":"string","network_tier":"string","public_ptr_domain_name":"string"}]],"description":"Access configurations, i.e. IPs via which this instance can be accessed via the Internet.","description_kind":"plain","optional":true,"computed":true},"alias_ip_range":{"type":["list",["object",{"ip_cidr_range":"string","subnetwork_range_name":"string"}]],"description":"An array of alias IP ranges for this network interface.","description_kind":"plain","optional":true,"computed":true},"ipv6_access_type":{"type":"string","description":"One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the interface","description_kind":"plain","computed":true},"network":{"type":"string","description":"The name or self_link of the network attached to this interface.","description_kind":"plain","optional":true,"computed":true},"network_ip":{"type":"string","description":"The private IP address assigned to the instance.","description_kind":"plain","optional":true,"computed":true},"nic_type":{"type":"string","description":"The type of vNIC to be used on this interface. Possible values:GVNIC, VIRTIO_NET","description_kind":"plain","optional":true,"computed":true},"stack_type":{"type":"string","description":"The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used.","description_kind":"plain","optional":true,"computed":true},"subnetwork":{"type":"string","description":"The name or self_link of the subnetwork attached to this interface.","description_kind":"plain","optional":true,"computed":true},"subnetwork_project":{"type":"string","description":"The project in which the subnetwork belongs.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"ipv6_access_config":{"nesting_mode":"list","block":{"attributes":{"external_ipv6":{"type":"string","description":"The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.","description_kind":"plain","computed":true},"external_ipv6_prefix_length":{"type":"string","description":"The prefix length of the external IPv6 range.","description_kind":"plain","computed":true},"network_tier":{"type":"string","description":"The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6","description_kind":"plain","required":true},"public_ptr_domain_name":{"type":"string","description":"The domain name to be used when creating DNSv6 records for the external IPv6 ranges.","description_kind":"plain","optional":true,"computed":true}},"description":"An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.","description_kind":"plain"}}},"description":"The networks attached to the instance.","description_kind":"plain"}},"reservation_affinity":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description":"The type of reservation from which this instance can consume resources.","description_kind":"plain","required":true}},"block_types":{"specific_reservation":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description":"Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify compute.googleapis.com/reservation-name as the key and specify the name of your reservation as the only value.","description_kind":"plain","required":true},"values":{"type":["list","string"],"description":"Corresponds to the label values of a reservation resource.","description_kind":"plain","required":true}},"description":"Specifies the label selector for the reservation to use.","description_kind":"plain"},"max_items":1}},"description":"Specifies the reservations that this instance can consume from.","description_kind":"plain"},"max_items":1},"scheduling":{"nesting_mode":"list","block":{"attributes":{"automatic_restart":{"type":"bool","description":"Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user).","description_kind":"plain","optional":true,"computed":true},"min_node_cpus":{"type":"number","description_kind":"plain","optional":true,"computed":true},"on_host_maintenance":{"type":"string","description":"Describes maintenance behavior for the instance. One of MIGRATE or TERMINATE,","description_kind":"plain","optional":true,"computed":true},"preemptible":{"type":"bool","description":"Whether the instance is preemptible.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"node_affinities":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","required":true},"values":{"type":["set","string"],"description_kind":"plain","required":true}},"description":"Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems.","description_kind":"plain"}}},"description":"The scheduling strategy being used by the instance.","description_kind":"plain"},"max_items":1},"shielded_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description":"Whether integrity monitoring is enabled for the instance.","description_kind":"plain","optional":true,"computed":true},"enable_secure_boot":{"type":"bool","description":"Whether secure boot is enabled for the instance.","description_kind":"plain","optional":true,"computed":true},"enable_vtpm":{"type":"bool","description":"Whether the instance uses vTPM.","description_kind":"plain","optional":true,"computed":true}},"description":"The shielded vm config being used by the instance.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_instance_group":{"version":2,"block":{"attributes":{"description":{"type":"string","description":"An optional textual description of the instance group.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instances":{"type":["set","string"],"description":"List of instances in the group. They should be given as self_link URLs. When adding instances they must all be in the same network and zone as the instance group.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the instance group. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens.","description_kind":"plain","required":true},"network":{"type":"string","description":"The URL of the network the instance group is in. If this is different from the network where the instances are in, the creation fails. Defaults to the network where the instances are in (if neither network nor instances is specified, this field will be blank).","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"size":{"type":"number","description":"The number of instances in the group.","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone that this instance group should be created in.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"named_port":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"The name which the port will be mapped to.","description_kind":"plain","required":true},"port":{"type":"number","description":"The port number to map the name to.","description_kind":"plain","required":true}},"description":"The named port configuration.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_instance_group_manager":{"version":0,"block":{"attributes":{"base_instance_name":{"type":"string","description":"The base instance name to use for instances in this group. The value must be a valid RFC1035 name. Supported characters are lowercase letters, numbers, and hyphens (-). Instances are named by appending a hyphen and a random four-character string to the base instance name.","description_kind":"plain","required":true},"description":{"type":"string","description":"An optional textual description of the instance group manager.","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"The fingerprint of the instance group manager.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_group":{"type":"string","description":"The full URL of the instance group created by the manager.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the instance group manager. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens.","description_kind":"plain","required":true},"operation":{"type":"string","description_kind":"plain","computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"The URL of the created resource.","description_kind":"plain","computed":true},"status":{"type":["list",["object",{"is_stable":"bool","stateful":["list",["object",{"has_stateful_config":"bool","per_instance_configs":["list",["object",{"all_effective":"bool"}]]}]],"version_target":["list",["object",{"is_reached":"bool"}]]}]],"description":"The status of this managed instance group.","description_kind":"plain","computed":true},"target_pools":{"type":["set","string"],"description":"The full URL of all target pools to which new instances in the group are added. Updating the target pools attribute does not affect existing instances.","description_kind":"plain","optional":true},"target_size":{"type":"number","description":"The target number of running instances for this managed instance group. This value should always be explicitly set unless this resource is attached to an autoscaler, in which case it should never be set. Defaults to 0.","description_kind":"plain","optional":true,"computed":true},"wait_for_instances":{"type":"bool","description":"Whether to wait for all instances to be created/updated before returning. Note that if this is set to true and the operation does not succeed, Terraform will continue trying until it times out.","description_kind":"plain","optional":true},"wait_for_instances_status":{"type":"string","description":"When used with wait_for_instances specifies the status to wait for. When STABLE is specified this resource will wait until the instances are stable before returning. When UPDATED is set, it will wait for the version target to be reached and any per instance configs to be effective as well as all instances to be stable before returning.","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone that instances in this group should be created in.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"auto_healing_policies":{"nesting_mode":"list","block":{"attributes":{"health_check":{"type":"string","description":"The health check resource that signals autohealing.","description_kind":"plain","required":true},"initial_delay_sec":{"type":"number","description":"The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. Between 0 and 3600.","description_kind":"plain","required":true}},"description":"The autohealing policies for this managed instance group. You can specify only one value.","description_kind":"plain"},"max_items":1},"named_port":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description":"The name of the port.","description_kind":"plain","required":true},"port":{"type":"number","description":"The port number.","description_kind":"plain","required":true}},"description":"The named port configuration.","description_kind":"plain"}},"stateful_disk":{"nesting_mode":"set","block":{"attributes":{"delete_rule":{"type":"string","description":"A value that prescribes what should happen to the stateful disk when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the disk when the VM is deleted, but do not delete the disk. ON_PERMANENT_INSTANCE_DELETION will delete the stateful disk when the VM is permanently deleted from the instance group. The default is NEVER.","description_kind":"plain","optional":true},"device_name":{"type":"string","description":"The device name of the disk to be attached.","description_kind":"plain","required":true}},"description":"Disks created on the instances that will be preserved on instance delete, update, etc.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"update_policy":{"nesting_mode":"list","block":{"attributes":{"max_surge_fixed":{"type":"number","description":"The maximum number of instances that can be created above the specified targetSize during the update process. Conflicts with max_surge_percent. If neither is set, defaults to 1","description_kind":"plain","optional":true,"computed":true},"max_surge_percent":{"type":"number","description":"The maximum number of instances(calculated as percentage) that can be created above the specified targetSize during the update process. Conflicts with max_surge_fixed.","description_kind":"plain","optional":true},"max_unavailable_fixed":{"type":"number","description":"The maximum number of instances that can be unavailable during the update process. Conflicts with max_unavailable_percent. If neither is set, defaults to 1.","description_kind":"plain","optional":true,"computed":true},"max_unavailable_percent":{"type":"number","description":"The maximum number of instances(calculated as percentage) that can be unavailable during the update process. Conflicts with max_unavailable_fixed.","description_kind":"plain","optional":true},"minimal_action":{"type":"string","description":"Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.","description_kind":"plain","required":true},"replacement_method":{"type":"string","description":"The instance replacement method for managed instance groups. Valid values are: \"RECREATE\", \"SUBSTITUTE\". If SUBSTITUTE (default), the group replaces VM instances with new instances that have randomly generated names. If RECREATE, instance names are preserved. You must also set max_unavailable_fixed or max_unavailable_percent to be greater than 0.","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).","description_kind":"plain","required":true}},"description":"The update policy for this managed instance group.","description_kind":"plain"},"max_items":1},"version":{"nesting_mode":"list","block":{"attributes":{"instance_template":{"type":"string","description":"The full URL to an instance template from which all new instances of this version will be created.","description_kind":"plain","required":true},"name":{"type":"string","description":"Version name.","description_kind":"plain","optional":true}},"block_types":{"target_size":{"nesting_mode":"list","block":{"attributes":{"fixed":{"type":"number","description":"The number of instances which are managed for this version. Conflicts with percent.","description_kind":"plain","optional":true},"percent":{"type":"number","description":"The number of instances (calculated as percentage) which are managed for this version. Conflicts with fixed. Note that when using percent, rounding will be in favor of explicitly set target_size values; a managed instance group with 2 instances and 2 versions, one of which has a target_size.percent of 60 will create 2 instances of that version.","description_kind":"plain","optional":true}},"description":"The number of instances calculated as a fixed number or a percentage depending on the settings.","description_kind":"plain"},"max_items":1}},"description":"Application versions managed by this instance group. Each version deals with a specific instance template, allowing canary release scenarios.","description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"google_compute_instance_group_named_port":{"version":0,"block":{"attributes":{"group":{"type":"string","description":"The name of the instance group.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name for this named port. The name must be 1-63 characters\nlong, and comply with RFC1035.","description_kind":"plain","required":true},"port":{"type":"number","description":"The port number, which can be a value between 1 and 65535.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone of the instance group.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_instance_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_name":{"type":"string","description_kind":"plain","required":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_compute_instance_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_name":{"type":"string","description_kind":"plain","required":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_compute_instance_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_name":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_compute_instance_template":{"version":1,"block":{"attributes":{"can_ip_forward":{"type":"bool","description":"Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.","description_kind":"plain","optional":true},"description":{"type":"string","description":"A brief description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_description":{"type":"string","description":"A description of the instance.","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to instances created from this template,","description_kind":"plain","optional":true},"machine_type":{"type":"string","description":"The machine type to create. To create a machine with a custom type (such as extended memory), format the value like custom-VCPUS-MEM_IN_MB like custom-6-20480 for 6 vCPU and 20GB of RAM.","description_kind":"plain","required":true},"metadata":{"type":["map","string"],"description":"Metadata key/value pairs to make available from within instances created from this template.","description_kind":"plain","optional":true},"metadata_fingerprint":{"type":"string","description":"The unique fingerprint of the metadata.","description_kind":"plain","computed":true},"metadata_startup_script":{"type":"string","description":"An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.","description_kind":"plain","optional":true},"min_cpu_platform":{"type":"string","description":"Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the instance template. If you leave this blank, Terraform will auto-generate a unique name.","description_kind":"plain","optional":true,"computed":true},"name_prefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with name.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"An instance template is a global resource that is not bound to a zone or a region. However, you can still specify some regional resources in an instance template, which restricts the template to the region where that resource resides. For example, a custom subnetwork resource is tied to a specific region. Defaults to the region of the Provider if no value is given.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"Tags to attach to the instance.","description_kind":"plain","optional":true},"tags_fingerprint":{"type":"string","description":"The unique fingerprint of the tags.","description_kind":"plain","computed":true}},"block_types":{"advanced_machine_features":{"nesting_mode":"list","block":{"attributes":{"enable_nested_virtualization":{"type":"bool","description":"Whether to enable nested virtualization or not.","description_kind":"plain","optional":true},"threads_per_core":{"type":"number","description":"The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.","description_kind":"plain","optional":true}},"description":"Controls for advanced machine-related behavior features.","description_kind":"plain"},"max_items":1},"confidential_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_confidential_compute":{"type":"bool","description":"Defines whether the instance should have confidential compute enabled.","description_kind":"plain","required":true}},"description":"The Confidential VM config being used by the instance. on_host_maintenance has to be set to TERMINATE or this will fail to create.","description_kind":"plain"},"max_items":1},"disk":{"nesting_mode":"list","block":{"attributes":{"auto_delete":{"type":"bool","description":"Whether or not the disk should be auto-deleted. This defaults to true.","description_kind":"plain","optional":true},"boot":{"type":"bool","description":"Indicates that this is a boot disk.","description_kind":"plain","optional":true,"computed":true},"device_name":{"type":"string","description":"A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk.","description_kind":"plain","optional":true,"computed":true},"disk_name":{"type":"string","description":"Name of the disk. When not provided, this defaults to the name of the instance.","description_kind":"plain","optional":true},"disk_size_gb":{"type":"number","description":"The size of the image in gigabytes. If not specified, it will inherit the size of its base image. For SCRATCH disks, the size must be exactly 375GB.","description_kind":"plain","optional":true,"computed":true},"disk_type":{"type":"string","description":"The Google Compute Engine disk type. Can be either \"pd-ssd\", \"local-ssd\", \"pd-balanced\" or \"pd-standard\".","description_kind":"plain","optional":true,"computed":true},"interface":{"type":"string","description":"Specifies the disk interface to use for attaching this disk.","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to disks,","description_kind":"plain","optional":true},"mode":{"type":"string","description":"The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If you are attaching or creating a boot disk, this must read-write mode.","description_kind":"plain","optional":true,"computed":true},"resource_policies":{"type":["list","string"],"description":"A list (short name or id) of resource policies to attach to this disk. Currently a max of 1 resource policy is supported.","description_kind":"plain","optional":true},"source":{"type":"string","description":"The name (not self_link) of the disk (such as those managed by google_compute_disk) to attach. ~\u003e Note: Either source or source_image is required when creating a new instance except for when creating a local SSD.","description_kind":"plain","optional":true},"source_image":{"type":"string","description":"The image from which to initialize this disk. This can be one of: the image's self_link, projects/{project}/global/images/{image}, projects/{project}/global/images/family/{family}, global/images/{image}, global/images/family/{family}, family/{family}, {project}/{family}, {project}/{image}, {family}, or {image}. ~\u003e Note: Either source or source_image is required when creating a new instance except for when creating a local SSD.","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"The type of Google Compute Engine disk, can be either \"SCRATCH\" or \"PERSISTENT\".","description_kind":"plain","optional":true,"computed":true}},"block_types":{"disk_encryption_key":{"nesting_mode":"list","block":{"attributes":{"kms_key_self_link":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS.","description_kind":"plain","required":true}},"description":"Encrypts or decrypts a disk using a customer-supplied encryption key.","description_kind":"plain"},"max_items":1}},"description":"Disks to attach to instances created from this template. This can be specified multiple times for multiple disks.","description_kind":"plain"},"min_items":1},"guest_accelerator":{"nesting_mode":"list","block":{"attributes":{"count":{"type":"number","description":"The number of the guest accelerator cards exposed to this instance.","description_kind":"plain","required":true},"type":{"type":"string","description":"The accelerator type resource to expose to this instance. E.g. nvidia-tesla-k80.","description_kind":"plain","required":true}},"description":"List of the type and count of accelerator cards attached to the instance.","description_kind":"plain"}},"network_interface":{"nesting_mode":"list","block":{"attributes":{"ipv6_access_type":{"type":"string","description":"One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the network_interface.","description_kind":"plain","computed":true},"network":{"type":"string","description":"The name or self_link of the network to attach this interface to. Use network attribute for Legacy or Auto subnetted networks and subnetwork for custom subnetted networks.","description_kind":"plain","optional":true,"computed":true},"network_ip":{"type":"string","description":"The private IP address to assign to the instance. If empty, the address will be automatically assigned.","description_kind":"plain","optional":true},"nic_type":{"type":"string","description":"The type of vNIC to be used on this interface. Possible values:GVNIC, VIRTIO_NET","description_kind":"plain","optional":true},"stack_type":{"type":"string","description":"The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used.","description_kind":"plain","optional":true,"computed":true},"subnetwork":{"type":"string","description":"The name of the subnetwork to attach this interface to. The subnetwork must exist in the same region this instance will be created in. Either network or subnetwork must be provided.","description_kind":"plain","optional":true,"computed":true},"subnetwork_project":{"type":"string","description":"The ID of the project in which the subnetwork belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"access_config":{"nesting_mode":"list","block":{"attributes":{"nat_ip":{"type":"string","description":"The IP address that will be 1:1 mapped to the instance's network ip. If not given, one will be generated.","description_kind":"plain","optional":true,"computed":true},"network_tier":{"type":"string","description":"The networking tier used for configuring this instance template. This field can take the following values: PREMIUM or STANDARD. If this field is not specified, it is assumed to be PREMIUM.","description_kind":"plain","optional":true,"computed":true},"public_ptr_domain_name":{"type":"string","description":"The DNS domain name for the public PTR record.The DNS domain name for the public PTR record.","description_kind":"plain","computed":true}},"description":"Access configurations, i.e. IPs via which this instance can be accessed via the Internet. Omit to ensure that the instance is not accessible from the Internet (this means that ssh provisioners will not work unless you are running Terraform can send traffic to the instance's network (e.g. via tunnel or because it is running on another cloud instance on that network). This block can be repeated multiple times.","description_kind":"plain"}},"alias_ip_range":{"nesting_mode":"list","block":{"attributes":{"ip_cidr_range":{"type":"string","description":"The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. At the time of writing only a netmask (e.g. /24) may be supplied, with a CIDR format resulting in an API error.","description_kind":"plain","required":true},"subnetwork_range_name":{"type":"string","description":"The subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.","description_kind":"plain","optional":true}},"description":"An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.","description_kind":"plain"}},"ipv6_access_config":{"nesting_mode":"list","block":{"attributes":{"external_ipv6":{"type":"string","description":"The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.","description_kind":"plain","computed":true},"external_ipv6_prefix_length":{"type":"string","description":"The prefix length of the external IPv6 range.","description_kind":"plain","computed":true},"network_tier":{"type":"string","description":"The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6","description_kind":"plain","required":true},"public_ptr_domain_name":{"type":"string","description":"The domain name to be used when creating DNSv6 records for the external IPv6 ranges.","description_kind":"plain","computed":true}},"description":"An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.","description_kind":"plain"}}},"description":"Networks to attach to instances created from this template. This can be specified multiple times for multiple networks.","description_kind":"plain"}},"reservation_affinity":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description":"The type of reservation from which this instance can consume resources.","description_kind":"plain","required":true}},"block_types":{"specific_reservation":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description":"Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify compute.googleapis.com/reservation-name as the key and specify the name of your reservation as the only value.","description_kind":"plain","required":true},"values":{"type":["list","string"],"description":"Corresponds to the label values of a reservation resource.","description_kind":"plain","required":true}},"description":"Specifies the label selector for the reservation to use.","description_kind":"plain"},"max_items":1}},"description":"Specifies the reservations that this instance can consume from.","description_kind":"plain"},"max_items":1},"scheduling":{"nesting_mode":"list","block":{"attributes":{"automatic_restart":{"type":"bool","description":"Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). This defaults to true.","description_kind":"plain","optional":true},"min_node_cpus":{"type":"number","description":"Minimum number of cpus for the instance.","description_kind":"plain","optional":true},"on_host_maintenance":{"type":"string","description":"Defines the maintenance behavior for this instance.","description_kind":"plain","optional":true,"computed":true},"preemptible":{"type":"bool","description":"Allows instance to be preempted. This defaults to false.","description_kind":"plain","optional":true}},"block_types":{"node_affinities":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","required":true},"values":{"type":["set","string"],"description_kind":"plain","required":true}},"description":"Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems.","description_kind":"plain"}}},"description":"The scheduling strategy to use.","description_kind":"plain"},"max_items":1},"service_account":{"nesting_mode":"list","block":{"attributes":{"email":{"type":"string","description":"The service account e-mail address. If not given, the default Google Compute Engine service account is used.","description_kind":"plain","optional":true,"computed":true},"scopes":{"type":["set","string"],"description":"A list of service scopes. Both OAuth2 URLs and gcloud short names are supported. To allow full access to all Cloud APIs, use the cloud-platform scope.","description_kind":"plain","required":true}},"description":"Service account to attach to the instance.","description_kind":"plain"},"max_items":1},"shielded_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description":"Compare the most recent boot measurements to the integrity policy baseline and return a pair of pass/fail results depending on whether they match or not. Defaults to true.","description_kind":"plain","optional":true},"enable_secure_boot":{"type":"bool","description":"Verify the digital signature of all boot components, and halt the boot process if signature verification fails. Defaults to false.","description_kind":"plain","optional":true},"enable_vtpm":{"type":"bool","description":"Use a virtualized trusted platform module, which is a specialized computer chip you can use to encrypt objects like keys and certificates. Defaults to true.","description_kind":"plain","optional":true}},"description":"Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Note: shielded_instance_config can only be used with boot images with shielded vm support.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_interconnect_attachment":{"version":0,"block":{"attributes":{"admin_enabled":{"type":"bool","description":"Whether the VLAN attachment is enabled or disabled. When using\nPARTNER type this will Pre-Activate the interconnect attachment","description_kind":"plain","optional":true},"bandwidth":{"type":"string","description":"Provisioned bandwidth capacity for the interconnect attachment.\nFor attachments of type DEDICATED, the user can set the bandwidth.\nFor attachments of type PARTNER, the Google Partner that is operating the interconnect must set the bandwidth.\nOutput only for PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED,\nDefaults to BPS_10G Possible values: [\"BPS_50M\", \"BPS_100M\", \"BPS_200M\", \"BPS_300M\", \"BPS_400M\", \"BPS_500M\", \"BPS_1G\", \"BPS_2G\", \"BPS_5G\", \"BPS_10G\", \"BPS_20G\", \"BPS_50G\"]","description_kind":"plain","optional":true,"computed":true},"candidate_subnets":{"type":["list","string"],"description":"Up to 16 candidate prefixes that can be used to restrict the allocation\nof cloudRouterIpAddress and customerRouterIpAddress for this attachment.\nAll prefixes must be within link-local address space (169.254.0.0/16)\nand must be /29 or shorter (/28, /27, etc). Google will attempt to select\nan unused /29 from the supplied candidate prefix(es). The request will\nfail if all possible /29s are in use on Google's edge. If not supplied,\nGoogle will randomly select an unused /29 from all of link-local space.","description_kind":"plain","optional":true},"cloud_router_ip_address":{"type":"string","description":"IPv4 address + prefix length to be configured on Cloud Router\nInterface for this interconnect attachment.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"customer_router_ip_address":{"type":"string","description":"IPv4 address + prefix length to be configured on the customer\nrouter subinterface for this interconnect attachment.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"edge_availability_domain":{"type":"string","description":"Desired availability domain for the attachment. Only available for type\nPARTNER, at creation time. For improved reliability, customers should\nconfigure a pair of attachments with one per availability domain. The\nselected availability domain will be provided to the Partner via the\npairing key so that the provisioned circuit will lie in the specified\ndomain. If not specified, the value will default to AVAILABILITY_DOMAIN_ANY.","description_kind":"plain","optional":true,"computed":true},"encryption":{"type":"string","description":"Indicates the user-supplied encryption option of this interconnect\nattachment:\n\nNONE is the default value, which means that the attachment carries\nunencrypted traffic. VMs can send traffic to, or receive traffic\nfrom, this type of attachment.\n\nIPSEC indicates that the attachment carries only traffic encrypted by\nan IPsec device such as an HA VPN gateway. VMs cannot directly send\ntraffic to, or receive traffic from, such an attachment. To use\nIPsec-encrypted Cloud Interconnect create the attachment using this\noption.\n\nNot currently available publicly. Default value: \"NONE\" Possible values: [\"NONE\", \"IPSEC\"]","description_kind":"plain","optional":true},"google_reference_id":{"type":"string","description":"Google reference ID, to be used when raising support tickets with\nGoogle or otherwise to debug backend connectivity issues.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"interconnect":{"type":"string","description":"URL of the underlying Interconnect object that this attachment's\ntraffic will traverse through. Required if type is DEDICATED, must not\nbe set if type is PARTNER.","description_kind":"plain","optional":true},"ipsec_internal_addresses":{"type":["list","string"],"description":"URL of addresses that have been reserved for the interconnect\nattachment, Used only for interconnect attachment that has the\nencryption option as IPSEC.\n\nThe addresses must be RFC 1918 IP address ranges. When creating HA\nVPN gateway over the interconnect attachment, if the attachment is\nconfigured to use an RFC 1918 IP address, then the VPN gateway's IP\naddress will be allocated from the IP address range specified\nhere.\n\nFor example, if the HA VPN gateway's interface 0 is paired to this\ninterconnect attachment, then an RFC 1918 IP address for the VPN\ngateway interface 0 will be allocated from the IP address specified\nfor this interconnect attachment.\n\nIf this field is not specified for interconnect attachment that has\nencryption option as IPSEC, later on when creating HA VPN gateway on\nthis interconnect attachment, the HA VPN gateway's IP address will be\nallocated from regional external IP address pool.","description_kind":"plain","optional":true},"mtu":{"type":"string","description":"Maximum Transmission Unit (MTU), in bytes, of packets passing through\nthis interconnect attachment. Currently, only 1440 and 1500 are allowed. If not specified, the value will default to 1440.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is created. The\nname must be 1-63 characters long, and comply with RFC1035. Specifically, the\nname must be 1-63 characters long and match the regular expression\n'[a-z]([-a-z0-9]*[a-z0-9])?' which means the first character must be a\nlowercase letter, and all following characters must be a dash, lowercase\nletter, or digit, except the last character, which cannot be a dash.","description_kind":"plain","required":true},"pairing_key":{"type":"string","description":"[Output only for type PARTNER. Not present for DEDICATED]. The opaque\nidentifier of an PARTNER attachment used to initiate provisioning with\na selected partner. Of the form \"XXXXX/region/domain\"","description_kind":"plain","computed":true},"partner_asn":{"type":"string","description":"[Output only for type PARTNER. Not present for DEDICATED]. Optional\nBGP ASN for the router that should be supplied by a layer 3 Partner if\nthey configured BGP on behalf of the customer.","description_kind":"plain","computed":true},"private_interconnect_info":{"type":["list",["object",{"tag8021q":"number"}]],"description":"Information specific to an InterconnectAttachment. This property\nis populated if the interconnect that this is attached to is of type DEDICATED.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region where the regional interconnect attachment resides.","description_kind":"plain","optional":true,"computed":true},"router":{"type":"string","description":"URL of the cloud router to be used for dynamic routing. This router must be in\nthe same region as this InterconnectAttachment. The InterconnectAttachment will\nautomatically connect the Interconnect to the network \u0026 region within which the\nCloud Router is configured.","description_kind":"plain","required":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"state":{"type":"string","description":"[Output Only] The current state of this attachment's functionality.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of InterconnectAttachment you wish to create. Defaults to\nDEDICATED. Possible values: [\"DEDICATED\", \"PARTNER\", \"PARTNER_PROVIDER\"]","description_kind":"plain","optional":true,"computed":true},"vlan_tag8021q":{"type":"number","description":"The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4094. When\nusing PARTNER type this will be managed upstream.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_managed_ssl_certificate":{"version":0,"block":{"attributes":{"certificate_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","optional":true,"computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"expire_time":{"type":"string","description":"Expire time of the certificate.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.\n\n\nThese are in the same namespace as the managed SSL certificates.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"subject_alternative_names":{"type":["list","string"],"description":"Domains associated with the certificate via Subject Alternative Name.","description_kind":"plain","computed":true},"type":{"type":"string","description":"Enum field whose value is always 'MANAGED' - used to signal to the API\nwhich type this is. Default value: \"MANAGED\" Possible values: [\"MANAGED\"]","description_kind":"plain","optional":true}},"block_types":{"managed":{"nesting_mode":"list","block":{"attributes":{"domains":{"type":["list","string"],"description":"Domains for which a managed SSL certificate will be valid. Currently,\nthere can be up to 100 domains in this list.","description_kind":"plain","required":true}},"description":"Properties relevant to a managed certificate. These will be used if the\ncertificate is managed (as indicated by a value of 'MANAGED' in 'type').","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_network":{"version":0,"block":{"attributes":{"auto_create_subnetworks":{"type":"bool","description":"When set to 'true', the network is created in \"auto subnet mode\" and\nit will create a subnet for each region automatically across the\n'10.128.0.0/9' address range.\n\nWhen set to 'false', the network is created in \"custom subnet mode\" so\nthe user can explicitly connect subnetwork resources.","description_kind":"plain","optional":true},"delete_default_routes_on_create":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource. The resource must be\nrecreated to modify this field.","description_kind":"plain","optional":true},"gateway_ipv4":{"type":"string","description":"The gateway address for default routing out of the network. This value\nis selected by GCP.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mtu":{"type":"number","description":"Maximum Transmission Unit in bytes. The minimum value for this field is 1460\nand the maximum value is 1500 bytes.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"routing_mode":{"type":"string","description":"The network-wide routing mode to use. If set to 'REGIONAL', this\nnetwork's cloud routers will only advertise routes with subnetworks\nof this network in the same region as the router. If set to 'GLOBAL',\nthis network's cloud routers will advertise routes with all\nsubnetworks of this network, across regions. Possible values: [\"REGIONAL\", \"GLOBAL\"]","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_network_endpoint":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description":"The name for a specific VM instance that the IP address belongs to.\nThis is required for network endpoints of type GCE_VM_IP_PORT.\nThe instance must be in the same zone of network endpoint group.","description_kind":"plain","required":true},"ip_address":{"type":"string","description":"IPv4 address of network endpoint. The IP address must belong\nto a VM in GCE (either the primary IP or as part of an aliased IP\nrange).","description_kind":"plain","required":true},"network_endpoint_group":{"type":"string","description":"The network endpoint group this endpoint is part of.","description_kind":"plain","required":true},"port":{"type":"number","description":"Port number of network endpoint.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"Zone where the containing network endpoint group is located.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_network_endpoint_group":{"version":0,"block":{"attributes":{"default_port":{"type":"number","description":"The default port used if the port number is not specified in the\nnetwork endpoint.","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"The network to which all network endpoints in the NEG belong.\nUses \"default\" project network if unspecified.","description_kind":"plain","required":true},"network_endpoint_type":{"type":"string","description":"Type of network endpoints in this network endpoint group. Default value: \"GCE_VM_IP_PORT\" Possible values: [\"GCE_VM_IP_PORT\"]","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description":"Number of network endpoints in the network endpoint group.","description_kind":"plain","computed":true},"subnetwork":{"type":"string","description":"Optional subnetwork to which all network endpoints in the NEG belong.","description_kind":"plain","optional":true},"zone":{"type":"string","description":"Zone where the network endpoint group is located.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_network_peering":{"version":0,"block":{"attributes":{"export_custom_routes":{"type":"bool","description":"Whether to export the custom routes to the peer network. Defaults to false.","description_kind":"plain","optional":true},"export_subnet_routes_with_public_ip":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"import_custom_routes":{"type":"bool","description":"Whether to export the custom routes from the peer network. Defaults to false.","description_kind":"plain","optional":true},"import_subnet_routes_with_public_ip":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the peering.","description_kind":"plain","required":true},"network":{"type":"string","description":"The primary network of the peering.","description_kind":"plain","required":true},"peer_network":{"type":"string","description":"The peer network in the peering. The peer network may belong to a different project.","description_kind":"plain","required":true},"state":{"type":"string","description":"State for the peering, either ACTIVE or INACTIVE. The peering is ACTIVE when there's a matching configuration in the peer network.","description_kind":"plain","computed":true},"state_details":{"type":"string","description":"Details about the current state of the peering.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_network_peering_routes_config":{"version":0,"block":{"attributes":{"export_custom_routes":{"type":"bool","description":"Whether to export the custom routes to the peer network.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"import_custom_routes":{"type":"bool","description":"Whether to import the custom routes to the peer network.","description_kind":"plain","required":true},"network":{"type":"string","description":"The name of the primary network for the peering.","description_kind":"plain","required":true},"peering":{"type":"string","description":"Name of the peering.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_node_group":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional textual description of the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"initial_size":{"type":"number","description":"The initial number of nodes in the node group. One of 'initial_size' or 'size' must be specified.","description_kind":"plain","optional":true},"maintenance_policy":{"type":"string","description":"Specifies how to handle instances when a node in the group undergoes maintenance. Set to one of: DEFAULT, RESTART_IN_PLACE, or MIGRATE_WITHIN_NODE_GROUP. The default value is DEFAULT.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the resource.","description_kind":"plain","optional":true},"node_template":{"type":"string","description":"The URL of the node template to which this node group belongs.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description":"The total number of nodes in the node group. One of 'initial_size' or 'size' must be specified.","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"Zone where this node group is located","description_kind":"plain","optional":true,"computed":true}},"block_types":{"autoscaling_policy":{"nesting_mode":"list","block":{"attributes":{"max_nodes":{"type":"number","description":"Maximum size of the node group. Set to a value less than or equal\nto 100 and greater than or equal to min-nodes.","description_kind":"plain","optional":true,"computed":true},"min_nodes":{"type":"number","description":"Minimum size of the node group. Must be less\nthan or equal to max-nodes. The default value is 0.","description_kind":"plain","optional":true,"computed":true},"mode":{"type":"string","description":"The autoscaling mode. Set to one of the following:\n - OFF: Disables the autoscaler.\n - ON: Enables scaling in and scaling out.\n - ONLY_SCALE_OUT: Enables only scaling out.\n You must use this mode if your node groups are configured to\n restart their hosted VMs on minimal servers. Possible values: [\"OFF\", \"ON\", \"ONLY_SCALE_OUT\"]","description_kind":"plain","optional":true,"computed":true}},"description":"If you use sole-tenant nodes for your workloads, you can use the node\ngroup autoscaler to automatically manage the sizes of your node groups.","description_kind":"plain"},"max_items":1},"maintenance_window":{"nesting_mode":"list","block":{"attributes":{"start_time":{"type":"string","description":"instances.start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid.","description_kind":"plain","required":true}},"description":"contains properties for the timeframe of maintenance","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_node_template":{"version":0,"block":{"attributes":{"cpu_overcommit_type":{"type":"string","description":"CPU overcommit. Default value: \"NONE\" Possible values: [\"ENABLED\", \"NONE\"]","description_kind":"plain","optional":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional textual description of the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource.","description_kind":"plain","optional":true},"node_affinity_labels":{"type":["map","string"],"description":"Labels to use for node affinity, which will be used in\ninstance scheduling.","description_kind":"plain","optional":true},"node_type":{"type":"string","description":"Node type to use for nodes group that are created from this template.\nOnly one of nodeTypeFlexibility and nodeType can be specified.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region where nodes using the node template will be created.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"node_type_flexibility":{"nesting_mode":"list","block":{"attributes":{"cpus":{"type":"string","description":"Number of virtual CPUs to use.","description_kind":"plain","optional":true},"local_ssd":{"type":"string","description":"Use local SSD","description_kind":"plain","computed":true},"memory":{"type":"string","description":"Physical memory available to the node, defined in MB.","description_kind":"plain","optional":true}},"description":"Flexible properties for the desired node type. Node groups that\nuse this node template will create nodes of a type that matches\nthese properties. Only one of nodeTypeFlexibility and nodeType can\nbe specified.","description_kind":"plain"},"max_items":1},"server_binding":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description":"Type of server binding policy. If 'RESTART_NODE_ON_ANY_SERVER',\nnodes using this template will restart on any physical server\nfollowing a maintenance event.\n\nIf 'RESTART_NODE_ON_MINIMAL_SERVER', nodes using this template\nwill restart on the same physical server following a maintenance\nevent, instead of being live migrated to or restarted on a new\nphysical server. This option may be useful if you are using\nsoftware licenses tied to the underlying server characteristics\nsuch as physical sockets or cores, to avoid the need for\nadditional licenses when maintenance occurs. However, VMs on such\nnodes will experience outages while maintenance is applied. Possible values: [\"RESTART_NODE_ON_ANY_SERVER\", \"RESTART_NODE_ON_MINIMAL_SERVERS\"]","description_kind":"plain","required":true}},"description":"The server binding policy for nodes using this template. Determines\nwhere the nodes should restart following a maintenance event.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_packet_mirroring":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A human-readable description of the rule.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the packet mirroring rule","description_kind":"plain","required":true},"priority":{"type":"number","description":"Since only one rule can be active at a time, priority is\nused to break ties in the case of two rules that apply to\nthe same instances.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The Region in which the created address should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"collector_ilb":{"nesting_mode":"list","block":{"attributes":{"url":{"type":"string","description":"The URL of the forwarding rule.","description_kind":"plain","required":true}},"description":"The Forwarding Rule resource (of type load_balancing_scheme=INTERNAL)\nthat will be used as collector for mirrored traffic. The\nspecified forwarding rule must have is_mirroring_collector\nset to true.","description_kind":"plain"},"min_items":1,"max_items":1},"filter":{"nesting_mode":"list","block":{"attributes":{"cidr_ranges":{"type":["list","string"],"description":"IP CIDR ranges that apply as a filter on the source (ingress) or\ndestination (egress) IP in the IP header. Only IPv4 is supported.","description_kind":"plain","optional":true},"direction":{"type":"string","description":"Direction of traffic to mirror. Default value: \"BOTH\" Possible values: [\"INGRESS\", \"EGRESS\", \"BOTH\"]","description_kind":"plain","optional":true},"ip_protocols":{"type":["list","string"],"description":"Protocols that apply as a filter on mirrored traffic. Possible values: [\"tcp\", \"udp\", \"icmp\"]","description_kind":"plain","optional":true}},"description":"A filter for mirrored traffic. If unset, all traffic is mirrored.","description_kind":"plain"},"max_items":1},"mirrored_resources":{"nesting_mode":"list","block":{"attributes":{"tags":{"type":["list","string"],"description":"All instances with these tags will be mirrored.","description_kind":"plain","optional":true}},"block_types":{"instances":{"nesting_mode":"list","block":{"attributes":{"url":{"type":"string","description":"The URL of the instances where this rule should be active.","description_kind":"plain","required":true}},"description":"All the listed instances will be mirrored. Specify at most 50.","description_kind":"plain"}},"subnetworks":{"nesting_mode":"list","block":{"attributes":{"url":{"type":"string","description":"The URL of the subnetwork where this rule should be active.","description_kind":"plain","required":true}},"description":"All instances in one of these subnetworks will be mirrored.","description_kind":"plain"}}},"description":"A means of specifying which resources to mirror.","description_kind":"plain"},"min_items":1,"max_items":1},"network":{"nesting_mode":"list","block":{"attributes":{"url":{"type":"string","description":"The full self_link URL of the network where this rule is active.","description_kind":"plain","required":true}},"description":"Specifies the mirrored VPC network. Only packets in this network\nwill be mirrored. All mirrored VMs should have a NIC in the given\nnetwork. All mirrored subnetworks should belong to the given network.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_per_instance_config":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_group_manager":{"type":"string","description":"The instance group manager this instance config is part of.","description_kind":"plain","required":true},"minimal_action":{"type":"string","description_kind":"plain","optional":true},"most_disruptive_allowed_action":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name for this per-instance config and its corresponding instance.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"remove_instance_state_on_destroy":{"type":"bool","description_kind":"plain","optional":true},"zone":{"type":"string","description":"Zone where the containing instance group manager is located","description_kind":"plain","optional":true}},"block_types":{"preserved_state":{"nesting_mode":"list","block":{"attributes":{"metadata":{"type":["map","string"],"description":"Preserved metadata defined for this instance. This is a list of key-\u003evalue pairs.","description_kind":"plain","optional":true}},"block_types":{"disk":{"nesting_mode":"set","block":{"attributes":{"delete_rule":{"type":"string","description":"A value that prescribes what should happen to the stateful disk when the VM instance is deleted.\nThe available options are 'NEVER' and 'ON_PERMANENT_INSTANCE_DELETION'.\n'NEVER' - detach the disk when the VM is deleted, but do not delete the disk.\n'ON_PERMANENT_INSTANCE_DELETION' will delete the stateful disk when the VM is permanently\ndeleted from the instance group. Default value: \"NEVER\" Possible values: [\"NEVER\", \"ON_PERMANENT_INSTANCE_DELETION\"]","description_kind":"plain","optional":true},"device_name":{"type":"string","description":"A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance.","description_kind":"plain","required":true},"mode":{"type":"string","description":"The mode of the disk. Default value: \"READ_WRITE\" Possible values: [\"READ_ONLY\", \"READ_WRITE\"]","description_kind":"plain","optional":true},"source":{"type":"string","description":"The URI of an existing persistent disk to attach under the specified device-name in the format\n'projects/project-id/zones/zone/disks/disk-name'.","description_kind":"plain","required":true}},"description":"Stateful disks for the instance.","description_kind":"plain"}}},"description":"The preserved state for this instance.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_project_default_network_tier":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"network_tier":{"type":"string","description":"The default network tier to be configured for the project. This field can take the following values: PREMIUM or STANDARD.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_project_metadata":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":["map","string"],"description":"A series of key value pairs.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_project_metadata_item":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description":"The metadata key to set.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"value":{"type":"string","description":"The value to set for the given metadata key.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_autoscaler":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. The name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"URL of the region where the instance group resides.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"target":{"type":"string","description":"URL of the managed instance group that this autoscaler will scale.","description_kind":"plain","required":true}},"block_types":{"autoscaling_policy":{"nesting_mode":"list","block":{"attributes":{"cooldown_period":{"type":"number","description":"The number of seconds that the autoscaler should wait before it\nstarts collecting information from a new instance. This prevents\nthe autoscaler from collecting information when the instance is\ninitializing, during which the collected usage would not be\nreliable. The default time autoscaler waits is 60 seconds.\n\nVirtual machine initialization times might vary because of\nnumerous factors. We recommend that you test how long an\ninstance may take to initialize. To do this, create an instance\nand time the startup process.","description_kind":"plain","optional":true},"max_replicas":{"type":"number","description":"The maximum number of instances that the autoscaler can scale up\nto. This is required when creating or updating an autoscaler. The\nmaximum number of replicas should not be lower than minimal number\nof replicas.","description_kind":"plain","required":true},"min_replicas":{"type":"number","description":"The minimum number of replicas that the autoscaler can scale down\nto. This cannot be less than 0. If not provided, autoscaler will\nchoose a default value depending on maximum number of instances\nallowed.","description_kind":"plain","required":true},"mode":{"type":"string","description":"Defines operating mode for this policy. Default value: \"ON\" Possible values: [\"OFF\", \"ONLY_UP\", \"ON\"]","description_kind":"plain","optional":true}},"block_types":{"cpu_utilization":{"nesting_mode":"list","block":{"attributes":{"predictive_method":{"type":"string","description":"Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are:\n\n- NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics.\n\n- OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.","description_kind":"plain","optional":true},"target":{"type":"number","description":"The target CPU utilization that the autoscaler should maintain.\nMust be a float value in the range (0, 1]. If not specified, the\ndefault is 0.6.\n\nIf the CPU level is below the target utilization, the autoscaler\nscales down the number of instances until it reaches the minimum\nnumber of instances you specified or until the average CPU of\nyour instances reaches the target utilization.\n\nIf the average CPU is above the target utilization, the autoscaler\nscales up until it reaches the maximum number of instances you\nspecified or until the average utilization reaches the target\nutilization.","description_kind":"plain","required":true}},"description":"Defines the CPU utilization policy that allows the autoscaler to\nscale based on the average CPU utilization of a managed instance\ngroup.","description_kind":"plain"},"max_items":1},"load_balancing_utilization":{"nesting_mode":"list","block":{"attributes":{"target":{"type":"number","description":"Fraction of backend capacity utilization (set in HTTP(s) load\nbalancing configuration) that autoscaler should maintain. Must\nbe a positive float value. If not defined, the default is 0.8.","description_kind":"plain","required":true}},"description":"Configuration parameters of autoscaling based on a load balancer.","description_kind":"plain"},"max_items":1},"metric":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"The identifier (type) of the Stackdriver Monitoring metric.\nThe metric cannot have negative values.\n\nThe metric must have a value type of INT64 or DOUBLE.","description_kind":"plain","required":true},"target":{"type":"number","description":"The target value of the metric that autoscaler should\nmaintain. This must be a positive value. A utilization\nmetric scales number of virtual machines handling requests\nto increase or decrease proportionally to the metric.\n\nFor example, a good metric to use as a utilizationTarget is\nwww.googleapis.com/compute/instance/network/received_bytes_count.\nThe autoscaler will work to keep this value constant for each\nof the instances.","description_kind":"plain","optional":true},"type":{"type":"string","description":"Defines how target utilization value is expressed for a\nStackdriver Monitoring metric. Possible values: [\"GAUGE\", \"DELTA_PER_SECOND\", \"DELTA_PER_MINUTE\"]","description_kind":"plain","optional":true}},"description":"Configuration parameters of autoscaling based on a custom metric.","description_kind":"plain"}},"scale_in_control":{"nesting_mode":"list","block":{"attributes":{"time_window_sec":{"type":"number","description":"How long back autoscaling should look when computing recommendations\nto include directives regarding slower scale down, as described above.","description_kind":"plain","optional":true}},"block_types":{"max_scaled_in_replicas":{"nesting_mode":"list","block":{"attributes":{"fixed":{"type":"number","description":"Specifies a fixed number of VM instances. This must be a positive\ninteger.","description_kind":"plain","optional":true},"percent":{"type":"number","description":"Specifies a percentage of instances between 0 to 100%, inclusive.\nFor example, specify 80 for 80%.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1}},"description":"Defines scale in controls to reduce the risk of response latency\nand outages due to abrupt scale-in events","description_kind":"plain"},"max_items":1},"scaling_schedules":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"A description of a scaling schedule.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"A boolean value that specifies if a scaling schedule can influence autoscaler recommendations. If set to true, then a scaling schedule has no effect.","description_kind":"plain","optional":true},"duration_sec":{"type":"number","description":"The duration of time intervals (in seconds) for which this scaling schedule will be running. The minimum allowed value is 300.","description_kind":"plain","required":true},"min_required_replicas":{"type":"number","description":"Minimum number of VM instances that autoscaler will recommend in time intervals starting according to schedule.","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"schedule":{"type":"string","description":"The start timestamps of time intervals when this scaling schedule should provide a scaling signal. This field uses the extended cron format (with an optional year field).","description_kind":"plain","required":true},"time_zone":{"type":"string","description":"The time zone to be used when interpreting the schedule. The value of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database.","description_kind":"plain","optional":true}},"description":"Scaling schedules defined for an autoscaler. Multiple schedules can be set on an autoscaler and they can overlap.","description_kind":"plain"}}},"description":"The configuration parameters for the autoscaling algorithm. You can\ndefine one or more of the policies for an autoscaler: cpuUtilization,\ncustomMetricUtilizations, and loadBalancingUtilization.\n\nIf none of these are specified, the default will be to autoscale based\non cpuUtilization to 0.6 or 60%.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_backend_service":{"version":1,"block":{"attributes":{"affinity_cookie_ttl_sec":{"type":"number","description":"Lifetime of cookies in seconds if session_affinity is\nGENERATED_COOKIE. If set to 0, the cookie is non-persistent and lasts\nonly until the end of the browser session (or equivalent). The\nmaximum allowed value for TTL is one day.\n\nWhen the load balancing scheme is INTERNAL, this field is not used.","description_kind":"plain","optional":true},"connection_draining_timeout_sec":{"type":"number","description":"Time for which instance will be drained (not accept new\nconnections, but still work to finish started).","description_kind":"plain","optional":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"enable_cdn":{"type":"bool","description":"If true, enable Cloud CDN for this RegionBackendService.","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource. A hash of the contents stored in this\nobject. This field is used in optimistic locking.","description_kind":"plain","computed":true},"health_checks":{"type":["set","string"],"description":"The set of URLs to HealthCheck resources for health checking\nthis RegionBackendService. Currently at most one health\ncheck can be specified.\n\nA health check must be specified unless the backend service uses an internet\nor serverless NEG as a backend.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"load_balancing_scheme":{"type":"string","description":"Indicates what kind of load balancing this regional backend service\nwill be used for. A backend service created for one type of load\nbalancing cannot be used with the other(s). Default value: \"INTERNAL\" Possible values: [\"EXTERNAL\", \"INTERNAL\", \"INTERNAL_MANAGED\"]","description_kind":"plain","optional":true},"locality_lb_policy":{"type":"string","description":"The load balancing algorithm used within the scope of the locality.\nThe possible values are -\n\n* ROUND_ROBIN - This is a simple policy in which each healthy backend\n is selected in round robin order.\n\n* LEAST_REQUEST - An O(1) algorithm which selects two random healthy\n hosts and picks the host which has fewer active requests.\n\n* RING_HASH - The ring/modulo hash load balancer implements consistent\n hashing to backends. The algorithm has the property that the\n addition/removal of a host from a set of N hosts only affects\n 1/N of the requests.\n\n* RANDOM - The load balancer selects a random healthy host.\n\n* ORIGINAL_DESTINATION - Backend host is selected based on the client\n connection metadata, i.e., connections are opened\n to the same address as the destination address of\n the incoming connection before the connection\n was redirected to the load balancer.\n\n* MAGLEV - used as a drop in replacement for the ring hash load balancer.\n Maglev is not as stable as ring hash but has faster table lookup\n build times and host selection times. For more information about\n Maglev, refer to https://ai.google/research/pubs/pub44824\n\nThis field is applicable only when the 'load_balancing_scheme' is set to\nINTERNAL_MANAGED and the 'protocol' is set to HTTP, HTTPS, or HTTP2. Possible values: [\"ROUND_ROBIN\", \"LEAST_REQUEST\", \"RING_HASH\", \"RANDOM\", \"ORIGINAL_DESTINATION\", \"MAGLEV\"]","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"The URL of the network to which this backend service belongs.\nThis field can only be specified when the load balancing scheme is set to INTERNAL.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"A named port on a backend instance group representing the port for\ncommunication to the backend VMs in that group. Required when the\nloadBalancingScheme is EXTERNAL, INTERNAL_MANAGED, or INTERNAL_SELF_MANAGED\nand the backends are instance groups. The named port must be defined on each\nbackend instance group. This parameter has no meaning if the backends are NEGs. API sets a\ndefault of \"http\" if not given.\nMust be omitted when the loadBalancingScheme is INTERNAL (Internal TCP/UDP Load Balancing).","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description":"The protocol this RegionBackendService uses to communicate with backends.\nThe default is HTTP. **NOTE**: HTTP2 is only valid for beta HTTP/2 load balancer\ntypes and may result in errors if used with the GA API. Possible values: [\"HTTP\", \"HTTPS\", \"HTTP2\", \"SSL\", \"TCP\", \"UDP\", \"GRPC\", \"UNSPECIFIED\"]","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The Region in which the created backend service should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"session_affinity":{"type":"string","description":"Type of session affinity to use. The default is NONE. Session affinity is\nnot applicable if the protocol is UDP. Possible values: [\"NONE\", \"CLIENT_IP\", \"CLIENT_IP_PORT_PROTO\", \"CLIENT_IP_PROTO\", \"GENERATED_COOKIE\", \"HEADER_FIELD\", \"HTTP_COOKIE\", \"CLIENT_IP_NO_DESTINATION\"]","description_kind":"plain","optional":true,"computed":true},"timeout_sec":{"type":"number","description":"How many seconds to wait for the backend before considering it a\nfailed request. Default is 30 seconds. Valid range is [1, 86400].","description_kind":"plain","optional":true,"computed":true}},"block_types":{"backend":{"nesting_mode":"set","block":{"attributes":{"balancing_mode":{"type":"string","description":"Specifies the balancing mode for this backend. Default value: \"CONNECTION\" Possible values: [\"UTILIZATION\", \"RATE\", \"CONNECTION\"]","description_kind":"plain","optional":true},"capacity_scaler":{"type":"number","description":"A multiplier applied to the group's maximum servicing capacity\n(based on UTILIZATION, RATE or CONNECTION).\n\n~\u003e**NOTE**: This field cannot be set for\nINTERNAL region backend services (default loadBalancingScheme),\nbut is required for non-INTERNAL backend service. The total\ncapacity_scaler for all backends must be non-zero.\n\nA setting of 0 means the group is completely drained, offering\n0% of its available Capacity. Valid range is [0.0,1.0].","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource.\nProvide this property when you create the resource.","description_kind":"plain","optional":true},"failover":{"type":"bool","description":"This field designates whether this is a failover backend. More\nthan one failover backend can be configured for a given RegionBackendService.","description_kind":"plain","optional":true,"computed":true},"group":{"type":"string","description":"The fully-qualified URL of an Instance Group or Network Endpoint\nGroup resource. In case of instance group this defines the list\nof instances that serve traffic. Member virtual machine\ninstances from each instance group must live in the same zone as\nthe instance group itself. No two backends in a backend service\nare allowed to use same Instance Group resource.\n\nFor Network Endpoint Groups this defines list of endpoints. All\nendpoints of Network Endpoint Group must be hosted on instances\nlocated in the same zone as the Network Endpoint Group.\n\nBackend services cannot mix Instance Group and\nNetwork Endpoint Group backends.\n\nWhen the 'load_balancing_scheme' is INTERNAL, only instance groups\nare supported.\n\nNote that you must specify an Instance Group or Network Endpoint\nGroup resource using the fully-qualified URL, rather than a\npartial URL.","description_kind":"plain","required":true},"max_connections":{"type":"number","description":"The max number of simultaneous connections for the group. Can\nbe used with either CONNECTION or UTILIZATION balancing modes.\nCannot be set for INTERNAL backend services.\n\nFor CONNECTION mode, either maxConnections or one\nof maxConnectionsPerInstance or maxConnectionsPerEndpoint,\nas appropriate for group type, must be set.","description_kind":"plain","optional":true},"max_connections_per_endpoint":{"type":"number","description":"The max number of simultaneous connections that a single backend\nnetwork endpoint can handle. Cannot be set\nfor INTERNAL backend services.\n\nThis is used to calculate the capacity of the group. Can be\nused in either CONNECTION or UTILIZATION balancing modes. For\nCONNECTION mode, either maxConnections or\nmaxConnectionsPerEndpoint must be set.","description_kind":"plain","optional":true},"max_connections_per_instance":{"type":"number","description":"The max number of simultaneous connections that a single\nbackend instance can handle. Cannot be set for INTERNAL backend\nservices.\n\nThis is used to calculate the capacity of the group.\nCan be used in either CONNECTION or UTILIZATION balancing modes.\nFor CONNECTION mode, either maxConnections or\nmaxConnectionsPerInstance must be set.","description_kind":"plain","optional":true},"max_rate":{"type":"number","description":"The max requests per second (RPS) of the group. Cannot be set\nfor INTERNAL backend services.\n\nCan be used with either RATE or UTILIZATION balancing modes,\nbut required if RATE mode. Either maxRate or one\nof maxRatePerInstance or maxRatePerEndpoint, as appropriate for\ngroup type, must be set.","description_kind":"plain","optional":true},"max_rate_per_endpoint":{"type":"number","description":"The max requests per second (RPS) that a single backend network\nendpoint can handle. This is used to calculate the capacity of\nthe group. Can be used in either balancing mode. For RATE mode,\neither maxRate or maxRatePerEndpoint must be set. Cannot be set\nfor INTERNAL backend services.","description_kind":"plain","optional":true},"max_rate_per_instance":{"type":"number","description":"The max requests per second (RPS) that a single backend\ninstance can handle. This is used to calculate the capacity of\nthe group. Can be used in either balancing mode. For RATE mode,\neither maxRate or maxRatePerInstance must be set. Cannot be set\nfor INTERNAL backend services.","description_kind":"plain","optional":true},"max_utilization":{"type":"number","description":"Used when balancingMode is UTILIZATION. This ratio defines the\nCPU utilization target for the group. Valid range is [0.0, 1.0].\nCannot be set for INTERNAL backend services.","description_kind":"plain","optional":true}},"description":"The set of backends that serve this RegionBackendService.","description_kind":"plain"}},"cdn_policy":{"nesting_mode":"list","block":{"attributes":{"cache_mode":{"type":"string","description":"Specifies the cache setting for all responses from this backend.\nThe possible values are: USE_ORIGIN_HEADERS, FORCE_CACHE_ALL and CACHE_ALL_STATIC Possible values: [\"USE_ORIGIN_HEADERS\", \"FORCE_CACHE_ALL\", \"CACHE_ALL_STATIC\"]","description_kind":"plain","optional":true,"computed":true},"client_ttl":{"type":"number","description":"Specifies the maximum allowed TTL for cached content served by this origin.","description_kind":"plain","optional":true,"computed":true},"default_ttl":{"type":"number","description":"Specifies the default TTL for cached content served by this origin for responses\nthat do not have an existing valid TTL (max-age or s-max-age).","description_kind":"plain","optional":true,"computed":true},"max_ttl":{"type":"number","description":"Specifies the maximum allowed TTL for cached content served by this origin.","description_kind":"plain","optional":true,"computed":true},"negative_caching":{"type":"bool","description":"Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects.","description_kind":"plain","optional":true,"computed":true},"serve_while_stale":{"type":"number","description":"Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache.","description_kind":"plain","optional":true,"computed":true},"signed_url_cache_max_age_sec":{"type":"number","description":"Maximum number of seconds the response to a signed URL request\nwill be considered fresh, defaults to 1hr (3600s). After this\ntime period, the response will be revalidated before\nbeing served.\n\nWhen serving responses to signed URL requests, Cloud CDN will\ninternally behave as though all responses from this backend had a\n\"Cache-Control: public, max-age=[TTL]\" header, regardless of any\nexisting Cache-Control header. The actual headers served in\nresponses will not be altered.","description_kind":"plain","optional":true}},"block_types":{"cache_key_policy":{"nesting_mode":"list","block":{"attributes":{"include_host":{"type":"bool","description":"If true requests to different hosts will be cached separately.","description_kind":"plain","optional":true},"include_protocol":{"type":"bool","description":"If true, http and https requests will be cached separately.","description_kind":"plain","optional":true},"include_query_string":{"type":"bool","description":"If true, include query string parameters in the cache key\naccording to query_string_whitelist and\nquery_string_blacklist. If neither is set, the entire query\nstring will be included.\n\nIf false, the query string will be excluded from the cache\nkey entirely.","description_kind":"plain","optional":true},"query_string_blacklist":{"type":["set","string"],"description":"Names of query string parameters to exclude in cache keys.\n\nAll other parameters will be included. Either specify\nquery_string_whitelist or query_string_blacklist, not both.\n'\u0026' and '=' will be percent encoded and not treated as\ndelimiters.","description_kind":"plain","optional":true},"query_string_whitelist":{"type":["set","string"],"description":"Names of query string parameters to include in cache keys.\n\nAll other parameters will be excluded. Either specify\nquery_string_whitelist or query_string_blacklist, not both.\n'\u0026' and '=' will be percent encoded and not treated as\ndelimiters.","description_kind":"plain","optional":true}},"description":"The CacheKeyPolicy for this CdnPolicy.","description_kind":"plain"},"max_items":1},"negative_caching_policy":{"nesting_mode":"list","block":{"attributes":{"code":{"type":"number","description":"The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 308, 404, 405, 410, 421, 451 and 501\ncan be specified as values, and you cannot specify a status code more than once.","description_kind":"plain","optional":true}},"description":"Sets a cache TTL for the specified HTTP status code. negativeCaching must be enabled to configure negativeCachingPolicy.\nOmitting the policy and leaving negativeCaching enabled will use Cloud CDN's default cache TTLs.","description_kind":"plain"}}},"description":"Cloud CDN configuration for this BackendService.","description_kind":"plain"},"max_items":1},"circuit_breakers":{"nesting_mode":"list","block":{"attributes":{"max_connections":{"type":"number","description":"The maximum number of connections to the backend cluster.\nDefaults to 1024.","description_kind":"plain","optional":true},"max_pending_requests":{"type":"number","description":"The maximum number of pending requests to the backend cluster.\nDefaults to 1024.","description_kind":"plain","optional":true},"max_requests":{"type":"number","description":"The maximum number of parallel requests to the backend cluster.\nDefaults to 1024.","description_kind":"plain","optional":true},"max_requests_per_connection":{"type":"number","description":"Maximum requests for a single backend connection. This parameter\nis respected by both the HTTP/1.1 and HTTP/2 implementations. If\nnot specified, there is no limit. Setting this parameter to 1\nwill effectively disable keep alive.","description_kind":"plain","optional":true},"max_retries":{"type":"number","description":"The maximum number of parallel retries to the backend cluster.\nDefaults to 3.","description_kind":"plain","optional":true}},"description":"Settings controlling the volume of connections to a backend service. This field\nis applicable only when the 'load_balancing_scheme' is set to INTERNAL_MANAGED\nand the 'protocol' is set to HTTP, HTTPS, or HTTP2.","description_kind":"plain"},"max_items":1},"consistent_hash":{"nesting_mode":"list","block":{"attributes":{"http_header_name":{"type":"string","description":"The hash based on the value of the specified header field.\nThis field is applicable if the sessionAffinity is set to HEADER_FIELD.","description_kind":"plain","optional":true},"minimum_ring_size":{"type":"number","description":"The minimum number of virtual nodes to use for the hash ring.\nLarger ring sizes result in more granular load\ndistributions. If the number of hosts in the load balancing pool\nis larger than the ring size, each host will be assigned a single\nvirtual node.\nDefaults to 1024.","description_kind":"plain","optional":true}},"block_types":{"http_cookie":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the cookie.","description_kind":"plain","optional":true},"path":{"type":"string","description":"Path to set for the cookie.","description_kind":"plain","optional":true}},"block_types":{"ttl":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"number","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.","description_kind":"plain","required":true}},"description":"Lifetime of the cookie.","description_kind":"plain"},"max_items":1}},"description":"Hash is based on HTTP Cookie. This field describes a HTTP cookie\nthat will be used as the hash key for the consistent hash load\nbalancer. If the cookie is not present, it will be generated.\nThis field is applicable if the sessionAffinity is set to HTTP_COOKIE.","description_kind":"plain"},"max_items":1}},"description":"Consistent Hash-based load balancing can be used to provide soft session\naffinity based on HTTP headers, cookies or other properties. This load balancing\npolicy is applicable only for HTTP connections. The affinity to a particular\ndestination host will be lost when one or more hosts are added/removed from the\ndestination service. This field specifies parameters that control consistent\nhashing.\nThis field only applies when all of the following are true -\n * 'load_balancing_scheme' is set to INTERNAL_MANAGED\n * 'protocol' is set to HTTP, HTTPS, or HTTP2\n * 'locality_lb_policy' is set to MAGLEV or RING_HASH","description_kind":"plain"},"max_items":1},"failover_policy":{"nesting_mode":"list","block":{"attributes":{"disable_connection_drain_on_failover":{"type":"bool","description":"On failover or failback, this field indicates whether connection drain\nwill be honored. Setting this to true has the following effect: connections\nto the old active pool are not drained. Connections to the new active pool\nuse the timeout of 10 min (currently fixed). Setting to false has the\nfollowing effect: both old and new connections will have a drain timeout\nof 10 min.\nThis can be set to true only if the protocol is TCP.\nThe default is false.","description_kind":"plain","optional":true},"drop_traffic_if_unhealthy":{"type":"bool","description":"This option is used only when no healthy VMs are detected in the primary\nand backup instance groups. When set to true, traffic is dropped. When\nset to false, new connections are sent across all VMs in the primary group.\nThe default is false.","description_kind":"plain","optional":true},"failover_ratio":{"type":"number","description":"The value of the field must be in [0, 1]. If the ratio of the healthy\nVMs in the primary backend is at or below this number, traffic arriving\nat the load-balanced IP will be directed to the failover backend.\nIn case where 'failoverRatio' is not set or all the VMs in the backup\nbackend are unhealthy, the traffic will be directed back to the primary\nbackend in the \"force\" mode, where traffic will be spread to the healthy\nVMs with the best effort, or to all VMs when no VM is healthy.\nThis field is only used with l4 load balancing.","description_kind":"plain","optional":true}},"description":"Policy for failovers.","description_kind":"plain"},"max_items":1},"iap":{"nesting_mode":"list","block":{"attributes":{"oauth2_client_id":{"type":"string","description":"OAuth2 Client ID for IAP","description_kind":"plain","required":true},"oauth2_client_secret":{"type":"string","description":"OAuth2 Client Secret for IAP","description_kind":"plain","required":true,"sensitive":true},"oauth2_client_secret_sha256":{"type":"string","description":"OAuth2 Client Secret SHA-256 for IAP","description_kind":"plain","computed":true,"sensitive":true}},"description":"Settings for enabling Cloud Identity Aware Proxy","description_kind":"plain"},"max_items":1},"log_config":{"nesting_mode":"list","block":{"attributes":{"enable":{"type":"bool","description":"Whether to enable logging for the load balancer traffic served by this backend service.","description_kind":"plain","optional":true},"sample_rate":{"type":"number","description":"This field can only be specified if logging is enabled for this backend service. The value of\nthe field must be in [0, 1]. This configures the sampling rate of requests to the load balancer\nwhere 1.0 means all logged requests are reported and 0.0 means no logged requests are reported.\nThe default value is 1.0.","description_kind":"plain","optional":true}},"description":"This field denotes the logging options for the load balancer traffic served by this backend service.\nIf logging is enabled, logs will be exported to Stackdriver.","description_kind":"plain"},"max_items":1},"outlier_detection":{"nesting_mode":"list","block":{"attributes":{"consecutive_errors":{"type":"number","description":"Number of errors before a host is ejected from the connection pool. When the\nbackend host is accessed over HTTP, a 5xx return code qualifies as an error.\nDefaults to 5.","description_kind":"plain","optional":true},"consecutive_gateway_failure":{"type":"number","description":"The number of consecutive gateway failures (502, 503, 504 status or connection\nerrors that are mapped to one of those status codes) before a consecutive\ngateway failure ejection occurs. Defaults to 5.","description_kind":"plain","optional":true},"enforcing_consecutive_errors":{"type":"number","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through consecutive 5xx. This setting can be used to disable\nejection or to ramp it up slowly. Defaults to 100.","description_kind":"plain","optional":true},"enforcing_consecutive_gateway_failure":{"type":"number","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through consecutive gateway failures. This setting can be\nused to disable ejection or to ramp it up slowly. Defaults to 0.","description_kind":"plain","optional":true},"enforcing_success_rate":{"type":"number","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through success rate statistics. This setting can be used to\ndisable ejection or to ramp it up slowly. Defaults to 100.","description_kind":"plain","optional":true},"max_ejection_percent":{"type":"number","description":"Maximum percentage of hosts in the load balancing pool for the backend service\nthat can be ejected. Defaults to 10%.","description_kind":"plain","optional":true},"success_rate_minimum_hosts":{"type":"number","description":"The number of hosts in a cluster that must have enough request volume to detect\nsuccess rate outliers. If the number of hosts is less than this setting, outlier\ndetection via success rate statistics is not performed for any host in the\ncluster. Defaults to 5.","description_kind":"plain","optional":true},"success_rate_request_volume":{"type":"number","description":"The minimum number of total requests that must be collected in one interval (as\ndefined by the interval duration above) to include this host in success rate\nbased outlier detection. If the volume is lower than this setting, outlier\ndetection via success rate statistics is not performed for that host. Defaults\nto 100.","description_kind":"plain","optional":true},"success_rate_stdev_factor":{"type":"number","description":"This factor is used to determine the ejection threshold for success rate outlier\nejection. The ejection threshold is the difference between the mean success\nrate, and the product of this factor and the standard deviation of the mean\nsuccess rate: mean - (stdev * success_rate_stdev_factor). This factor is divided\nby a thousand to get a double. That is, if the desired factor is 1.9, the\nruntime value should be 1900. Defaults to 1900.","description_kind":"plain","optional":true}},"block_types":{"base_ejection_time":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"number","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"The base time that a host is ejected for. The real time is equal to the base\ntime multiplied by the number of times the host has been ejected. Defaults to\n30000ms or 30s.","description_kind":"plain"},"max_items":1},"interval":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"number","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Time interval between ejection sweep analysis. This can result in both new\nejections as well as hosts being returned to service. Defaults to 10 seconds.","description_kind":"plain"},"max_items":1}},"description":"Settings controlling eviction of unhealthy hosts from the load balancing pool.\nThis field is applicable only when the 'load_balancing_scheme' is set\nto INTERNAL_MANAGED and the 'protocol' is set to HTTP, HTTPS, or HTTP2.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_disk":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label_fingerprint":{"type":"string","description":"The fingerprint used for optimistic locking of this resource. Used\ninternally during updates.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Labels to apply to this disk. A list of key-\u003evalue pairs.","description_kind":"plain","optional":true},"last_attach_timestamp":{"type":"string","description":"Last attach timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"last_detach_timestamp":{"type":"string","description":"Last detach timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"physical_block_size_bytes":{"type":"number","description":"Physical block size of the persistent disk, in bytes. If not present\nin a request, a default value is used. Currently supported sizes\nare 4096 and 16384, other sizes may be added in the future.\nIf an unsupported value is requested, the error message will list\nthe supported values for the caller's project.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"A reference to the region where the disk resides.","description_kind":"plain","optional":true,"computed":true},"replica_zones":{"type":["list","string"],"description":"URLs of the zones where the disk should be replicated to.","description_kind":"plain","required":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description":"Size of the persistent disk, specified in GB. You can specify this\nfield when creating a persistent disk using the sourceImage or\nsourceSnapshot parameter, or specify it alone to create an empty\npersistent disk.\n\nIf you specify this field along with sourceImage or sourceSnapshot,\nthe value of sizeGb must not be less than the size of the sourceImage\nor the size of the snapshot.","description_kind":"plain","optional":true,"computed":true},"snapshot":{"type":"string","description":"The source snapshot used to create this disk. You can provide this as\na partial or full URL to the resource. For example, the following are\nvalid values:\n\n* 'https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot'\n* 'projects/project/global/snapshots/snapshot'\n* 'global/snapshots/snapshot'\n* 'snapshot'","description_kind":"plain","optional":true},"source_snapshot_id":{"type":"string","description":"The unique ID of the snapshot used to create this disk. This value\nidentifies the exact snapshot that was used to create this persistent\ndisk. For example, if you created the persistent disk from a snapshot\nthat was later deleted and recreated under the same name, the source\nsnapshot ID would identify the exact version of the snapshot that was\nused.","description_kind":"plain","computed":true},"type":{"type":"string","description":"URL of the disk type resource describing which disk type to use to\ncreate the disk. Provide this when creating the disk.","description_kind":"plain","optional":true},"users":{"type":["list","string"],"description":"Links to the users of the disk (attached instances) in form:\nproject/zones/zone/instances/instance","description_kind":"plain","computed":true}},"block_types":{"disk_encryption_key":{"nesting_mode":"list","block":{"attributes":{"raw_key":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.","description_kind":"plain","optional":true,"sensitive":true},"sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.","description_kind":"plain","computed":true}},"description":"Encrypts the disk using a customer-supplied encryption key.\n\nAfter you encrypt a disk with a customer-supplied key, you must\nprovide the same key if you use the disk later (e.g. to create a disk\nsnapshot or an image, or to attach the disk to a virtual machine).\n\nCustomer-supplied encryption keys do not protect access to metadata of\nthe disk.\n\nIf you do not provide an encryption key when creating the disk, then\nthe disk will be encrypted using an automatically generated key and\nyou do not need to provide a key to use the disk later.","description_kind":"plain"},"max_items":1},"source_snapshot_encryption_key":{"nesting_mode":"list","block":{"attributes":{"raw_key":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.","description_kind":"plain","optional":true},"sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.","description_kind":"plain","computed":true}},"description":"The customer-supplied encryption key of the source snapshot. Required\nif the source snapshot is protected by a customer-supplied encryption\nkey.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_disk_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_compute_region_disk_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_compute_region_disk_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_compute_region_disk_resource_policy_attachment":{"version":0,"block":{"attributes":{"disk":{"type":"string","description":"The name of the regional disk in which the resource policies are attached to.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource policy to be attached to the disk for scheduling snapshot\ncreation. Do not specify the self link.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"A reference to the region where the disk resides.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_health_check":{"version":0,"block":{"attributes":{"check_interval_sec":{"type":"number","description":"How often (in seconds) to send a health check. The default value is 5\nseconds.","description_kind":"plain","optional":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"healthy_threshold":{"type":"number","description":"A so-far unhealthy instance will be marked healthy after this many\nconsecutive successes. The default value is 2.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the\nlast character, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The Region in which the created health check should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"timeout_sec":{"type":"number","description":"How long (in seconds) to wait before claiming failure.\nThe default value is 5 seconds. It is invalid for timeoutSec to have\ngreater value than checkIntervalSec.","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of the health check. One of HTTP, HTTP2, HTTPS, TCP, or SSL.","description_kind":"plain","computed":true},"unhealthy_threshold":{"type":"number","description":"A so-far healthy instance will be marked unhealthy after this many\nconsecutive failures. The default value is 2.","description_kind":"plain","optional":true}},"block_types":{"grpc_health_check":{"nesting_mode":"list","block":{"attributes":{"grpc_service_name":{"type":"string","description":"The gRPC service name for the health check.\nThe value of grpcServiceName has the following meanings by convention:\n\n* Empty serviceName means the overall status of all services at the backend.\n* Non-empty serviceName means the health of that gRPC service, as defined by the owner of the service.\n\nThe grpcServiceName can only be ASCII.","description_kind":"plain","optional":true},"port":{"type":"number","description":"The port number for the health check request.\nMust be specified if portName and portSpecification are not set\nor if port_specification is USE_FIXED_PORT. Valid values are 1 through 65535.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, gRPC health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"http2_health_check":{"nesting_mode":"list","block":{"attributes":{"host":{"type":"string","description":"The value of the host header in the HTTP2 health check request.\nIf left empty (default value), the public IP on behalf of which this health\ncheck is performed will be used.","description_kind":"plain","optional":true},"port":{"type":"number","description":"The TCP port number for the HTTP2 health check request.\nThe default value is 443.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, HTTP2 health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"request_path":{"type":"string","description":"The request path of the HTTP2 health check request.\nThe default value is /.","description_kind":"plain","optional":true},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"http_health_check":{"nesting_mode":"list","block":{"attributes":{"host":{"type":"string","description":"The value of the host header in the HTTP health check request.\nIf left empty (default value), the public IP on behalf of which this health\ncheck is performed will be used.","description_kind":"plain","optional":true},"port":{"type":"number","description":"The TCP port number for the HTTP health check request.\nThe default value is 80.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, HTTP health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"request_path":{"type":"string","description":"The request path of the HTTP health check request.\nThe default value is /.","description_kind":"plain","optional":true},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"https_health_check":{"nesting_mode":"list","block":{"attributes":{"host":{"type":"string","description":"The value of the host header in the HTTPS health check request.\nIf left empty (default value), the public IP on behalf of which this health\ncheck is performed will be used.","description_kind":"plain","optional":true},"port":{"type":"number","description":"The TCP port number for the HTTPS health check request.\nThe default value is 443.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, HTTPS health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"request_path":{"type":"string","description":"The request path of the HTTPS health check request.\nThe default value is /.","description_kind":"plain","optional":true},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"log_config":{"nesting_mode":"list","block":{"attributes":{"enable":{"type":"bool","description":"Indicates whether or not to export logs. This is false by default,\nwhich means no health check logging will be done.","description_kind":"plain","optional":true}},"description":"Configure logging on this health check.","description_kind":"plain"},"max_items":1},"ssl_health_check":{"nesting_mode":"list","block":{"attributes":{"port":{"type":"number","description":"The TCP port number for the SSL health check request.\nThe default value is 443.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, SSL health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"request":{"type":"string","description":"The application data to send once the SSL connection has been\nestablished (default value is empty). If both request and response are\nempty, the connection establishment alone will indicate health. The request\ndata can only be ASCII.","description_kind":"plain","optional":true},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"tcp_health_check":{"nesting_mode":"list","block":{"attributes":{"port":{"type":"number","description":"The TCP port number for the TCP health check request.\nThe default value is 80.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, TCP health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"request":{"type":"string","description":"The application data to send once the TCP connection has been\nestablished (default value is empty). If both request and response are\nempty, the connection establishment alone will indicate health. The request\ndata can only be ASCII.","description_kind":"plain","optional":true},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_instance_group_manager":{"version":0,"block":{"attributes":{"base_instance_name":{"type":"string","description":"The base instance name to use for instances in this group. The value must be a valid RFC1035 name. Supported characters are lowercase letters, numbers, and hyphens (-). Instances are named by appending a hyphen and a random four-character string to the base instance name.","description_kind":"plain","required":true},"description":{"type":"string","description":"An optional textual description of the instance group manager.","description_kind":"plain","optional":true},"distribution_policy_target_shape":{"type":"string","description":"The shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType).","description_kind":"plain","optional":true,"computed":true},"distribution_policy_zones":{"type":["set","string"],"description":"The distribution policy for this managed instance group. You can specify one or more values.","description_kind":"plain","optional":true,"computed":true},"fingerprint":{"type":"string","description":"The fingerprint of the instance group manager.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_group":{"type":"string","description":"The full URL of the instance group created by the manager.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the instance group manager. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region where the managed instance group resides.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"The URL of the created resource.","description_kind":"plain","computed":true},"status":{"type":["list",["object",{"is_stable":"bool","stateful":["list",["object",{"has_stateful_config":"bool","per_instance_configs":["list",["object",{"all_effective":"bool"}]]}]],"version_target":["list",["object",{"is_reached":"bool"}]]}]],"description":"The status of this managed instance group.","description_kind":"plain","computed":true},"target_pools":{"type":["set","string"],"description":"The full URL of all target pools to which new instances in the group are added. Updating the target pools attribute does not affect existing instances.","description_kind":"plain","optional":true},"target_size":{"type":"number","description":"The target number of running instances for this managed instance group. This value should always be explicitly set unless this resource is attached to an autoscaler, in which case it should never be set. Defaults to 0.","description_kind":"plain","optional":true,"computed":true},"wait_for_instances":{"type":"bool","description":"Whether to wait for all instances to be created/updated before returning. Note that if this is set to true and the operation does not succeed, Terraform will continue trying until it times out.","description_kind":"plain","optional":true},"wait_for_instances_status":{"type":"string","description":"When used with wait_for_instances specifies the status to wait for. When STABLE is specified this resource will wait until the instances are stable before returning. When UPDATED is set, it will wait for the version target to be reached and any per instance configs to be effective as well as all instances to be stable before returning.","description_kind":"plain","optional":true}},"block_types":{"auto_healing_policies":{"nesting_mode":"list","block":{"attributes":{"health_check":{"type":"string","description":"The health check resource that signals autohealing.","description_kind":"plain","required":true},"initial_delay_sec":{"type":"number","description":"The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. Between 0 and 3600.","description_kind":"plain","required":true}},"description":"The autohealing policies for this managed instance group. You can specify only one value.","description_kind":"plain"},"max_items":1},"named_port":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description":"The name of the port.","description_kind":"plain","required":true},"port":{"type":"number","description":"The port number.","description_kind":"plain","required":true}},"description":"The named port configuration.","description_kind":"plain"}},"stateful_disk":{"nesting_mode":"set","block":{"attributes":{"delete_rule":{"type":"string","description":"A value that prescribes what should happen to the stateful disk when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the disk when the VM is deleted, but do not delete the disk. ON_PERMANENT_INSTANCE_DELETION will delete the stateful disk when the VM is permanently deleted from the instance group. The default is NEVER.","description_kind":"plain","optional":true},"device_name":{"type":"string","description":"The device name of the disk to be attached.","description_kind":"plain","required":true}},"description":"Disks created on the instances that will be preserved on instance delete, update, etc. Structure is documented below. For more information see the official documentation. Proactive cross zone instance redistribution must be disabled before you can update stateful disks on existing instance group managers. This can be controlled via the update_policy.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"update_policy":{"nesting_mode":"list","block":{"attributes":{"instance_redistribution_type":{"type":"string","description":"The instance redistribution policy for regional managed instance groups. Valid values are: \"PROACTIVE\", \"NONE\". If PROACTIVE (default), the group attempts to maintain an even distribution of VM instances across zones in the region. If NONE, proactive redistribution is disabled.","description_kind":"plain","optional":true},"max_surge_fixed":{"type":"number","description":"The maximum number of instances that can be created above the specified targetSize during the update process. Conflicts with max_surge_percent. It has to be either 0 or at least equal to the number of zones. If fixed values are used, at least one of max_unavailable_fixed or max_surge_fixed must be greater than 0.","description_kind":"plain","optional":true,"computed":true},"max_surge_percent":{"type":"number","description":"The maximum number of instances(calculated as percentage) that can be created above the specified targetSize during the update process. Conflicts with max_surge_fixed. Percent value is only allowed for regional managed instance groups with size at least 10.","description_kind":"plain","optional":true},"max_unavailable_fixed":{"type":"number","description":"The maximum number of instances that can be unavailable during the update process. Conflicts with max_unavailable_percent. It has to be either 0 or at least equal to the number of zones. If fixed values are used, at least one of max_unavailable_fixed or max_surge_fixed must be greater than 0.","description_kind":"plain","optional":true,"computed":true},"max_unavailable_percent":{"type":"number","description":"The maximum number of instances(calculated as percentage) that can be unavailable during the update process. Conflicts with max_unavailable_fixed. Percent value is only allowed for regional managed instance groups with size at least 10.","description_kind":"plain","optional":true},"minimal_action":{"type":"string","description":"Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.","description_kind":"plain","required":true},"replacement_method":{"type":"string","description":"The instance replacement method for regional managed instance groups. Valid values are: \"RECREATE\", \"SUBSTITUTE\". If SUBSTITUTE (default), the group replaces VM instances with new instances that have randomly generated names. If RECREATE, instance names are preserved. You must also set max_unavailable_fixed or max_unavailable_percent to be greater than 0.","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).","description_kind":"plain","required":true}},"description":"The update policy for this managed instance group.","description_kind":"plain"},"max_items":1},"version":{"nesting_mode":"list","block":{"attributes":{"instance_template":{"type":"string","description":"The full URL to an instance template from which all new instances of this version will be created.","description_kind":"plain","required":true},"name":{"type":"string","description":"Version name.","description_kind":"plain","optional":true}},"block_types":{"target_size":{"nesting_mode":"list","block":{"attributes":{"fixed":{"type":"number","description":"The number of instances which are managed for this version. Conflicts with percent.","description_kind":"plain","optional":true},"percent":{"type":"number","description":"The number of instances (calculated as percentage) which are managed for this version. Conflicts with fixed. Note that when using percent, rounding will be in favor of explicitly set target_size values; a managed instance group with 2 instances and 2 versions, one of which has a target_size.percent of 60 will create 2 instances of that version.","description_kind":"plain","optional":true}},"description":"The number of instances calculated as a fixed number or a percentage depending on the settings.","description_kind":"plain"},"max_items":1}},"description":"Application versions managed by this instance group. Each version deals with a specific instance template, allowing canary release scenarios.","description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"google_compute_region_network_endpoint_group":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"network_endpoint_type":{"type":"string","description":"Type of network endpoints in this network endpoint group. Defaults to SERVERLESS Default value: \"SERVERLESS\" Possible values: [\"SERVERLESS\"]","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"A reference to the region where the Serverless NEGs Reside.","description_kind":"plain","required":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"app_engine":{"nesting_mode":"list","block":{"attributes":{"service":{"type":"string","description":"Optional serving service.\nThe service name must be 1-63 characters long, and comply with RFC1035.\nExample value: \"default\", \"my-service\".","description_kind":"plain","optional":true},"url_mask":{"type":"string","description":"A template to parse service and version fields from a request URL.\nURL mask allows for routing to multiple App Engine services without\nhaving to create multiple Network Endpoint Groups and backend services.\n\nFor example, the request URLs \"foo1-dot-appname.appspot.com/v1\" and\n\"foo1-dot-appname.appspot.com/v2\" can be backed by the same Serverless NEG with\nURL mask \"-dot-appname.appspot.com/\". The URL mask will parse\nthem to { service = \"foo1\", version = \"v1\" } and { service = \"foo1\", version = \"v2\" } respectively.","description_kind":"plain","optional":true},"version":{"type":"string","description":"Optional serving version.\nThe version must be 1-63 characters long, and comply with RFC1035.\nExample value: \"v1\", \"v2\".","description_kind":"plain","optional":true}},"description":"Only valid when networkEndpointType is \"SERVERLESS\".\nOnly one of cloud_run, app_engine or cloud_function may be set.","description_kind":"plain"},"max_items":1},"cloud_function":{"nesting_mode":"list","block":{"attributes":{"function":{"type":"string","description":"A user-defined name of the Cloud Function.\nThe function name is case-sensitive and must be 1-63 characters long.\nExample value: \"func1\".","description_kind":"plain","optional":true},"url_mask":{"type":"string","description":"A template to parse function field from a request URL. URL mask allows\nfor routing to multiple Cloud Functions without having to create\nmultiple Network Endpoint Groups and backend services.\n\nFor example, request URLs \"mydomain.com/function1\" and \"mydomain.com/function2\"\ncan be backed by the same Serverless NEG with URL mask \"/\". The URL mask\nwill parse them to { function = \"function1\" } and { function = \"function2\" } respectively.","description_kind":"plain","optional":true}},"description":"Only valid when networkEndpointType is \"SERVERLESS\".\nOnly one of cloud_run, app_engine or cloud_function may be set.","description_kind":"plain"},"max_items":1},"cloud_run":{"nesting_mode":"list","block":{"attributes":{"service":{"type":"string","description":"Cloud Run service is the main resource of Cloud Run.\nThe service must be 1-63 characters long, and comply with RFC1035.\nExample value: \"run-service\".","description_kind":"plain","optional":true},"tag":{"type":"string","description":"Cloud Run tag represents the \"named-revision\" to provide\nadditional fine-grained traffic routing information.\nThe tag must be 1-63 characters long, and comply with RFC1035.\nExample value: \"revision-0010\".","description_kind":"plain","optional":true},"url_mask":{"type":"string","description":"A template to parse service and tag fields from a request URL.\nURL mask allows for routing to multiple Run services without having\nto create multiple network endpoint groups and backend services.\n\nFor example, request URLs \"foo1.domain.com/bar1\" and \"foo1.domain.com/bar2\"\nan be backed by the same Serverless Network Endpoint Group (NEG) with\nURL mask \".domain.com/\". The URL mask will parse them to { service=\"bar1\", tag=\"foo1\" }\nand { service=\"bar2\", tag=\"foo2\" } respectively.","description_kind":"plain","optional":true}},"description":"Only valid when networkEndpointType is \"SERVERLESS\".\nOnly one of cloud_run, app_engine or cloud_function may be set.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_per_instance_config":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"minimal_action":{"type":"string","description_kind":"plain","optional":true},"most_disruptive_allowed_action":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name for this per-instance config and its corresponding instance.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region where the containing instance group manager is located","description_kind":"plain","optional":true,"computed":true},"region_instance_group_manager":{"type":"string","description":"The region instance group manager this instance config is part of.","description_kind":"plain","required":true},"remove_instance_state_on_destroy":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"preserved_state":{"nesting_mode":"list","block":{"attributes":{"metadata":{"type":["map","string"],"description":"Preserved metadata defined for this instance. This is a list of key-\u003evalue pairs.","description_kind":"plain","optional":true}},"block_types":{"disk":{"nesting_mode":"set","block":{"attributes":{"delete_rule":{"type":"string","description":"A value that prescribes what should happen to the stateful disk when the VM instance is deleted.\nThe available options are 'NEVER' and 'ON_PERMANENT_INSTANCE_DELETION'.\n'NEVER' - detach the disk when the VM is deleted, but do not delete the disk.\n'ON_PERMANENT_INSTANCE_DELETION' will delete the stateful disk when the VM is permanently\ndeleted from the instance group. Default value: \"NEVER\" Possible values: [\"NEVER\", \"ON_PERMANENT_INSTANCE_DELETION\"]","description_kind":"plain","optional":true},"device_name":{"type":"string","description":"A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance.","description_kind":"plain","required":true},"mode":{"type":"string","description":"The mode of the disk. Default value: \"READ_WRITE\" Possible values: [\"READ_ONLY\", \"READ_WRITE\"]","description_kind":"plain","optional":true},"source":{"type":"string","description":"The URI of an existing persistent disk to attach under the specified device-name in the format\n'projects/project-id/zones/zone/disks/disk-name'.","description_kind":"plain","required":true}},"description":"Stateful disks for the instance.","description_kind":"plain"}}},"description":"The preserved state for this instance.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_ssl_certificate":{"version":0,"block":{"attributes":{"certificate":{"type":"string","description":"The certificate in PEM format.\nThe certificate chain must be no greater than 5 certs long.\nThe chain must include at least one intermediate cert.","description_kind":"plain","required":true,"sensitive":true},"certificate_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.\n\n\nThese are in the same namespace as the managed SSL certificates.","description_kind":"plain","optional":true,"computed":true},"name_prefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with name.","description_kind":"plain","optional":true,"computed":true},"private_key":{"type":"string","description":"The write-only private key in PEM format.","description_kind":"plain","required":true,"sensitive":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The Region in which the created regional ssl certificate should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_target_http_proxy":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"proxy_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The Region in which the created target https proxy should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"url_map":{"type":"string","description":"A reference to the RegionUrlMap resource that defines the mapping from URL\nto the BackendService.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_target_https_proxy":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"proxy_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The Region in which the created target https proxy should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"ssl_certificates":{"type":["list","string"],"description":"A list of RegionSslCertificate resources that are used to authenticate\nconnections between users and the load balancer. Currently, exactly\none SSL certificate must be specified.","description_kind":"plain","required":true},"url_map":{"type":"string","description":"A reference to the RegionUrlMap resource that defines the mapping from URL\nto the RegionBackendService.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_url_map":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"default_service":{"type":"string","description":"The full or partial URL of the defaultService resource to which traffic is directed if\nnone of the hostRules match. If defaultRouteAction is additionally specified, advanced\nrouting actions like URL Rewrites, etc. take effect prior to sending the request to the\nbackend. However, if defaultService is specified, defaultRouteAction cannot contain any\nweightedBackendServices. Conversely, if routeAction specifies any\nweightedBackendServices, service must not be specified. Only one of defaultService,\ndefaultUrlRedirect or defaultRouteAction.weightedBackendService must be set.","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource. This field is used internally during\nupdates of this resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"map_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The Region in which the url map should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"default_url_redirect":{"nesting_mode":"list","block":{"attributes":{"host_redirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one that was\nsupplied in the request. The value must be between 1 and 255 characters.","description_kind":"plain","optional":true},"https_redirect":{"type":"bool","description":"If set to true, the URL scheme in the redirected request is set to https. If set to\nfalse, the URL scheme of the redirected request will remain the same as that of the\nrequest. This must only be set for UrlMaps used in TargetHttpProxys. Setting this\ntrue for TargetHttpsProxy is not permitted. The default is set to false.","description_kind":"plain","optional":true},"path_redirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one that was\nsupplied in the request. pathRedirect cannot be supplied together with\nprefixRedirect. Supply one alone or neither. If neither is supplied, the path of the\noriginal request will be used for the redirect. The value must be between 1 and 1024\ncharacters.","description_kind":"plain","optional":true},"prefix_redirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,\nretaining the remaining portion of the URL before redirecting the request.\nprefixRedirect cannot be supplied together with pathRedirect. Supply one alone or\nneither. If neither is supplied, the path of the original request will be used for\nthe redirect. The value must be between 1 and 1024 characters.","description_kind":"plain","optional":true},"redirect_response_code":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n\n* FOUND, which corresponds to 302.\n\n* SEE_OTHER which corresponds to 303.\n\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method\nwill be retained.\n\n* PERMANENT_REDIRECT, which corresponds to 308. In this case,\nthe request method will be retained. Possible values: [\"FOUND\", \"MOVED_PERMANENTLY_DEFAULT\", \"PERMANENT_REDIRECT\", \"SEE_OTHER\", \"TEMPORARY_REDIRECT\"]","description_kind":"plain","optional":true},"strip_query":{"type":"bool","description":"If set to true, any accompanying query portion of the original URL is removed prior\nto redirecting the request. If set to false, the query portion of the original URL is\nretained.\n This field is required to ensure an empty block is not set. The normal default value is false.","description_kind":"plain","required":true}},"description":"When none of the specified hostRules match, the request is redirected to a URL specified\nby defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or\ndefaultRouteAction must not be set.","description_kind":"plain"},"max_items":1},"host_rule":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"An optional description of this HostRule. Provide this property\nwhen you create the resource.","description_kind":"plain","optional":true},"hosts":{"type":["set","string"],"description":"The list of host patterns to match. They must be valid\nhostnames, except * will match any string of ([a-z0-9-.]*). In\nthat case, * must be the first character and must be followed in\nthe pattern by either - or ..","description_kind":"plain","required":true},"path_matcher":{"type":"string","description":"The name of the PathMatcher to use to match the path portion of\nthe URL if the hostRule matches the URL's host portion.","description_kind":"plain","required":true}},"description":"The list of HostRules to use against the URL.","description_kind":"plain"}},"path_matcher":{"nesting_mode":"list","block":{"attributes":{"default_service":{"type":"string","description":"A reference to a RegionBackendService resource. This will be used if\nnone of the pathRules defined by this PathMatcher is matched by\nthe URL's path portion.","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name to which this PathMatcher is referred by the HostRule.","description_kind":"plain","required":true}},"block_types":{"default_url_redirect":{"nesting_mode":"list","block":{"attributes":{"host_redirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one that was\nsupplied in the request. The value must be between 1 and 255 characters.","description_kind":"plain","optional":true},"https_redirect":{"type":"bool","description":"If set to true, the URL scheme in the redirected request is set to https. If set to\nfalse, the URL scheme of the redirected request will remain the same as that of the\nrequest. This must only be set for UrlMaps used in TargetHttpProxys. Setting this\ntrue for TargetHttpsProxy is not permitted. The default is set to false.","description_kind":"plain","optional":true},"path_redirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one that was\nsupplied in the request. pathRedirect cannot be supplied together with\nprefixRedirect. Supply one alone or neither. If neither is supplied, the path of the\noriginal request will be used for the redirect. The value must be between 1 and 1024\ncharacters.","description_kind":"plain","optional":true},"prefix_redirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,\nretaining the remaining portion of the URL before redirecting the request.\nprefixRedirect cannot be supplied together with pathRedirect. Supply one alone or\nneither. If neither is supplied, the path of the original request will be used for\nthe redirect. The value must be between 1 and 1024 characters.","description_kind":"plain","optional":true},"redirect_response_code":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n\n* FOUND, which corresponds to 302.\n\n* SEE_OTHER which corresponds to 303.\n\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method\nwill be retained.\n\n* PERMANENT_REDIRECT, which corresponds to 308. In this case,\nthe request method will be retained. Possible values: [\"FOUND\", \"MOVED_PERMANENTLY_DEFAULT\", \"PERMANENT_REDIRECT\", \"SEE_OTHER\", \"TEMPORARY_REDIRECT\"]","description_kind":"plain","optional":true},"strip_query":{"type":"bool","description":"If set to true, any accompanying query portion of the original URL is removed prior\nto redirecting the request. If set to false, the query portion of the original URL is\nretained.\n This field is required to ensure an empty block is not set. The normal default value is false.","description_kind":"plain","required":true}},"description":"When none of the specified hostRules match, the request is redirected to a URL specified\nby defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or\ndefaultRouteAction must not be set.","description_kind":"plain"},"max_items":1},"path_rule":{"nesting_mode":"list","block":{"attributes":{"paths":{"type":["set","string"],"description":"The list of path patterns to match. Each must start with / and the only place a\n\\* is allowed is at the end following a /. The string fed to the path matcher\ndoes not include any text after the first ? or #, and those chars are not\nallowed here.","description_kind":"plain","required":true},"service":{"type":"string","description":"The region backend service resource to which traffic is\ndirected if this rule is matched. If routeAction is additionally specified,\nadvanced routing actions like URL Rewrites, etc. take effect prior to sending\nthe request to the backend. However, if service is specified, routeAction cannot\ncontain any weightedBackendService s. Conversely, if routeAction specifies any\nweightedBackendServices, service must not be specified. Only one of urlRedirect,\nservice or routeAction.weightedBackendService must be set.","description_kind":"plain","optional":true}},"block_types":{"route_action":{"nesting_mode":"list","block":{"block_types":{"cors_policy":{"nesting_mode":"list","block":{"attributes":{"allow_credentials":{"type":"bool","description":"In response to a preflight request, setting this to true indicates that the\nactual request can include user credentials. This translates to the Access-\nControl-Allow-Credentials header. Defaults to false.","description_kind":"plain","optional":true},"allow_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Headers header.","description_kind":"plain","optional":true},"allow_methods":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Methods header.","description_kind":"plain","optional":true},"allow_origin_regexes":{"type":["list","string"],"description":"Specifies the regular expression patterns that match allowed origins. For\nregular expression grammar please see en.cppreference.com/w/cpp/regex/ecmascript\nAn origin is allowed if it matches either allow_origins or allow_origin_regex.","description_kind":"plain","optional":true},"allow_origins":{"type":["list","string"],"description":"Specifies the list of origins that will be allowed to do CORS requests. An\norigin is allowed if it matches either allow_origins or allow_origin_regex.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If true, specifies the CORS policy is disabled.","description_kind":"plain","required":true},"expose_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Expose-Headers header.","description_kind":"plain","optional":true},"max_age":{"type":"number","description":"Specifies how long the results of a preflight request can be cached. This\ntranslates to the content for the Access-Control-Max-Age header.","description_kind":"plain","optional":true}},"description":"The specification for allowing client side cross-origin requests. Please see W3C\nRecommendation for Cross Origin Resource Sharing","description_kind":"plain"},"max_items":1},"fault_injection_policy":{"nesting_mode":"list","block":{"block_types":{"abort":{"nesting_mode":"list","block":{"attributes":{"http_status":{"type":"number","description":"The HTTP status code used to abort the request. The value must be between 200\nand 599 inclusive.","description_kind":"plain","required":true},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) which will be\naborted as part of fault injection. The value must be between 0.0 and 100.0\ninclusive.","description_kind":"plain","required":true}},"description":"The specification for how client requests are aborted as part of fault\ninjection.","description_kind":"plain"},"max_items":1},"delay":{"nesting_mode":"list","block":{"attributes":{"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) on which delay will\nbe introduced as part of fault injection. The value must be between 0.0 and\n100.0 inclusive.","description_kind":"plain","required":true}},"block_types":{"fixed_delay":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies the value of the fixed delay interval.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"The specification for how client requests are delayed as part of fault\ninjection, before being sent to a backend service.","description_kind":"plain"},"max_items":1}},"description":"The specification for fault injection introduced into traffic to test the\nresiliency of clients to backend service failure. As part of fault injection,\nwhen clients send requests to a backend service, delays can be introduced by\nLoadbalancer on a percentage of requests before sending those request to the\nbackend service. Similarly requests from clients can be aborted by the\nLoadbalancer for a percentage of requests. timeout and retry_policy will be\nignored by clients that are configured with a fault_injection_policy.","description_kind":"plain"},"max_items":1},"request_mirror_policy":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The RegionBackendService resource being mirrored to.","description_kind":"plain","required":true}},"description":"Specifies the policy on how requests intended for the route's backends are\nshadowed to a separate mirrored backend service. Loadbalancer does not wait for\nresponses from the shadow service. Prior to sending traffic to the shadow\nservice, the host / authority header is suffixed with -shadow.","description_kind":"plain"},"max_items":1},"retry_policy":{"nesting_mode":"list","block":{"attributes":{"num_retries":{"type":"number","description":"Specifies the allowed number retries. This number must be \u003e 0.","description_kind":"plain","optional":true},"retry_conditions":{"type":["list","string"],"description":"Specifies one or more conditions when this retry rule applies. Valid values are:\n\n- 5xx: Loadbalancer will attempt a retry if the backend service responds with\nany 5xx response code, or if the backend service does not respond at all,\nexample: disconnects, reset, read timeout, connection failure, and refused\nstreams.\n- gateway-error: Similar to 5xx, but only applies to response codes\n502, 503 or 504.\n- connect-failure: Loadbalancer will retry on failures\nconnecting to backend services, for example due to connection timeouts.\n- retriable-4xx: Loadbalancer will retry for retriable 4xx response codes.\nCurrently the only retriable error supported is 409.\n- refused-stream: Loadbalancer will retry if the backend service resets the stream with a\nREFUSED_STREAM error code. This reset type indicates that it is safe to retry.\n- cancelled: Loadbalancer will retry if the gRPC status code in the response\nheader is set to cancelled\n- deadline-exceeded: Loadbalancer will retry if the\ngRPC status code in the response header is set to deadline-exceeded\n- resource-exhausted: Loadbalancer will retry if the gRPC status code in the response\nheader is set to resource-exhausted\n- unavailable: Loadbalancer will retry if\nthe gRPC status code in the response header is set to unavailable","description_kind":"plain","optional":true}},"block_types":{"per_try_timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies a non-zero timeout per retry attempt.","description_kind":"plain"},"max_items":1}},"description":"Specifies the retry policy associated with this route.","description_kind":"plain"},"max_items":1},"timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies the timeout for the selected route. Timeout is computed from the time\nthe request is has been fully processed (i.e. end-of-stream) up until the\nresponse has been completely processed. Timeout includes all retries. If not\nspecified, the default value is 15 seconds.","description_kind":"plain"},"max_items":1},"url_rewrite":{"nesting_mode":"list","block":{"attributes":{"host_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected service, the request's host\nheader is replaced with contents of hostRewrite. The value must be between 1 and\n255 characters.","description_kind":"plain","optional":true},"path_prefix_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected backend service, the matching\nportion of the request's path is replaced by pathPrefixRewrite. The value must\nbe between 1 and 1024 characters.","description_kind":"plain","optional":true}},"description":"The spec to modify the URL of the request, prior to forwarding the request to\nthe matched service","description_kind":"plain"},"max_items":1},"weighted_backend_services":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The default RegionBackendService resource. Before\nforwarding the request to backendService, the loadbalancer applies any relevant\nheaderActions specified as part of this backendServiceWeight.","description_kind":"plain","required":true},"weight":{"type":"number","description":"Specifies the fraction of traffic sent to backendService, computed as weight /\n(sum of all weightedBackendService weights in routeAction) . The selection of a\nbackend service is determined only for new traffic. Once a user's request has\nbeen directed to a backendService, subsequent requests will be sent to the same\nbackendService as determined by the BackendService's session affinity policy.\nThe value must be between 0 and 1000","description_kind":"plain","required":true}},"block_types":{"header_action":{"nesting_mode":"list","block":{"attributes":{"request_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the request\nprior to forwarding the request to the backendService.","description_kind":"plain","optional":true},"response_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the response\nprior to sending the response back to the client.","description_kind":"plain","optional":true}},"block_types":{"request_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add to a matching request prior to forwarding the request to the\nbackendService.","description_kind":"plain"}},"response_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add the response prior to sending the response back to the client.","description_kind":"plain"}}},"description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService. headerAction specified here take effect before\nheaderAction in the enclosing HttpRouteRule, PathMatcher and UrlMap.","description_kind":"plain"},"max_items":1}},"description":"A list of weighted backend services to send traffic to when a route match\noccurs. The weights determine the fraction of traffic that flows to their\ncorresponding backend service. If all traffic needs to go to a single backend\nservice, there must be one weightedBackendService with weight set to a non 0\nnumber. Once a backendService is identified and before forwarding the request to\nthe backend service, advanced routing actions like Url rewrites and header\ntransformations are applied depending on additional settings specified in this\nHttpRouteAction.","description_kind":"plain"}}},"description":"In response to a matching path, the load balancer performs advanced routing\nactions like URL rewrites, header transformations, etc. prior to forwarding the\nrequest to the selected backend. If routeAction specifies any\nweightedBackendServices, service must not be set. Conversely if service is set,\nrouteAction cannot contain any weightedBackendServices. Only one of routeAction\nor urlRedirect must be set.","description_kind":"plain"},"max_items":1},"url_redirect":{"nesting_mode":"list","block":{"attributes":{"host_redirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one\nthat was supplied in the request. The value must be between 1 and 255\ncharacters.","description_kind":"plain","optional":true},"https_redirect":{"type":"bool","description":"If set to true, the URL scheme in the redirected request is set to https.\nIf set to false, the URL scheme of the redirected request will remain the\nsame as that of the request. This must only be set for UrlMaps used in\nTargetHttpProxys. Setting this true for TargetHttpsProxy is not\npermitted. The default is set to false.","description_kind":"plain","optional":true},"path_redirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one\nthat was supplied in the request. pathRedirect cannot be supplied\ntogether with prefixRedirect. Supply one alone or neither. If neither is\nsupplied, the path of the original request will be used for the redirect.\nThe value must be between 1 and 1024 characters.","description_kind":"plain","optional":true},"prefix_redirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the\nHttpRouteRuleMatch, retaining the remaining portion of the URL before\nredirecting the request. prefixRedirect cannot be supplied together with\npathRedirect. Supply one alone or neither. If neither is supplied, the\npath of the original request will be used for the redirect. The value\nmust be between 1 and 1024 characters.","description_kind":"plain","optional":true},"redirect_response_code":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n\n* FOUND, which corresponds to 302.\n\n* SEE_OTHER which corresponds to 303.\n\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method\nwill be retained.\n\n* PERMANENT_REDIRECT, which corresponds to 308. In this case,\nthe request method will be retained. Possible values: [\"FOUND\", \"MOVED_PERMANENTLY_DEFAULT\", \"PERMANENT_REDIRECT\", \"SEE_OTHER\", \"TEMPORARY_REDIRECT\"]","description_kind":"plain","optional":true},"strip_query":{"type":"bool","description":"If set to true, any accompanying query portion of the original URL is removed\nprior to redirecting the request. If set to false, the query portion of the\noriginal URL is retained.\n This field is required to ensure an empty block is not set. The normal default value is false.","description_kind":"plain","required":true}},"description":"When a path pattern is matched, the request is redirected to a URL specified\nby urlRedirect. If urlRedirect is specified, service or routeAction must not\nbe set.","description_kind":"plain"},"max_items":1}},"description":"The list of path rules. Use this list instead of routeRules when routing based\non simple path matching is all that's required. The order by which path rules\nare specified does not matter. Matches are always done on the longest-path-first\nbasis. For example: a pathRule with a path /a/b/c/* will match before /a/b/*\nirrespective of the order in which those paths appear in this list. Within a\ngiven pathMatcher, only one of pathRules or routeRules must be set.","description_kind":"plain"}},"route_rules":{"nesting_mode":"list","block":{"attributes":{"priority":{"type":"number","description":"For routeRules within a given pathMatcher, priority determines the order\nin which load balancer will interpret routeRules. RouteRules are evaluated\nin order of priority, from the lowest to highest number. The priority of\na rule decreases as its number increases (1, 2, 3, N+1). The first rule\nthat matches the request is applied.\n\nYou cannot configure two or more routeRules with the same priority.\nPriority for each rule must be set to a number between 0 and\n2147483647 inclusive.\n\nPriority numbers can have gaps, which enable you to add or remove rules\nin the future without affecting the rest of the rules. For example,\n1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which\nyou could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the\nfuture without any impact on existing rules.","description_kind":"plain","required":true},"service":{"type":"string","description":"The region backend service resource to which traffic is\ndirected if this rule is matched. If routeAction is additionally specified,\nadvanced routing actions like URL Rewrites, etc. take effect prior to sending\nthe request to the backend. However, if service is specified, routeAction cannot\ncontain any weightedBackendService s. Conversely, if routeAction specifies any\nweightedBackendServices, service must not be specified. Only one of urlRedirect,\nservice or routeAction.weightedBackendService must be set.","description_kind":"plain","optional":true}},"block_types":{"header_action":{"nesting_mode":"list","block":{"attributes":{"request_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the request\nprior to forwarding the request to the backendService.","description_kind":"plain","optional":true},"response_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the response\nprior to sending the response back to the client.","description_kind":"plain","optional":true}},"block_types":{"request_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add to a matching request prior to forwarding the request to the\nbackendService.","description_kind":"plain"}},"response_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add the response prior to sending the response back to the client.","description_kind":"plain"}}},"description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService. The headerAction specified here are applied before\nthe matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].r\nouteAction.weightedBackendService.backendServiceWeightAction[].headerAction","description_kind":"plain"},"max_items":1},"match_rules":{"nesting_mode":"list","block":{"attributes":{"full_path_match":{"type":"string","description":"For satisfying the matchRule condition, the path of the request must exactly\nmatch the value specified in fullPathMatch after removing any query parameters\nand anchor that may be part of the original URL. FullPathMatch must be between 1\nand 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must\nbe specified.","description_kind":"plain","optional":true},"ignore_case":{"type":"bool","description":"Specifies that prefixMatch and fullPathMatch matches are case sensitive.\nDefaults to false.","description_kind":"plain","optional":true},"prefix_match":{"type":"string","description":"For satisfying the matchRule condition, the request's path must begin with the\nspecified prefixMatch. prefixMatch must begin with a /. The value must be\nbetween 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or\nregexMatch must be specified.","description_kind":"plain","optional":true},"regex_match":{"type":"string","description":"For satisfying the matchRule condition, the path of the request must satisfy the\nregular expression specified in regexMatch after removing any query parameters\nand anchor supplied with the original URL. For regular expression grammar please\nsee en.cppreference.com/w/cpp/regex/ecmascript Only one of prefixMatch,\nfullPathMatch or regexMatch must be specified.","description_kind":"plain","optional":true}},"block_types":{"header_matches":{"nesting_mode":"list","block":{"attributes":{"exact_match":{"type":"string","description":"The value should exactly match contents of exactMatch. Only one of exactMatch,\nprefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.","description_kind":"plain","optional":true},"header_name":{"type":"string","description":"The name of the HTTP header to match. For matching against the HTTP request's\nauthority, use a headerMatch with the header name \":authority\". For matching a\nrequest's method, use the headerName \":method\".","description_kind":"plain","required":true},"invert_match":{"type":"bool","description":"If set to false, the headerMatch is considered a match if the match criteria\nabove are met. If set to true, the headerMatch is considered a match if the\nmatch criteria above are NOT met. Defaults to false.","description_kind":"plain","optional":true},"prefix_match":{"type":"string","description":"The value of the header must start with the contents of prefixMatch. Only one of\nexactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch\nmust be set.","description_kind":"plain","optional":true},"present_match":{"type":"bool","description":"A header with the contents of headerName must exist. The match takes place\nwhether or not the request's header has a value or not. Only one of exactMatch,\nprefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.","description_kind":"plain","optional":true},"regex_match":{"type":"string","description":"The value of the header must match the regular expression specified in\nregexMatch. For regular expression grammar, please see:\nen.cppreference.com/w/cpp/regex/ecmascript For matching against a port\nspecified in the HTTP request, use a headerMatch with headerName set to PORT and\na regular expression that satisfies the RFC2616 Host header's port specifier.\nOnly one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or\nrangeMatch must be set.","description_kind":"plain","optional":true},"suffix_match":{"type":"string","description":"The value of the header must end with the contents of suffixMatch. Only one of\nexactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch\nmust be set.","description_kind":"plain","optional":true}},"block_types":{"range_match":{"nesting_mode":"list","block":{"attributes":{"range_end":{"type":"number","description":"The end of the range (exclusive).","description_kind":"plain","required":true},"range_start":{"type":"number","description":"The start of the range (inclusive).","description_kind":"plain","required":true}},"description":"The header value must be an integer and its value must be in the range specified\nin rangeMatch. If the header does not contain an integer, number or is empty,\nthe match fails. For example for a range [-5, 0]\n\n* -3 will match\n* 0 will not match\n* 0.25 will not match\n* -3someString will not match.\n\nOnly one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or\nrangeMatch must be set.","description_kind":"plain"},"max_items":1}},"description":"Specifies a list of header match criteria, all of which must match corresponding\nheaders in the request.","description_kind":"plain"}},"metadata_filters":{"nesting_mode":"list","block":{"attributes":{"filter_match_criteria":{"type":"string","description":"Specifies how individual filterLabel matches within the list of filterLabels\ncontribute towards the overall metadataFilter match. Supported values are:\n\n* MATCH_ANY: At least one of the filterLabels must have a matching label in the\nprovided metadata.\n* MATCH_ALL: All filterLabels must have matching labels in\nthe provided metadata. Possible values: [\"MATCH_ALL\", \"MATCH_ANY\"]","description_kind":"plain","required":true}},"block_types":{"filter_labels":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of metadata label. The name can have a maximum length of 1024 characters\nand must be at least 1 character long.","description_kind":"plain","required":true},"value":{"type":"string","description":"The value of the label must match the specified value. value can have a maximum\nlength of 1024 characters.","description_kind":"plain","required":true}},"description":"The list of label value pairs that must match labels in the provided metadata\nbased on filterMatchCriteria This list must not be empty and can have at the\nmost 64 entries.","description_kind":"plain"},"min_items":1,"max_items":64}},"description":"Opaque filter criteria used by Loadbalancer to restrict routing configuration to\na limited set xDS compliant clients. In their xDS requests to Loadbalancer, xDS\nclients present node metadata. If a match takes place, the relevant routing\nconfiguration is made available to those proxies. For each metadataFilter in\nthis list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the\nfilterLabels must match the corresponding label provided in the metadata. If its\nfilterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match\nwith corresponding labels in the provided metadata. metadataFilters specified\nhere can be overrides those specified in ForwardingRule that refers to this\nUrlMap. metadataFilters only applies to Loadbalancers that have their\nloadBalancingScheme set to INTERNAL_SELF_MANAGED.","description_kind":"plain"}},"query_parameter_matches":{"nesting_mode":"list","block":{"attributes":{"exact_match":{"type":"string","description":"The queryParameterMatch matches if the value of the parameter exactly matches\nthe contents of exactMatch. Only one of presentMatch, exactMatch and regexMatch\nmust be set.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the query parameter to match. The query parameter must exist in the\nrequest, in the absence of which the request match fails.","description_kind":"plain","required":true},"present_match":{"type":"bool","description":"Specifies that the queryParameterMatch matches if the request contains the query\nparameter, irrespective of whether the parameter has a value or not. Only one of\npresentMatch, exactMatch and regexMatch must be set.","description_kind":"plain","optional":true},"regex_match":{"type":"string","description":"The queryParameterMatch matches if the value of the parameter matches the\nregular expression specified by regexMatch. For the regular expression grammar,\nplease see en.cppreference.com/w/cpp/regex/ecmascript Only one of presentMatch,\nexactMatch and regexMatch must be set.","description_kind":"plain","optional":true}},"description":"Specifies a list of query parameter match criteria, all of which must match\ncorresponding query parameters in the request.","description_kind":"plain"}}},"description":"The rules for determining a match.","description_kind":"plain"}},"route_action":{"nesting_mode":"list","block":{"block_types":{"cors_policy":{"nesting_mode":"list","block":{"attributes":{"allow_credentials":{"type":"bool","description":"In response to a preflight request, setting this to true indicates that the\nactual request can include user credentials. This translates to the Access-\nControl-Allow-Credentials header. Defaults to false.","description_kind":"plain","optional":true},"allow_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Headers header.","description_kind":"plain","optional":true},"allow_methods":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Methods header.","description_kind":"plain","optional":true},"allow_origin_regexes":{"type":["list","string"],"description":"Specifies the regular expression patterns that match allowed origins. For\nregular expression grammar please see en.cppreference.com/w/cpp/regex/ecmascript\nAn origin is allowed if it matches either allow_origins or allow_origin_regex.","description_kind":"plain","optional":true},"allow_origins":{"type":["list","string"],"description":"Specifies the list of origins that will be allowed to do CORS requests. An\norigin is allowed if it matches either allow_origins or allow_origin_regex.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If true, specifies the CORS policy is disabled.\nwhich indicates that the CORS policy is in effect. Defaults to false.","description_kind":"plain","optional":true},"expose_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Expose-Headers header.","description_kind":"plain","optional":true},"max_age":{"type":"number","description":"Specifies how long the results of a preflight request can be cached. This\ntranslates to the content for the Access-Control-Max-Age header.","description_kind":"plain","optional":true}},"description":"The specification for allowing client side cross-origin requests. Please see W3C\nRecommendation for Cross Origin Resource Sharing","description_kind":"plain"},"max_items":1},"fault_injection_policy":{"nesting_mode":"list","block":{"block_types":{"abort":{"nesting_mode":"list","block":{"attributes":{"http_status":{"type":"number","description":"The HTTP status code used to abort the request. The value must be between 200\nand 599 inclusive.","description_kind":"plain","optional":true},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) which will be\naborted as part of fault injection. The value must be between 0.0 and 100.0\ninclusive.","description_kind":"plain","optional":true}},"description":"The specification for how client requests are aborted as part of fault\ninjection.","description_kind":"plain"},"max_items":1},"delay":{"nesting_mode":"list","block":{"attributes":{"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) on which delay will\nbe introduced as part of fault injection. The value must be between 0.0 and\n100.0 inclusive.","description_kind":"plain","optional":true}},"block_types":{"fixed_delay":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies the value of the fixed delay interval.","description_kind":"plain"},"max_items":1}},"description":"The specification for how client requests are delayed as part of fault\ninjection, before being sent to a backend service.","description_kind":"plain"},"max_items":1}},"description":"The specification for fault injection introduced into traffic to test the\nresiliency of clients to backend service failure. As part of fault injection,\nwhen clients send requests to a backend service, delays can be introduced by\nLoadbalancer on a percentage of requests before sending those request to the\nbackend service. Similarly requests from clients can be aborted by the\nLoadbalancer for a percentage of requests. timeout and retry_policy will be\nignored by clients that are configured with a fault_injection_policy.","description_kind":"plain"},"max_items":1},"request_mirror_policy":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The RegionBackendService resource being mirrored to.","description_kind":"plain","required":true}},"description":"Specifies the policy on how requests intended for the route's backends are\nshadowed to a separate mirrored backend service. Loadbalancer does not wait for\nresponses from the shadow service. Prior to sending traffic to the shadow\nservice, the host / authority header is suffixed with -shadow.","description_kind":"plain"},"max_items":1},"retry_policy":{"nesting_mode":"list","block":{"attributes":{"num_retries":{"type":"number","description":"Specifies the allowed number retries. This number must be \u003e 0.","description_kind":"plain","required":true},"retry_conditions":{"type":["list","string"],"description":"Specifies one or more conditions when this retry rule applies. Valid values are:\n\n* 5xx: Loadbalancer will attempt a retry if the backend service responds with\n any 5xx response code, or if the backend service does not respond at all,\n example: disconnects, reset, read timeout, connection failure, and refused\n streams.\n* gateway-error: Similar to 5xx, but only applies to response codes\n 502, 503 or 504.\n* connect-failure: Loadbalancer will retry on failures\n connecting to backend services, for example due to connection timeouts.\n* retriable-4xx: Loadbalancer will retry for retriable 4xx response codes.\n Currently the only retriable error supported is 409.\n* refused-stream: Loadbalancer will retry if the backend service resets the stream with a\n REFUSED_STREAM error code. This reset type indicates that it is safe to retry.\n* cancelled: Loadbalancer will retry if the gRPC status code in the response\n header is set to cancelled\n* deadline-exceeded: Loadbalancer will retry if the\n gRPC status code in the response header is set to deadline-exceeded\n* resource-exhausted: Loadbalancer will retry if the gRPC status code in the response\n header is set to resource-exhausted\n* unavailable: Loadbalancer will retry if the gRPC status code in\n the response header is set to unavailable","description_kind":"plain","optional":true}},"block_types":{"per_try_timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies a non-zero timeout per retry attempt.","description_kind":"plain"},"max_items":1}},"description":"Specifies the retry policy associated with this route.","description_kind":"plain"},"max_items":1},"timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies the timeout for the selected route. Timeout is computed from the time\nthe request is has been fully processed (i.e. end-of-stream) up until the\nresponse has been completely processed. Timeout includes all retries. If not\nspecified, the default value is 15 seconds.","description_kind":"plain"},"max_items":1},"url_rewrite":{"nesting_mode":"list","block":{"attributes":{"host_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected service, the request's host\nheader is replaced with contents of hostRewrite. The value must be between 1 and\n255 characters.","description_kind":"plain","optional":true},"path_prefix_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected backend service, the matching\nportion of the request's path is replaced by pathPrefixRewrite. The value must\nbe between 1 and 1024 characters.","description_kind":"plain","optional":true}},"description":"The spec to modify the URL of the request, prior to forwarding the request to\nthe matched service","description_kind":"plain"},"max_items":1},"weighted_backend_services":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The default RegionBackendService resource. Before\nforwarding the request to backendService, the loadbalancer applies any relevant\nheaderActions specified as part of this backendServiceWeight.","description_kind":"plain","required":true},"weight":{"type":"number","description":"Specifies the fraction of traffic sent to backendService, computed as weight /\n(sum of all weightedBackendService weights in routeAction) . The selection of a\nbackend service is determined only for new traffic. Once a user's request has\nbeen directed to a backendService, subsequent requests will be sent to the same\nbackendService as determined by the BackendService's session affinity policy.\nThe value must be between 0 and 1000","description_kind":"plain","required":true}},"block_types":{"header_action":{"nesting_mode":"list","block":{"attributes":{"request_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the request\nprior to forwarding the request to the backendService.","description_kind":"plain","optional":true},"response_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the response\nprior to sending the response back to the client.","description_kind":"plain","optional":true}},"block_types":{"request_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add to a matching request prior to forwarding the request to the\nbackendService.","description_kind":"plain"}},"response_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add the response prior to sending the response back to the client.","description_kind":"plain"}}},"description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService. headerAction specified here take effect before\nheaderAction in the enclosing HttpRouteRule, PathMatcher and UrlMap.","description_kind":"plain"},"max_items":1}},"description":"A list of weighted backend services to send traffic to when a route match\noccurs. The weights determine the fraction of traffic that flows to their\ncorresponding backend service. If all traffic needs to go to a single backend\nservice, there must be one weightedBackendService with weight set to a non 0\nnumber. Once a backendService is identified and before forwarding the request to\nthe backend service, advanced routing actions like Url rewrites and header\ntransformations are applied depending on additional settings specified in this\nHttpRouteAction.","description_kind":"plain"}}},"description":"In response to a matching matchRule, the load balancer performs advanced routing\nactions like URL rewrites, header transformations, etc. prior to forwarding the\nrequest to the selected backend. If routeAction specifies any\nweightedBackendServices, service must not be set. Conversely if service is set,\nrouteAction cannot contain any weightedBackendServices. Only one of routeAction\nor urlRedirect must be set.","description_kind":"plain"},"max_items":1},"url_redirect":{"nesting_mode":"list","block":{"attributes":{"host_redirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one\nthat was supplied in the request. The value must be between 1 and 255\ncharacters.","description_kind":"plain","optional":true},"https_redirect":{"type":"bool","description":"If set to true, the URL scheme in the redirected request is set to https.\nIf set to false, the URL scheme of the redirected request will remain the\nsame as that of the request. This must only be set for UrlMaps used in\nTargetHttpProxys. Setting this true for TargetHttpsProxy is not\npermitted. The default is set to false.","description_kind":"plain","optional":true},"path_redirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one\nthat was supplied in the request. pathRedirect cannot be supplied\ntogether with prefixRedirect. Supply one alone or neither. If neither is\nsupplied, the path of the original request will be used for the redirect.\nThe value must be between 1 and 1024 characters.","description_kind":"plain","optional":true},"prefix_redirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the\nHttpRouteRuleMatch, retaining the remaining portion of the URL before\nredirecting the request. prefixRedirect cannot be supplied together with\npathRedirect. Supply one alone or neither. If neither is supplied, the\npath of the original request will be used for the redirect. The value\nmust be between 1 and 1024 characters.","description_kind":"plain","optional":true},"redirect_response_code":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n\n* FOUND, which corresponds to 302.\n\n* SEE_OTHER which corresponds to 303.\n\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method\nwill be retained.\n\n* PERMANENT_REDIRECT, which corresponds to 308. In this case,\nthe request method will be retained. Possible values: [\"FOUND\", \"MOVED_PERMANENTLY_DEFAULT\", \"PERMANENT_REDIRECT\", \"SEE_OTHER\", \"TEMPORARY_REDIRECT\"]","description_kind":"plain","optional":true},"strip_query":{"type":"bool","description":"If set to true, any accompanying query portion of the original URL is\nremoved prior to redirecting the request. If set to false, the query\nportion of the original URL is retained. The default value is false.","description_kind":"plain","optional":true}},"description":"When this rule is matched, the request is redirected to a URL specified by\nurlRedirect. If urlRedirect is specified, service or routeAction must not be\nset.","description_kind":"plain"},"max_items":1}},"description":"The list of ordered HTTP route rules. Use this list instead of pathRules when\nadvanced route matching and routing actions are desired. The order of specifying\nrouteRules matters: the first rule that matches will cause its specified routing\naction to take effect. Within a given pathMatcher, only one of pathRules or\nrouteRules must be set. routeRules are not supported in UrlMaps intended for\nExternal load balancers.","description_kind":"plain"}}},"description":"The list of named PathMatchers to use against the URL.","description_kind":"plain"}},"test":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Description of this test case.","description_kind":"plain","optional":true},"host":{"type":"string","description":"Host portion of the URL.","description_kind":"plain","required":true},"path":{"type":"string","description":"Path portion of the URL.","description_kind":"plain","required":true},"service":{"type":"string","description":"A reference to expected RegionBackendService resource the given URL should be mapped to.","description_kind":"plain","required":true}},"description":"The list of expected URL mappings. Requests to update this UrlMap will\nsucceed only if all of the test cases pass.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_reservation":{"version":0,"block":{"attributes":{"commitment":{"type":"string","description":"Full or partial URL to a parent commitment. This field displays for\nreservations that are tied to a commitment.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"specific_reservation_required":{"type":"bool","description":"When set to true, only VMs that target this reservation by name can\nconsume this reservation. Otherwise, it can be consumed by VMs with\naffinity for any reservation. Defaults to false.","description_kind":"plain","optional":true},"status":{"type":"string","description":"The status of the reservation.","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone where the reservation is made.","description_kind":"plain","required":true}},"block_types":{"specific_reservation":{"nesting_mode":"list","block":{"attributes":{"count":{"type":"number","description":"The number of resources that are allocated.","description_kind":"plain","required":true},"in_use_count":{"type":"number","description":"How many instances are in use.","description_kind":"plain","computed":true}},"block_types":{"instance_properties":{"nesting_mode":"list","block":{"attributes":{"machine_type":{"type":"string","description":"The name of the machine type to reserve.","description_kind":"plain","required":true},"min_cpu_platform":{"type":"string","description":"The minimum CPU platform for the reservation. For example,\n'\"Intel Skylake\"'. See\nthe CPU platform availability reference](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform#availablezones)\nfor information on available CPU platforms.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"guest_accelerators":{"nesting_mode":"list","block":{"attributes":{"accelerator_count":{"type":"number","description":"The number of the guest accelerator cards exposed to\nthis instance.","description_kind":"plain","required":true},"accelerator_type":{"type":"string","description":"The full or partial URL of the accelerator type to\nattach to this instance. For example:\n'projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100'\n\nIf you are creating an instance template, specify only the accelerator name.","description_kind":"plain","required":true}},"description":"Guest accelerator type and count.","description_kind":"plain"}},"local_ssds":{"nesting_mode":"list","block":{"attributes":{"disk_size_gb":{"type":"number","description":"The size of the disk in base-2 GB.","description_kind":"plain","required":true},"interface":{"type":"string","description":"The disk interface to use for attaching this disk. Default value: \"SCSI\" Possible values: [\"SCSI\", \"NVME\"]","description_kind":"plain","optional":true}},"description":"The amount of local ssd to reserve with each instance. This\nreserves disks of type 'local-ssd'.","description_kind":"plain"}}},"description":"The instance properties for the reservation.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Reservation for instances with specific machine shapes.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_resource_policy":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the resource, provided by the client when initially creating\nthe resource. The resource name must be 1-63 characters long, and comply\nwith RFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])'? which means the\nfirst character must be a lowercase letter, and all following characters\nmust be a dash, lowercase letter, or digit, except the last character,\nwhich cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region where resource policy resides.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"group_placement_policy":{"nesting_mode":"list","block":{"attributes":{"availability_domain_count":{"type":"number","description":"The number of availability domains instances will be spread across. If two instances are in different\navailability domain, they will not be put in the same low latency network","description_kind":"plain","optional":true},"collocation":{"type":"string","description":"Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network.\nSpecify 'COLLOCATED' to enable collocation. Can only be specified with 'vm_count'. If compute instances are created\nwith a COLLOCATED policy, then exactly 'vm_count' instances must be created at the same time with the resource policy\nattached. Possible values: [\"COLLOCATED\"]","description_kind":"plain","optional":true},"vm_count":{"type":"number","description":"Number of vms in this placement group.","description_kind":"plain","optional":true}},"description":"Resource policy for instances used for placement configuration.","description_kind":"plain"},"max_items":1},"instance_schedule_policy":{"nesting_mode":"list","block":{"attributes":{"expiration_time":{"type":"string","description":"The expiration time of the schedule. The timestamp is an RFC3339 string.","description_kind":"plain","optional":true},"start_time":{"type":"string","description":"The start time of the schedule. The timestamp is an RFC3339 string.","description_kind":"plain","optional":true},"time_zone":{"type":"string","description":"Specifies the time zone to be used in interpreting the schedule. The value of this field must be a time zone name\nfrom the tz database: http://en.wikipedia.org/wiki/Tz_database.","description_kind":"plain","required":true}},"block_types":{"vm_start_schedule":{"nesting_mode":"list","block":{"attributes":{"schedule":{"type":"string","description":"Specifies the frequency for the operation, using the unix-cron format.","description_kind":"plain","required":true}},"description":"Specifies the schedule for starting instances.","description_kind":"plain"},"max_items":1},"vm_stop_schedule":{"nesting_mode":"list","block":{"attributes":{"schedule":{"type":"string","description":"Specifies the frequency for the operation, using the unix-cron format.","description_kind":"plain","required":true}},"description":"Specifies the schedule for stopping instances.","description_kind":"plain"},"max_items":1}},"description":"Resource policy for scheduling instance operations.","description_kind":"plain"},"max_items":1},"snapshot_schedule_policy":{"nesting_mode":"list","block":{"block_types":{"retention_policy":{"nesting_mode":"list","block":{"attributes":{"max_retention_days":{"type":"number","description":"Maximum age of the snapshot that is allowed to be kept.","description_kind":"plain","required":true},"on_source_disk_delete":{"type":"string","description":"Specifies the behavior to apply to scheduled snapshots when\nthe source disk is deleted. Default value: \"KEEP_AUTO_SNAPSHOTS\" Possible values: [\"KEEP_AUTO_SNAPSHOTS\", \"APPLY_RETENTION_POLICY\"]","description_kind":"plain","optional":true}},"description":"Retention policy applied to snapshots created by this resource policy.","description_kind":"plain"},"max_items":1},"schedule":{"nesting_mode":"list","block":{"block_types":{"daily_schedule":{"nesting_mode":"list","block":{"attributes":{"days_in_cycle":{"type":"number","description":"The number of days between snapshots.","description_kind":"plain","required":true},"start_time":{"type":"string","description":"This must be in UTC format that resolves to one of\n00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example,\nboth 13:00-5 and 08:00 are valid.","description_kind":"plain","required":true}},"description":"The policy will execute every nth day at the specified time.","description_kind":"plain"},"max_items":1},"hourly_schedule":{"nesting_mode":"list","block":{"attributes":{"hours_in_cycle":{"type":"number","description":"The number of hours between snapshots.","description_kind":"plain","required":true},"start_time":{"type":"string","description":"Time within the window to start the operations.\nIt must be in an hourly format \"HH:MM\",\nwhere HH : [00-23] and MM : [00] GMT.\neg: 21:00","description_kind":"plain","required":true}},"description":"The policy will execute every nth hour starting at the specified time.","description_kind":"plain"},"max_items":1},"weekly_schedule":{"nesting_mode":"list","block":{"block_types":{"day_of_weeks":{"nesting_mode":"set","block":{"attributes":{"day":{"type":"string","description":"The day of the week to create the snapshot. e.g. MONDAY Possible values: [\"MONDAY\", \"TUESDAY\", \"WEDNESDAY\", \"THURSDAY\", \"FRIDAY\", \"SATURDAY\", \"SUNDAY\"]","description_kind":"plain","required":true},"start_time":{"type":"string","description":"Time within the window to start the operations.\nIt must be in format \"HH:MM\", where HH : [00-23] and MM : [00-00] GMT.","description_kind":"plain","required":true}},"description":"May contain up to seven (one for each day of the week) snapshot times.","description_kind":"plain"},"min_items":1,"max_items":7}},"description":"Allows specifying a snapshot time for each day of the week.","description_kind":"plain"},"max_items":1}},"description":"Contains one of an 'hourlySchedule', 'dailySchedule', or 'weeklySchedule'.","description_kind":"plain"},"min_items":1,"max_items":1},"snapshot_properties":{"nesting_mode":"list","block":{"attributes":{"guest_flush":{"type":"bool","description":"Whether to perform a 'guest aware' snapshot.","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"A set of key-value pairs.","description_kind":"plain","optional":true},"storage_locations":{"type":["set","string"],"description":"Cloud Storage bucket location to store the auto snapshot\n(regional or multi-regional)","description_kind":"plain","optional":true}},"description":"Properties with which the snapshots are created, such as labels.","description_kind":"plain"},"max_items":1}},"description":"Policy for creating snapshots of persistent disks.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_route":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional description of this resource. Provide this property\nwhen you create the resource.","description_kind":"plain","optional":true},"dest_range":{"type":"string","description":"The destination range of outgoing packets that this route applies to.\nOnly IPv4 is supported.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the\nlast character, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"The network that this route applies to.","description_kind":"plain","required":true},"next_hop_gateway":{"type":"string","description":"URL to a gateway that should handle matching packets.\nCurrently, you can only specify the internet gateway, using a full or\npartial valid URL:\n* 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway'\n* 'projects/project/global/gateways/default-internet-gateway'\n* 'global/gateways/default-internet-gateway'\n* The string 'default-internet-gateway'.","description_kind":"plain","optional":true},"next_hop_ilb":{"type":"string","description":"The IP address or URL to a forwarding rule of type\nloadBalancingScheme=INTERNAL that should handle matching\npackets.\n\nWith the GA provider you can only specify the forwarding\nrule as a partial or full URL. For example, the following\nare all valid values:\n* 10.128.0.56\n* https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule\n* regions/region/forwardingRules/forwardingRule\n\nWhen the beta provider, you can also specify the IP address\nof a forwarding rule from the same VPC or any peered VPC.\n\nNote that this can only be used when the destinationRange is\na public (non-RFC 1918) IP CIDR range.","description_kind":"plain","optional":true},"next_hop_instance":{"type":"string","description":"URL to an instance that should handle matching packets.\nYou can specify this as a full or partial URL. For example:\n* 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance'\n* 'projects/project/zones/zone/instances/instance'\n* 'zones/zone/instances/instance'\n* Just the instance name, with the zone in 'next_hop_instance_zone'.","description_kind":"plain","optional":true},"next_hop_instance_zone":{"type":"string","description":"The zone of the instance specified in next_hop_instance. Omit if next_hop_instance is specified as a URL.","description_kind":"plain","optional":true,"computed":true},"next_hop_ip":{"type":"string","description":"Network IP address of an instance that should handle matching packets.","description_kind":"plain","optional":true,"computed":true},"next_hop_network":{"type":"string","description":"URL to a Network that should handle matching packets.","description_kind":"plain","computed":true},"next_hop_vpn_tunnel":{"type":"string","description":"URL to a VpnTunnel that should handle matching packets.","description_kind":"plain","optional":true},"priority":{"type":"number","description":"The priority of this route. Priority is used to break ties in cases\nwhere there is more than one matching route of equal prefix length.\n\nIn the case of two routes with equal prefix length, the one with the\nlowest-numbered priority value wins.\n\nDefault value is 1000. Valid range is 0 through 65535.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"A list of instance tags to which this route applies.","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_router":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"encrypted_interconnect_router":{"type":"bool","description":"Field to indicate if a router is dedicated to use with encrypted\nInterconnect Attachment (IPsec-encrypted Cloud Interconnect feature).\n\nNot currently available publicly.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. The name must be 1-63 characters long, and\ncomply with RFC1035. Specifically, the name must be 1-63 characters\nlong and match the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?'\nwhich means the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit,\nexcept the last character, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"A reference to the network to which this router belongs.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region where the router resides.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"bgp":{"nesting_mode":"list","block":{"attributes":{"advertise_mode":{"type":"string","description":"User-specified flag to indicate which mode to use for advertisement. Default value: \"DEFAULT\" Possible values: [\"DEFAULT\", \"CUSTOM\"]","description_kind":"plain","optional":true},"advertised_groups":{"type":["list","string"],"description":"User-specified list of prefix groups to advertise in custom mode.\nThis field can only be populated if advertiseMode is CUSTOM and\nis advertised to all peers of the router. These groups will be\nadvertised in addition to any specified prefixes. Leave this field\nblank to advertise no custom groups.\n\nThis enum field has the one valid value: ALL_SUBNETS","description_kind":"plain","optional":true},"asn":{"type":"number","description":"Local BGP Autonomous System Number (ASN). Must be an RFC6996\nprivate ASN, either 16-bit or 32-bit. The value will be fixed for\nthis router resource. All VPN tunnels that link to this router\nwill have the same local ASN.","description_kind":"plain","required":true}},"block_types":{"advertised_ip_ranges":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"User-specified description for the IP range.","description_kind":"plain","optional":true},"range":{"type":"string","description":"The IP range to advertise. The value must be a\nCIDR-formatted string.","description_kind":"plain","required":true}},"description":"User-specified list of individual IP ranges to advertise in\ncustom mode. This field can only be populated if advertiseMode\nis CUSTOM and is advertised to all peers of the router. These IP\nranges will be advertised in addition to any specified groups.\nLeave this field blank to advertise no custom IP ranges.","description_kind":"plain"}}},"description":"BGP information specific to this router.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_router_interface":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"interconnect_attachment":{"type":"string","description":"The name or resource link to the VLAN interconnect for this interface. Changing this forces a new interface to be created. Only one of vpn_tunnel and interconnect_attachment can be specified.","description_kind":"plain","optional":true},"ip_range":{"type":"string","description":"IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. Changing this forces a new interface to be created.","description_kind":"plain","optional":true},"name":{"type":"string","description":"A unique name for the interface, required by GCE. Changing this forces a new interface to be created.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which this interface's router belongs. If it is not provided, the provider project is used. Changing this forces a new interface to be created.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region this interface's router sits in. If not specified, the project region will be used. Changing this forces a new interface to be created.","description_kind":"plain","optional":true,"computed":true},"router":{"type":"string","description":"The name of the router this interface will be attached to. Changing this forces a new interface to be created.","description_kind":"plain","required":true},"vpn_tunnel":{"type":"string","description":"The name or resource link to the VPN tunnel this interface will be linked to. Changing this forces a new interface to be created. Only one of vpn_tunnel and interconnect_attachment can be specified.","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_router_nat":{"version":0,"block":{"attributes":{"drain_nat_ips":{"type":["set","string"],"description":"A list of URLs of the IP resources to be drained. These IPs must be\nvalid static external IPs that have been assigned to the NAT.","description_kind":"plain","optional":true},"enable_endpoint_independent_mapping":{"type":"bool","description":"Specifies if endpoint independent mapping is enabled. This is enabled by default. For more information\nsee the [official documentation](https://cloud.google.com/nat/docs/overview#specs-rfcs).","description_kind":"plain","optional":true},"icmp_idle_timeout_sec":{"type":"number","description":"Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"min_ports_per_vm":{"type":"number","description":"Minimum number of ports allocated to a VM from this NAT.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the NAT service. The name must be 1-63 characters long and\ncomply with RFC1035.","description_kind":"plain","required":true},"nat_ip_allocate_option":{"type":"string","description":"How external IPs should be allocated for this NAT. Valid values are\n'AUTO_ONLY' for only allowing NAT IPs allocated by Google Cloud\nPlatform, or 'MANUAL_ONLY' for only user-allocated NAT IP addresses. Possible values: [\"MANUAL_ONLY\", \"AUTO_ONLY\"]","description_kind":"plain","required":true},"nat_ips":{"type":["set","string"],"description":"Self-links of NAT IPs. Only valid if natIpAllocateOption\nis set to MANUAL_ONLY.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region where the router and NAT reside.","description_kind":"plain","optional":true,"computed":true},"router":{"type":"string","description":"The name of the Cloud Router in which this NAT will be configured.","description_kind":"plain","required":true},"source_subnetwork_ip_ranges_to_nat":{"type":"string","description":"How NAT should be configured per Subnetwork.\nIf 'ALL_SUBNETWORKS_ALL_IP_RANGES', all of the\nIP ranges in every Subnetwork are allowed to Nat.\nIf 'ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES', all of the primary IP\nranges in every Subnetwork are allowed to Nat.\n'LIST_OF_SUBNETWORKS': A list of Subnetworks are allowed to Nat\n(specified in the field subnetwork below). Note that if this field\ncontains ALL_SUBNETWORKS_ALL_IP_RANGES or\nALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any\nother RouterNat section in any Router for this network in this region. Possible values: [\"ALL_SUBNETWORKS_ALL_IP_RANGES\", \"ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES\", \"LIST_OF_SUBNETWORKS\"]","description_kind":"plain","required":true},"tcp_established_idle_timeout_sec":{"type":"number","description":"Timeout (in seconds) for TCP established connections.\nDefaults to 1200s if not set.","description_kind":"plain","optional":true},"tcp_transitory_idle_timeout_sec":{"type":"number","description":"Timeout (in seconds) for TCP transitory connections.\nDefaults to 30s if not set.","description_kind":"plain","optional":true},"udp_idle_timeout_sec":{"type":"number","description":"Timeout (in seconds) for UDP connections. Defaults to 30s if not set.","description_kind":"plain","optional":true}},"block_types":{"log_config":{"nesting_mode":"list","block":{"attributes":{"enable":{"type":"bool","description":"Indicates whether or not to export logs.","description_kind":"plain","required":true},"filter":{"type":"string","description":"Specifies the desired filtering of logs on this NAT. Possible values: [\"ERRORS_ONLY\", \"TRANSLATIONS_ONLY\", \"ALL\"]","description_kind":"plain","required":true}},"description":"Configuration for logging on NAT","description_kind":"plain"},"max_items":1},"subnetwork":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description":"Self-link of subnetwork to NAT","description_kind":"plain","required":true},"secondary_ip_range_names":{"type":["set","string"],"description":"List of the secondary ranges of the subnetwork that are allowed\nto use NAT. This can be populated only if\n'LIST_OF_SECONDARY_IP_RANGES' is one of the values in\nsourceIpRangesToNat","description_kind":"plain","optional":true},"source_ip_ranges_to_nat":{"type":["set","string"],"description":"List of options for which source IPs in the subnetwork\nshould have NAT enabled. Supported values include:\n'ALL_IP_RANGES', 'LIST_OF_SECONDARY_IP_RANGES',\n'PRIMARY_IP_RANGE'.","description_kind":"plain","required":true}},"description":"One or more subnetwork NAT configurations. Only used if\n'source_subnetwork_ip_ranges_to_nat' is set to 'LIST_OF_SUBNETWORKS'","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_router_peer":{"version":0,"block":{"attributes":{"advertise_mode":{"type":"string","description":"User-specified flag to indicate which mode to use for advertisement.\nValid values of this enum field are: 'DEFAULT', 'CUSTOM' Default value: \"DEFAULT\" Possible values: [\"DEFAULT\", \"CUSTOM\"]","description_kind":"plain","optional":true},"advertised_groups":{"type":["list","string"],"description":"User-specified list of prefix groups to advertise in custom\nmode, which can take one of the following options:\n\n* 'ALL_SUBNETS': Advertises all available subnets, including peer VPC subnets.\n* 'ALL_VPC_SUBNETS': Advertises the router's own VPC subnets.\n* 'ALL_PEER_VPC_SUBNETS': Advertises peer subnets of the router's VPC network.\n\n\nNote that this field can only be populated if advertiseMode is 'CUSTOM'\nand overrides the list defined for the router (in the \"bgp\" message).\nThese groups are advertised in addition to any specified prefixes.\nLeave this field blank to advertise no custom groups.","description_kind":"plain","optional":true},"advertised_route_priority":{"type":"number","description":"The priority of routes advertised to this BGP peer.\nWhere there is more than one matching route of maximum\nlength, the routes with the lowest priority value win.","description_kind":"plain","optional":true},"enable":{"type":"bool","description":"The status of the BGP peer connection. If set to false, any active session\nwith the peer is terminated and all associated routing information is removed.\nIf set to true, the peer connection can be established with routing information.\nThe default is true.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"interface":{"type":"string","description":"Name of the interface the BGP peer is associated with.","description_kind":"plain","required":true},"ip_address":{"type":"string","description":"IP address of the interface inside Google Cloud Platform.\nOnly IPv4 is supported.","description_kind":"plain","optional":true,"computed":true},"management_type":{"type":"string","description":"The resource that configures and manages this BGP peer.\n\n* 'MANAGED_BY_USER' is the default value and can be managed by\nyou or other users\n* 'MANAGED_BY_ATTACHMENT' is a BGP peer that is configured and\nmanaged by Cloud Interconnect, specifically by an\nInterconnectAttachment of type PARTNER. Google automatically\ncreates, updates, and deletes this type of BGP peer when the\nPARTNER InterconnectAttachment is created, updated,\nor deleted.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of this BGP peer. The name must be 1-63 characters long,\nand comply with RFC1035. Specifically, the name must be 1-63 characters\nlong and match the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which\nmeans the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit,\nexcept the last character, which cannot be a dash.","description_kind":"plain","required":true},"peer_asn":{"type":"number","description":"Peer BGP Autonomous System Number (ASN).\nEach BGP interface may use a different value.","description_kind":"plain","required":true},"peer_ip_address":{"type":"string","description":"IP address of the BGP interface outside Google Cloud Platform.\nOnly IPv4 is supported.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region where the router and BgpPeer reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"router":{"type":"string","description":"The name of the Cloud Router in which this BgpPeer will be configured.","description_kind":"plain","required":true}},"block_types":{"advertised_ip_ranges":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"User-specified description for the IP range.","description_kind":"plain","optional":true},"range":{"type":"string","description":"The IP range to advertise. The value must be a\nCIDR-formatted string.","description_kind":"plain","required":true}},"description":"User-specified list of individual IP ranges to advertise in\ncustom mode. This field can only be populated if advertiseMode\nis 'CUSTOM' and is advertised to all peers of the router. These IP\nranges will be advertised in addition to any specified groups.\nLeave this field blank to advertise no custom IP ranges.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_security_policy":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional description of this security policy. Max size is 2048.","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the security policy.","description_kind":"plain","required":true},"project":{"type":"string","description":"The project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true}},"block_types":{"rule":{"nesting_mode":"set","block":{"attributes":{"action":{"type":"string","description":"Action to take when match matches the request. Valid values: \"allow\" : allow access to target, \"deny(status)\" : deny access to target, returns the HTTP response code specified (valid values are 403, 404 and 502)","description_kind":"plain","required":true},"description":{"type":"string","description":"An optional description of this rule. Max size is 64.","description_kind":"plain","optional":true},"preview":{"type":"bool","description":"When set to true, the action specified above is not enforced. Stackdriver logs for requests that trigger a preview action are annotated as such.","description_kind":"plain","optional":true,"computed":true},"priority":{"type":"number","description":"An unique positive integer indicating the priority of evaluation for a rule. Rules are evaluated from highest priority (lowest numerically) to lowest priority (highest numerically) in order.","description_kind":"plain","required":true}},"block_types":{"match":{"nesting_mode":"list","block":{"attributes":{"versioned_expr":{"type":"string","description":"Predefined rule expression. If this field is specified, config must also be specified. Available options: SRC_IPS_V1: Must specify the corresponding src_ip_ranges field in config.","description_kind":"plain","optional":true}},"block_types":{"config":{"nesting_mode":"list","block":{"attributes":{"src_ip_ranges":{"type":["set","string"],"description":"Set of IP addresses or ranges (IPV4 or IPV6) in CIDR notation to match against inbound traffic. There is a limit of 10 IP ranges per rule. A value of '*' matches all IPs (can be used to override the default behavior).","description_kind":"plain","required":true}},"description":"The configuration options available when specifying versioned_expr. This field must be specified if versioned_expr is specified and cannot be specified if versioned_expr is not specified.","description_kind":"plain"},"max_items":1},"expr":{"nesting_mode":"list","block":{"attributes":{"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported.","description_kind":"plain","required":true}},"description":"User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header.","description_kind":"plain"},"max_items":1}},"description":"A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding action is enforced.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match \"*\"). If no rules are provided when creating a security policy, a default rule with action \"allow\" will be added.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_service_attachment":{"version":0,"block":{"attributes":{"connected_endpoints":{"type":["list",["object",{"endpoint":"string","status":"string"}]],"description":"An array of the consumer forwarding rules connected to this service\nattachment.","description_kind":"plain","computed":true},"connection_preference":{"type":"string","description":"The connection preference to use for this service attachment. Valid\nvalues include \"ACCEPT_AUTOMATIC\", \"ACCEPT_MANUAL\".","description_kind":"plain","required":true},"consumer_reject_lists":{"type":["list","string"],"description":"An array of projects that are not allowed to connect to this service\nattachment.","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"enable_proxy_protocol":{"type":"bool","description":"If true, enable the proxy protocol which is for supplying client TCP/IP\naddress data in TCP connections that traverse proxies on their way to\ndestination servers.","description_kind":"plain","required":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource. This field is used internally during\nupdates of this resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. The name must be 1-63 characters long, and\ncomply with RFC1035. Specifically, the name must be 1-63 characters\nlong and match the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?'\nwhich means the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit,\nexcept the last character, which cannot be a dash.","description_kind":"plain","required":true},"nat_subnets":{"type":["list","string"],"description":"An array of subnets that is provided for NAT in this service attachment.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"URL of the region where the resource resides.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"target_service":{"type":"string","description":"The URL of a forwarding rule that represents the service identified by\nthis service attachment.","description_kind":"plain","required":true}},"block_types":{"consumer_accept_lists":{"nesting_mode":"list","block":{"attributes":{"connection_limit":{"type":"number","description":"The number of consumer forwarding rules the consumer project can\ncreate.","description_kind":"plain","required":true},"project_id_or_num":{"type":"string","description":"A project that is allowed to connect to this service attachment.","description_kind":"plain","required":true}},"description":"An array of projects that are allowed to connect to this service\nattachment.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_shared_vpc_host_project":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description":"The ID of the project that will serve as a Shared VPC host project","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_shared_vpc_service_project":{"version":0,"block":{"attributes":{"host_project":{"type":"string","description":"The ID of a host project to associate.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_project":{"type":"string","description":"The ID of the project that will serve as a Shared VPC service project.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_snapshot":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"disk_size_gb":{"type":"number","description":"Size of the snapshot, specified in GB.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label_fingerprint":{"type":"string","description":"The fingerprint used for optimistic locking of this resource. Used\ninternally during updates.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Labels to apply to this Snapshot.","description_kind":"plain","optional":true},"licenses":{"type":["list","string"],"description":"A list of public visible licenses that apply to this snapshot. This\ncan be because the original image had licenses attached (such as a\nWindows image). snapshotEncryptionKey nested object Encrypts the\nsnapshot using a customer-supplied encryption key.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"snapshot_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"source_disk":{"type":"string","description":"A reference to the disk used to create this snapshot.","description_kind":"plain","required":true},"storage_bytes":{"type":"number","description":"A size of the storage used by the snapshot. As snapshots share\nstorage, this number is expected to change with snapshot\ncreation/deletion.","description_kind":"plain","computed":true},"storage_locations":{"type":["list","string"],"description":"Cloud Storage bucket storage location of the snapshot (regional or multi-regional).","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"A reference to the zone where the disk is hosted.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"snapshot_encryption_key":{"nesting_mode":"list","block":{"attributes":{"kms_key_self_link":{"type":"string","description":"The name of the encryption key that is stored in Google Cloud KMS.","description_kind":"plain","optional":true},"kms_key_service_account":{"type":"string","description":"The service account used for the encryption request for the given KMS key.\nIf absent, the Compute Engine Service Agent service account is used.","description_kind":"plain","optional":true},"raw_key":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.","description_kind":"plain","optional":true,"sensitive":true},"sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.","description_kind":"plain","computed":true}},"description":"The customer-supplied encryption key of the snapshot. Required if the\nsource snapshot is protected by a customer-supplied encryption key.","description_kind":"plain"},"max_items":1},"source_disk_encryption_key":{"nesting_mode":"list","block":{"attributes":{"kms_key_service_account":{"type":"string","description":"The service account used for the encryption request for the given KMS key.\nIf absent, the Compute Engine Service Agent service account is used.","description_kind":"plain","optional":true},"raw_key":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.","description_kind":"plain","optional":true,"sensitive":true}},"description":"The customer-supplied encryption key of the source snapshot. Required\nif the source snapshot is protected by a customer-supplied encryption\nkey.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_ssl_certificate":{"version":0,"block":{"attributes":{"certificate":{"type":"string","description":"The certificate in PEM format.\nThe certificate chain must be no greater than 5 certs long.\nThe chain must include at least one intermediate cert.","description_kind":"plain","required":true,"sensitive":true},"certificate_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.\n\n\nThese are in the same namespace as the managed SSL certificates.","description_kind":"plain","optional":true,"computed":true},"name_prefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with name.","description_kind":"plain","optional":true,"computed":true},"private_key":{"type":"string","description":"The write-only private key in PEM format.","description_kind":"plain","required":true,"sensitive":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_ssl_policy":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"custom_features":{"type":["set","string"],"description":"Profile specifies the set of SSL features that can be used by the\nload balancer when negotiating SSL with clients. This can be one of\n'COMPATIBLE', 'MODERN', 'RESTRICTED', or 'CUSTOM'. If using 'CUSTOM',\nthe set of SSL features to enable must be specified in the\n'customFeatures' field.\n\nSee the [official documentation](https://cloud.google.com/compute/docs/load-balancing/ssl-policies#profilefeaturesupport)\nfor which ciphers are available to use. **Note**: this argument\n*must* be present when using the 'CUSTOM' profile. This argument\n*must not* be present when using any other profile.","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"enabled_features":{"type":["set","string"],"description":"The list of features enabled in the SSL policy.","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource. A hash of the contents stored in this\nobject. This field is used in optimistic locking.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"min_tls_version":{"type":"string","description":"The minimum version of SSL protocol that can be used by the clients\nto establish a connection with the load balancer. Default value: \"TLS_1_0\" Possible values: [\"TLS_1_0\", \"TLS_1_1\", \"TLS_1_2\"]","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"profile":{"type":"string","description":"Profile specifies the set of SSL features that can be used by the\nload balancer when negotiating SSL with clients. If using 'CUSTOM',\nthe set of SSL features to enable must be specified in the\n'customFeatures' field.\n\nSee the [official documentation](https://cloud.google.com/compute/docs/load-balancing/ssl-policies#profilefeaturesupport)\nfor information on what cipher suites each profile provides. If\n'CUSTOM' is used, the 'custom_features' attribute **must be set**. Default value: \"COMPATIBLE\" Possible values: [\"COMPATIBLE\", \"MODERN\", \"RESTRICTED\", \"CUSTOM\"]","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_subnetwork":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource. This field can be set only at resource\ncreation time.","description_kind":"plain","optional":true},"external_ipv6_prefix":{"type":"string","description":"The range of external IPv6 addresses that are owned by this subnetwork.","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource. This field is used internally during updates of this resource.","description_kind":"plain","deprecated":true,"computed":true},"gateway_address":{"type":"string","description":"The gateway address for default routes to reach destination addresses\noutside this subnetwork.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_cidr_range":{"type":"string","description":"The range of internal addresses that are owned by this subnetwork.\nProvide this property when you create the subnetwork. For example,\n10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and\nnon-overlapping within a network. Only IPv4 is supported.","description_kind":"plain","required":true},"ipv6_access_type":{"type":"string","description":"The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation\nor the first time the subnet is updated into IPV4_IPV6 dual stack. If the ipv6_type is EXTERNAL then this subnet\ncannot enable direct path. Possible values: [\"EXTERNAL\"]","description_kind":"plain","optional":true},"ipv6_cidr_range":{"type":"string","description":"The range of internal IPv6 addresses that are owned by this subnetwork.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the resource, provided by the client when initially\ncreating the resource. The name must be 1-63 characters long, and\ncomply with RFC1035. Specifically, the name must be 1-63 characters\nlong and match the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which\nmeans the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit,\nexcept the last character, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"The network this subnet belongs to.\nOnly networks that are in the distributed mode can have subnetworks.","description_kind":"plain","required":true},"private_ip_google_access":{"type":"bool","description":"When enabled, VMs in this subnetwork without external IP addresses can\naccess Google APIs and services by using Private Google Access.","description_kind":"plain","optional":true},"private_ipv6_google_access":{"type":"string","description":"The private IPv6 google access type for the VMs in this subnet.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"purpose":{"type":"string","description":"The purpose of the resource. This field can be either PRIVATE\nor INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to\nINTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is\nreserved for Internal HTTP(S) Load Balancing. If unspecified, the\npurpose defaults to PRIVATE.\n\nIf set to INTERNAL_HTTPS_LOAD_BALANCER you must also set 'role'.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The GCP region for this subnetwork.","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description":"The role of subnetwork. Currently, this field is only used when\npurpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE\nor BACKUP. An ACTIVE subnetwork is one that is currently being used\nfor Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one that\nis ready to be promoted to ACTIVE or is currently draining. Possible values: [\"ACTIVE\", \"BACKUP\"]","description_kind":"plain","optional":true},"secondary_ip_range":{"type":["list",["object",{"ip_cidr_range":"string","range_name":"string"}]],"description":"An array of configurations for secondary IP ranges for VM instances\ncontained in this subnetwork. The primary IP of such VM must belong\nto the primary ipCidrRange of the subnetwork. The alias IPs may belong\nto either primary or secondary ranges.\n\n**Note**: This field uses [attr-as-block mode](https://www.terraform.io/docs/configuration/attr-as-blocks.html) to avoid\nbreaking users during the 0.12 upgrade. To explicitly send a list\nof zero objects you must use the following syntax:\n'example=[]'\nFor more details about this behavior, see [this section](https://www.terraform.io/docs/configuration/attr-as-blocks.html#defining-a-fixed-object-collection-value).","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"stack_type":{"type":"string","description":"The stack type for this subnet to identify whether the IPv6 feature is enabled or not.\nIf not specified IPV4_ONLY will be used. Possible values: [\"IPV4_ONLY\", \"IPV4_IPV6\"]","description_kind":"plain","optional":true,"computed":true}},"block_types":{"log_config":{"nesting_mode":"list","block":{"attributes":{"aggregation_interval":{"type":"string","description":"Can only be specified if VPC flow logging for this subnetwork is enabled.\nToggles the aggregation interval for collecting flow logs. Increasing the\ninterval time will reduce the amount of generated flow logs for long\nlasting connections. Default is an interval of 5 seconds per connection. Default value: \"INTERVAL_5_SEC\" Possible values: [\"INTERVAL_5_SEC\", \"INTERVAL_30_SEC\", \"INTERVAL_1_MIN\", \"INTERVAL_5_MIN\", \"INTERVAL_10_MIN\", \"INTERVAL_15_MIN\"]","description_kind":"plain","optional":true},"filter_expr":{"type":"string","description":"Export filter used to define which VPC flow logs should be logged, as as CEL expression. See\nhttps://cloud.google.com/vpc/docs/flow-logs#filtering for details on how to format this field.\nThe default value is 'true', which evaluates to include everything.","description_kind":"plain","optional":true},"flow_sampling":{"type":"number","description":"Can only be specified if VPC flow logging for this subnetwork is enabled.\nThe value of the field must be in [0, 1]. Set the sampling rate of VPC\nflow logs within the subnetwork where 1.0 means all collected logs are\nreported and 0.0 means no logs are reported. Default is 0.5 which means\nhalf of all collected logs are reported.","description_kind":"plain","optional":true},"metadata":{"type":"string","description":"Can only be specified if VPC flow logging for this subnetwork is enabled.\nConfigures whether metadata fields should be added to the reported VPC\nflow logs. Default value: \"INCLUDE_ALL_METADATA\" Possible values: [\"EXCLUDE_ALL_METADATA\", \"INCLUDE_ALL_METADATA\", \"CUSTOM_METADATA\"]","description_kind":"plain","optional":true},"metadata_fields":{"type":["set","string"],"description":"List of metadata fields that should be added to reported logs.\nCan only be specified if VPC flow logs for this subnetwork is enabled and \"metadata\" is set to CUSTOM_METADATA.","description_kind":"plain","optional":true}},"description":"Denotes the logging options for the subnetwork flow logs. If logging is enabled\nlogs will be exported to Stackdriver. This field cannot be set if the 'purpose' of this\nsubnetwork is 'INTERNAL_HTTPS_LOAD_BALANCER'","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_subnetwork_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"subnetwork":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_compute_subnetwork_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"subnetwork":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_compute_subnetwork_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"subnetwork":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_compute_target_grpc_proxy":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource. A hash of the contents stored in\nthis object. This field is used in optimistic locking. This field\nwill be ignored when inserting a TargetGrpcProxy. An up-to-date\nfingerprint must be provided in order to patch/update the\nTargetGrpcProxy; otherwise, the request will fail with error\n412 conditionNotMet. To see the latest fingerprint, make a get()\nrequest to retrieve the TargetGrpcProxy. A base64-encoded string.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource\nis created. The name must be 1-63 characters long, and comply\nwith RFC1035. Specifically, the name must be 1-63 characters long\nand match the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which\nmeans the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit,\nexcept the last character, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"self_link_with_id":{"type":"string","description":"Server-defined URL with id for the resource.","description_kind":"plain","computed":true},"url_map":{"type":"string","description":"URL to the UrlMap resource that defines the mapping from URL to\nthe BackendService. The protocol field in the BackendService\nmust be set to GRPC.","description_kind":"plain","optional":true},"validate_for_proxyless":{"type":"bool","description":"If true, indicates that the BackendServices referenced by\nthe urlMap may be accessed by gRPC applications without using\na sidecar proxy. This will enable configuration checks on urlMap\nand its referenced BackendServices to not allow unsupported features.\nA gRPC application must use \"xds:///\" scheme in the target URI\nof the service it is connecting to. If false, indicates that the\nBackendServices referenced by the urlMap will be accessed by gRPC\napplications via a sidecar proxy. In this case, a gRPC application\nmust not use \"xds:///\" scheme in the target URI of the service\nit is connecting to","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_target_http_proxy":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"proxy_bind":{"type":"bool","description":"This field only applies when the forwarding rule that references\nthis target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED.","description_kind":"plain","optional":true,"computed":true},"proxy_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"url_map":{"type":"string","description":"A reference to the UrlMap resource that defines the mapping from URL\nto the BackendService.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_target_https_proxy":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"proxy_bind":{"type":"bool","description":"This field only applies when the forwarding rule that references\nthis target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED.","description_kind":"plain","optional":true,"computed":true},"proxy_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"quic_override":{"type":"string","description":"Specifies the QUIC override policy for this resource. This determines\nwhether the load balancer will attempt to negotiate QUIC with clients\nor not. Can specify one of NONE, ENABLE, or DISABLE. If NONE is\nspecified, uses the QUIC policy with no user overrides, which is\nequivalent to DISABLE. Default value: \"NONE\" Possible values: [\"NONE\", \"ENABLE\", \"DISABLE\"]","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"ssl_certificates":{"type":["list","string"],"description":"A list of SslCertificate resources that are used to authenticate\nconnections between users and the load balancer. At least one SSL\ncertificate must be specified.","description_kind":"plain","required":true},"ssl_policy":{"type":"string","description":"A reference to the SslPolicy resource that will be associated with\nthe TargetHttpsProxy resource. If not set, the TargetHttpsProxy\nresource will not have any SSL policy configured.","description_kind":"plain","optional":true},"url_map":{"type":"string","description":"A reference to the UrlMap resource that defines the mapping from URL\nto the BackendService.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_target_instance":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description":"The Compute instance VM handling traffic for this target instance.\nAccepts the instance self-link, relative path\n(e.g. 'projects/project/zones/zone/instances/instance') or name. If\nname is given, the zone will default to the given zone or\nthe provider-default zone and the project will default to the\nprovider-level project.","description_kind":"plain","required":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"nat_policy":{"type":"string","description":"NAT option controlling how IPs are NAT'ed to the instance.\nCurrently only NO_NAT (default value) is supported. Default value: \"NO_NAT\" Possible values: [\"NO_NAT\"]","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"zone":{"type":"string","description":"URL of the zone where the target instance resides.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_target_pool":{"version":0,"block":{"attributes":{"backup_pool":{"type":"string","description":"URL to the backup target pool. Must also set failover_ratio.","description_kind":"plain","optional":true},"description":{"type":"string","description":"Textual description field.","description_kind":"plain","optional":true},"failover_ratio":{"type":"number","description":"Ratio (0 to 1) of failed nodes before using the backup pool (which must also be set).","description_kind":"plain","optional":true},"health_checks":{"type":["list","string"],"description":"List of zero or one health check name or self_link. Only legacy google_compute_http_health_check is supported.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instances":{"type":["set","string"],"description":"List of instances in the pool. They can be given as URLs, or in the form of \"zone/name\". Note that the instances need not exist at the time of target pool creation, so there is no need to use the Terraform interpolators to create a dependency on the instances from the target pool.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"A unique name for the resource, required by GCE. Changing this forces a new resource to be created.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Where the target pool resides. Defaults to project region.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"session_affinity":{"type":"string","description":"How to distribute load. Options are \"NONE\" (no affinity). \"CLIENT_IP\" (hash of the source/dest addresses / ports), and \"CLIENT_IP_PROTO\" also includes the protocol (default \"NONE\").","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_target_ssl_proxy":{"version":0,"block":{"attributes":{"backend_service":{"type":"string","description":"A reference to the BackendService resource.","description_kind":"plain","required":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to\nthe backend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"proxy_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"ssl_certificates":{"type":["list","string"],"description":"A list of SslCertificate resources that are used to authenticate\nconnections between users and the load balancer. At least one\nSSL certificate must be specified.","description_kind":"plain","required":true},"ssl_policy":{"type":"string","description":"A reference to the SslPolicy resource that will be associated with\nthe TargetSslProxy resource. If not set, the TargetSslProxy\nresource will not have any SSL policy configured.","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_target_tcp_proxy":{"version":0,"block":{"attributes":{"backend_service":{"type":"string","description":"A reference to the BackendService resource.","description_kind":"plain","required":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"proxy_bind":{"type":"bool","description":"This field only applies when the forwarding rule that references\nthis target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED.","description_kind":"plain","optional":true,"computed":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to\nthe backend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"proxy_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_url_map":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"default_service":{"type":"string","description":"The backend service or backend bucket to use when none of the given rules match.","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create\nthe resource.","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource. A hash of the contents stored in this object. This\nfield is used in optimistic locking.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"map_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is created. The\nname must be 1-63 characters long, and comply with RFC1035. Specifically, the\nname must be 1-63 characters long and match the regular expression\n'[a-z]([-a-z0-9]*[a-z0-9])?' which means the first character must be a lowercase\nletter, and all following characters must be a dash, lowercase letter, or digit,\nexcept the last character, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"default_route_action":{"nesting_mode":"list","block":{"block_types":{"cors_policy":{"nesting_mode":"list","block":{"attributes":{"allow_credentials":{"type":"bool","description":"In response to a preflight request, setting this to true indicates that the actual request can include user credentials.\nThis translates to the Access-Control-Allow-Credentials header.","description_kind":"plain","optional":true},"allow_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Headers header.","description_kind":"plain","optional":true},"allow_methods":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Methods header.","description_kind":"plain","optional":true},"allow_origin_regexes":{"type":["list","string"],"description":"Specifies the regular expression patterns that match allowed origins. For regular expression grammar\nplease see en.cppreference.com/w/cpp/regex/ecmascript\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.","description_kind":"plain","optional":true},"allow_origins":{"type":["list","string"],"description":"Specifies the list of origins that will be allowed to do CORS requests.\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect.","description_kind":"plain","optional":true},"expose_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Expose-Headers header.","description_kind":"plain","optional":true},"max_age":{"type":"number","description":"Specifies how long results of a preflight request can be cached in seconds.\nThis translates to the Access-Control-Max-Age header.","description_kind":"plain","optional":true}},"description":"The specification for allowing client side cross-origin requests. Please see\n[W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/)","description_kind":"plain"},"max_items":1},"fault_injection_policy":{"nesting_mode":"list","block":{"block_types":{"abort":{"nesting_mode":"list","block":{"attributes":{"http_status":{"type":"number","description":"The HTTP status code used to abort the request.\nThe value must be between 200 and 599 inclusive.","description_kind":"plain","optional":true},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.","description_kind":"plain","optional":true}},"description":"The specification for how client requests are aborted as part of fault injection.","description_kind":"plain"},"max_items":1},"delay":{"nesting_mode":"list","block":{"attributes":{"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.","description_kind":"plain","optional":true}},"block_types":{"fixed_delay":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years","description_kind":"plain","optional":true}},"description":"Specifies the value of the fixed delay interval.","description_kind":"plain"},"max_items":1}},"description":"The specification for how client requests are delayed as part of fault injection, before being sent to a backend service.","description_kind":"plain"},"max_items":1}},"description":"The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure.\nAs part of fault injection, when clients send requests to a backend service, delays can be introduced by Loadbalancer on a\npercentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted\nby the Loadbalancer for a percentage of requests.\n\ntimeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy.","description_kind":"plain"},"max_items":1},"request_mirror_policy":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The full or partial URL to the BackendService resource being mirrored to.","description_kind":"plain","required":true}},"description":"Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service.\nLoadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service,\nthe host / authority header is suffixed with -shadow.","description_kind":"plain"},"max_items":1},"retry_policy":{"nesting_mode":"list","block":{"attributes":{"num_retries":{"type":"number","description":"Specifies the allowed number retries. This number must be \u003e 0. If not specified, defaults to 1.","description_kind":"plain","optional":true},"retry_conditions":{"type":["list","string"],"description":"Specfies one or more conditions when this retry rule applies. Valid values are:\n\n* 5xx: Loadbalancer will attempt a retry if the backend service responds with any 5xx response code,\n or if the backend service does not respond at all, example: disconnects, reset, read timeout,\n* connection failure, and refused streams.\n* gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504.\n* connect-failure: Loadbalancer will retry on failures connecting to backend services,\n for example due to connection timeouts.\n* retriable-4xx: Loadbalancer will retry for retriable 4xx response codes.\n Currently the only retriable error supported is 409.\n* refused-stream:Loadbalancer will retry if the backend service resets the stream with a REFUSED_STREAM error code.\n This reset type indicates that it is safe to retry.\n* cancelled: Loadbalancer will retry if the gRPC status code in the response header is set to cancelled\n* deadline-exceeded: Loadbalancer will retry if the gRPC status code in the response header is set to deadline-exceeded\n* resource-exhausted: Loadbalancer will retry if the gRPC status code in the response header is set to resource-exhausted\n* unavailable: Loadbalancer will retry if the gRPC status code in the response header is set to unavailable","description_kind":"plain","optional":true}},"block_types":{"per_try_timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years","description_kind":"plain","optional":true}},"description":"Specifies a non-zero timeout per retry attempt.\n\nIf not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set,\nwill use the largest timeout among all backend services associated with the route.","description_kind":"plain"},"max_items":1}},"description":"Specifies the retry policy associated with this route.","description_kind":"plain"},"max_items":1},"timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years","description_kind":"plain","optional":true}},"description":"Specifies the timeout for the selected route. Timeout is computed from the time the request has been\nfully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries.\n\nIf not specified, will use the largest timeout among all backend services associated with the route.","description_kind":"plain"},"max_items":1},"url_rewrite":{"nesting_mode":"list","block":{"attributes":{"host_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected service, the request's host header is replaced\nwith contents of hostRewrite.\n\nThe value must be between 1 and 255 characters.","description_kind":"plain","optional":true},"path_prefix_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected backend service, the matching portion of the\nrequest's path is replaced by pathPrefixRewrite.\n\nThe value must be between 1 and 1024 characters.","description_kind":"plain","optional":true}},"description":"The spec to modify the URL of the request, prior to forwarding the request to the matched service.","description_kind":"plain"},"max_items":1},"weighted_backend_services":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The full or partial URL to the default BackendService resource. Before forwarding the\nrequest to backendService, the loadbalancer applies any relevant headerActions\nspecified as part of this backendServiceWeight.","description_kind":"plain","optional":true},"weight":{"type":"number","description":"Specifies the fraction of traffic sent to backendService, computed as\nweight / (sum of all weightedBackendService weights in routeAction) .\n\nThe selection of a backend service is determined only for new traffic. Once a user's request\nhas been directed to a backendService, subsequent requests will be sent to the same backendService\nas determined by the BackendService's session affinity policy.\n\nThe value must be between 0 and 1000","description_kind":"plain","optional":true}},"block_types":{"header_action":{"nesting_mode":"list","block":{"attributes":{"request_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the request prior to\nforwarding the request to the backendService.","description_kind":"plain","optional":true},"response_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the response prior to sending the\nresponse back to the client.","description_kind":"plain","optional":true}},"block_types":{"request_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header to add.","description_kind":"plain","optional":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","optional":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.","description_kind":"plain","optional":true}},"description":"Headers to add to a matching request prior to forwarding the request to the backendService.","description_kind":"plain"}},"response_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header to add.","description_kind":"plain","optional":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","optional":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.","description_kind":"plain","optional":true}},"description":"Headers to add the response prior to sending the response back to the client.","description_kind":"plain"}}},"description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService.\n\nheaderAction specified here take effect before headerAction in the enclosing\nHttpRouteRule, PathMatcher and UrlMap.","description_kind":"plain"},"max_items":1}},"description":"A list of weighted backend services to send traffic to when a route match occurs.\nThe weights determine the fraction of traffic that flows to their corresponding backend service.\nIf all traffic needs to go to a single backend service, there must be one weightedBackendService\nwith weight set to a non 0 number.\n\nOnce a backendService is identified and before forwarding the request to the backend service,\nadvanced routing actions like Url rewrites and header transformations are applied depending on\nadditional settings specified in this HttpRouteAction.","description_kind":"plain"}}},"description":"defaultRouteAction takes effect when none of the hostRules match. The load balancer performs advanced routing actions\nlike URL rewrites, header transformations, etc. prior to forwarding the request to the selected backend.\nIf defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService\nis set, defaultRouteAction cannot contain any weightedBackendServices.\n\nOnly one of defaultRouteAction or defaultUrlRedirect must be set.","description_kind":"plain"},"max_items":1},"default_url_redirect":{"nesting_mode":"list","block":{"attributes":{"host_redirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one that was\nsupplied in the request. The value must be between 1 and 255 characters.","description_kind":"plain","optional":true},"https_redirect":{"type":"bool","description":"If set to true, the URL scheme in the redirected request is set to https. If set to\nfalse, the URL scheme of the redirected request will remain the same as that of the\nrequest. This must only be set for UrlMaps used in TargetHttpProxys. Setting this\ntrue for TargetHttpsProxy is not permitted. The default is set to false.","description_kind":"plain","optional":true},"path_redirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one that was\nsupplied in the request. pathRedirect cannot be supplied together with\nprefixRedirect. Supply one alone or neither. If neither is supplied, the path of the\noriginal request will be used for the redirect. The value must be between 1 and 1024\ncharacters.","description_kind":"plain","optional":true},"prefix_redirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,\nretaining the remaining portion of the URL before redirecting the request.\nprefixRedirect cannot be supplied together with pathRedirect. Supply one alone or\nneither. If neither is supplied, the path of the original request will be used for\nthe redirect. The value must be between 1 and 1024 characters.","description_kind":"plain","optional":true},"redirect_response_code":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n\n* FOUND, which corresponds to 302.\n\n* SEE_OTHER which corresponds to 303.\n\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method\nwill be retained.\n\n* PERMANENT_REDIRECT, which corresponds to 308. In this case,\nthe request method will be retained. Possible values: [\"FOUND\", \"MOVED_PERMANENTLY_DEFAULT\", \"PERMANENT_REDIRECT\", \"SEE_OTHER\", \"TEMPORARY_REDIRECT\"]","description_kind":"plain","optional":true},"strip_query":{"type":"bool","description":"If set to true, any accompanying query portion of the original URL is removed prior\nto redirecting the request. If set to false, the query portion of the original URL is\nretained. The default is set to false.\n This field is required to ensure an empty block is not set. The normal default value is false.","description_kind":"plain","required":true}},"description":"When none of the specified hostRules match, the request is redirected to a URL specified\nby defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or\ndefaultRouteAction must not be set.","description_kind":"plain"},"max_items":1},"header_action":{"nesting_mode":"list","block":{"attributes":{"request_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the request\nprior to forwarding the request to the backendService.","description_kind":"plain","optional":true},"response_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the response\nprior to sending the response back to the client.","description_kind":"plain","optional":true}},"block_types":{"request_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add to a matching request prior to forwarding the request to the\nbackendService.","description_kind":"plain"}},"response_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add the response prior to sending the response back to the client.","description_kind":"plain"}}},"description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService. The headerAction specified here take effect after\nheaderAction specified under pathMatcher.","description_kind":"plain"},"max_items":1},"host_rule":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create\nthe resource.","description_kind":"plain","optional":true},"hosts":{"type":["set","string"],"description":"The list of host patterns to match. They must be valid hostnames, except * will\nmatch any string of ([a-z0-9-.]*). In that case, * must be the first character\nand must be followed in the pattern by either - or ..","description_kind":"plain","required":true},"path_matcher":{"type":"string","description":"The name of the PathMatcher to use to match the path portion of the URL if the\nhostRule matches the URL's host portion.","description_kind":"plain","required":true}},"description":"The list of HostRules to use against the URL.","description_kind":"plain"}},"path_matcher":{"nesting_mode":"list","block":{"attributes":{"default_service":{"type":"string","description":"The backend service or backend bucket to use when none of the given paths match.","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create\nthe resource.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name to which this PathMatcher is referred by the HostRule.","description_kind":"plain","required":true}},"block_types":{"default_route_action":{"nesting_mode":"list","block":{"block_types":{"cors_policy":{"nesting_mode":"list","block":{"attributes":{"allow_credentials":{"type":"bool","description":"In response to a preflight request, setting this to true indicates that the actual request can include user credentials.\nThis translates to the Access-Control-Allow-Credentials header.","description_kind":"plain","optional":true},"allow_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Headers header.","description_kind":"plain","optional":true},"allow_methods":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Methods header.","description_kind":"plain","optional":true},"allow_origin_regexes":{"type":["list","string"],"description":"Specifies the regular expression patterns that match allowed origins. For regular expression grammar\nplease see en.cppreference.com/w/cpp/regex/ecmascript\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.","description_kind":"plain","optional":true},"allow_origins":{"type":["list","string"],"description":"Specifies the list of origins that will be allowed to do CORS requests.\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect.","description_kind":"plain","optional":true},"expose_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Expose-Headers header.","description_kind":"plain","optional":true},"max_age":{"type":"number","description":"Specifies how long results of a preflight request can be cached in seconds.\nThis translates to the Access-Control-Max-Age header.","description_kind":"plain","optional":true}},"description":"The specification for allowing client side cross-origin requests. Please see\n[W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/)","description_kind":"plain"},"max_items":1},"fault_injection_policy":{"nesting_mode":"list","block":{"block_types":{"abort":{"nesting_mode":"list","block":{"attributes":{"http_status":{"type":"number","description":"The HTTP status code used to abort the request.\nThe value must be between 200 and 599 inclusive.","description_kind":"plain","optional":true},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.","description_kind":"plain","optional":true}},"description":"The specification for how client requests are aborted as part of fault injection.","description_kind":"plain"},"max_items":1},"delay":{"nesting_mode":"list","block":{"attributes":{"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.","description_kind":"plain","optional":true}},"block_types":{"fixed_delay":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years","description_kind":"plain","optional":true}},"description":"Specifies the value of the fixed delay interval.","description_kind":"plain"},"max_items":1}},"description":"The specification for how client requests are delayed as part of fault injection, before being sent to a backend service.","description_kind":"plain"},"max_items":1}},"description":"The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure.\nAs part of fault injection, when clients send requests to a backend service, delays can be introduced by Loadbalancer on a\npercentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted\nby the Loadbalancer for a percentage of requests.\n\ntimeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy.","description_kind":"plain"},"max_items":1},"request_mirror_policy":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The full or partial URL to the BackendService resource being mirrored to.","description_kind":"plain","required":true}},"description":"Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service.\nLoadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service,\nthe host / authority header is suffixed with -shadow.","description_kind":"plain"},"max_items":1},"retry_policy":{"nesting_mode":"list","block":{"attributes":{"num_retries":{"type":"number","description":"Specifies the allowed number retries. This number must be \u003e 0. If not specified, defaults to 1.","description_kind":"plain","optional":true},"retry_conditions":{"type":["list","string"],"description":"Specfies one or more conditions when this retry rule applies. Valid values are:\n\n* 5xx: Loadbalancer will attempt a retry if the backend service responds with any 5xx response code,\n or if the backend service does not respond at all, example: disconnects, reset, read timeout,\n* connection failure, and refused streams.\n* gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504.\n* connect-failure: Loadbalancer will retry on failures connecting to backend services,\n for example due to connection timeouts.\n* retriable-4xx: Loadbalancer will retry for retriable 4xx response codes.\n Currently the only retriable error supported is 409.\n* refused-stream:Loadbalancer will retry if the backend service resets the stream with a REFUSED_STREAM error code.\n This reset type indicates that it is safe to retry.\n* cancelled: Loadbalancer will retry if the gRPC status code in the response header is set to cancelled\n* deadline-exceeded: Loadbalancer will retry if the gRPC status code in the response header is set to deadline-exceeded\n* resource-exhausted: Loadbalancer will retry if the gRPC status code in the response header is set to resource-exhausted\n* unavailable: Loadbalancer will retry if the gRPC status code in the response header is set to unavailable","description_kind":"plain","optional":true}},"block_types":{"per_try_timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years","description_kind":"plain","optional":true}},"description":"Specifies a non-zero timeout per retry attempt.\n\nIf not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set,\nwill use the largest timeout among all backend services associated with the route.","description_kind":"plain"},"max_items":1}},"description":"Specifies the retry policy associated with this route.","description_kind":"plain"},"max_items":1},"timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years","description_kind":"plain","optional":true}},"description":"Specifies the timeout for the selected route. Timeout is computed from the time the request has been\nfully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries.\n\nIf not specified, will use the largest timeout among all backend services associated with the route.","description_kind":"plain"},"max_items":1},"url_rewrite":{"nesting_mode":"list","block":{"attributes":{"host_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected service, the request's host header is replaced\nwith contents of hostRewrite.\n\nThe value must be between 1 and 255 characters.","description_kind":"plain","optional":true},"path_prefix_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected backend service, the matching portion of the\nrequest's path is replaced by pathPrefixRewrite.\n\nThe value must be between 1 and 1024 characters.","description_kind":"plain","optional":true}},"description":"The spec to modify the URL of the request, prior to forwarding the request to the matched service.","description_kind":"plain"},"max_items":1},"weighted_backend_services":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The full or partial URL to the default BackendService resource. Before forwarding the\nrequest to backendService, the loadbalancer applies any relevant headerActions\nspecified as part of this backendServiceWeight.","description_kind":"plain","optional":true},"weight":{"type":"number","description":"Specifies the fraction of traffic sent to backendService, computed as\nweight / (sum of all weightedBackendService weights in routeAction) .\n\nThe selection of a backend service is determined only for new traffic. Once a user's request\nhas been directed to a backendService, subsequent requests will be sent to the same backendService\nas determined by the BackendService's session affinity policy.\n\nThe value must be between 0 and 1000","description_kind":"plain","optional":true}},"block_types":{"header_action":{"nesting_mode":"list","block":{"attributes":{"request_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the request prior to\nforwarding the request to the backendService.","description_kind":"plain","optional":true},"response_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the response prior to sending the\nresponse back to the client.","description_kind":"plain","optional":true}},"block_types":{"request_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header to add.","description_kind":"plain","optional":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","optional":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.","description_kind":"plain","optional":true}},"description":"Headers to add to a matching request prior to forwarding the request to the backendService.","description_kind":"plain"}},"response_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header to add.","description_kind":"plain","optional":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","optional":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.","description_kind":"plain","optional":true}},"description":"Headers to add the response prior to sending the response back to the client.","description_kind":"plain"}}},"description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService.\n\nheaderAction specified here take effect before headerAction in the enclosing\nHttpRouteRule, PathMatcher and UrlMap.","description_kind":"plain"},"max_items":1}},"description":"A list of weighted backend services to send traffic to when a route match occurs.\nThe weights determine the fraction of traffic that flows to their corresponding backend service.\nIf all traffic needs to go to a single backend service, there must be one weightedBackendService\nwith weight set to a non 0 number.\n\nOnce a backendService is identified and before forwarding the request to the backend service,\nadvanced routing actions like Url rewrites and header transformations are applied depending on\nadditional settings specified in this HttpRouteAction.","description_kind":"plain"}}},"description":"defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs\nadvanced routing actions like URL rewrites, header transformations, etc. prior to forwarding the request\nto the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set.\nConversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices.\n\nOnly one of defaultRouteAction or defaultUrlRedirect must be set.","description_kind":"plain"},"max_items":1},"default_url_redirect":{"nesting_mode":"list","block":{"attributes":{"host_redirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one that was\nsupplied in the request. The value must be between 1 and 255 characters.","description_kind":"plain","optional":true},"https_redirect":{"type":"bool","description":"If set to true, the URL scheme in the redirected request is set to https. If set to\nfalse, the URL scheme of the redirected request will remain the same as that of the\nrequest. This must only be set for UrlMaps used in TargetHttpProxys. Setting this\ntrue for TargetHttpsProxy is not permitted. The default is set to false.","description_kind":"plain","optional":true},"path_redirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one that was\nsupplied in the request. pathRedirect cannot be supplied together with\nprefixRedirect. Supply one alone or neither. If neither is supplied, the path of the\noriginal request will be used for the redirect. The value must be between 1 and 1024\ncharacters.","description_kind":"plain","optional":true},"prefix_redirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,\nretaining the remaining portion of the URL before redirecting the request.\nprefixRedirect cannot be supplied together with pathRedirect. Supply one alone or\nneither. If neither is supplied, the path of the original request will be used for\nthe redirect. The value must be between 1 and 1024 characters.","description_kind":"plain","optional":true},"redirect_response_code":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n\n* FOUND, which corresponds to 302.\n\n* SEE_OTHER which corresponds to 303.\n\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method\nwill be retained.\n\n* PERMANENT_REDIRECT, which corresponds to 308. In this case,\nthe request method will be retained. Possible values: [\"FOUND\", \"MOVED_PERMANENTLY_DEFAULT\", \"PERMANENT_REDIRECT\", \"SEE_OTHER\", \"TEMPORARY_REDIRECT\"]","description_kind":"plain","optional":true},"strip_query":{"type":"bool","description":"If set to true, any accompanying query portion of the original URL is removed prior\nto redirecting the request. If set to false, the query portion of the original URL is\nretained.\n This field is required to ensure an empty block is not set. The normal default value is false.","description_kind":"plain","required":true}},"description":"When none of the specified hostRules match, the request is redirected to a URL specified\nby defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or\ndefaultRouteAction must not be set.","description_kind":"plain"},"max_items":1},"header_action":{"nesting_mode":"list","block":{"attributes":{"request_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the request\nprior to forwarding the request to the backendService.","description_kind":"plain","optional":true},"response_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the response\nprior to sending the response back to the client.","description_kind":"plain","optional":true}},"block_types":{"request_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add to a matching request prior to forwarding the request to the\nbackendService.","description_kind":"plain"}},"response_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add the response prior to sending the response back to the client.","description_kind":"plain"}}},"description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService. HeaderAction specified here are applied after the\nmatching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap","description_kind":"plain"},"max_items":1},"path_rule":{"nesting_mode":"list","block":{"attributes":{"paths":{"type":["set","string"],"description":"The list of path patterns to match. Each must start with / and the only place a\n\\* is allowed is at the end following a /. The string fed to the path matcher\ndoes not include any text after the first ? or #, and those chars are not\nallowed here.","description_kind":"plain","required":true},"service":{"type":"string","description":"The backend service or backend bucket to use if any of the given paths match.","description_kind":"plain","optional":true}},"block_types":{"route_action":{"nesting_mode":"list","block":{"block_types":{"cors_policy":{"nesting_mode":"list","block":{"attributes":{"allow_credentials":{"type":"bool","description":"In response to a preflight request, setting this to true indicates that the\nactual request can include user credentials. This translates to the Access-\nControl-Allow-Credentials header. Defaults to false.","description_kind":"plain","optional":true},"allow_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Headers header.","description_kind":"plain","optional":true},"allow_methods":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Methods header.","description_kind":"plain","optional":true},"allow_origin_regexes":{"type":["list","string"],"description":"Specifies the regular expression patterns that match allowed origins. For\nregular expression grammar please see en.cppreference.com/w/cpp/regex/ecmascript\nAn origin is allowed if it matches either allow_origins or allow_origin_regex.","description_kind":"plain","optional":true},"allow_origins":{"type":["list","string"],"description":"Specifies the list of origins that will be allowed to do CORS requests. An\norigin is allowed if it matches either allow_origins or allow_origin_regex.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If true, specifies the CORS policy is disabled.","description_kind":"plain","required":true},"expose_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Expose-Headers header.","description_kind":"plain","optional":true},"max_age":{"type":"number","description":"Specifies how long the results of a preflight request can be cached. This\ntranslates to the content for the Access-Control-Max-Age header.","description_kind":"plain","optional":true}},"description":"The specification for allowing client side cross-origin requests. Please see W3C\nRecommendation for Cross Origin Resource Sharing","description_kind":"plain"},"max_items":1},"fault_injection_policy":{"nesting_mode":"list","block":{"block_types":{"abort":{"nesting_mode":"list","block":{"attributes":{"http_status":{"type":"number","description":"The HTTP status code used to abort the request. The value must be between 200\nand 599 inclusive.","description_kind":"plain","required":true},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) which will be\naborted as part of fault injection. The value must be between 0.0 and 100.0\ninclusive.","description_kind":"plain","required":true}},"description":"The specification for how client requests are aborted as part of fault\ninjection.","description_kind":"plain"},"max_items":1},"delay":{"nesting_mode":"list","block":{"attributes":{"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) on which delay will\nbe introduced as part of fault injection. The value must be between 0.0 and\n100.0 inclusive.","description_kind":"plain","required":true}},"block_types":{"fixed_delay":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies the value of the fixed delay interval.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"The specification for how client requests are delayed as part of fault\ninjection, before being sent to a backend service.","description_kind":"plain"},"max_items":1}},"description":"The specification for fault injection introduced into traffic to test the\nresiliency of clients to backend service failure. As part of fault injection,\nwhen clients send requests to a backend service, delays can be introduced by\nLoadbalancer on a percentage of requests before sending those request to the\nbackend service. Similarly requests from clients can be aborted by the\nLoadbalancer for a percentage of requests. timeout and retry_policy will be\nignored by clients that are configured with a fault_injection_policy.","description_kind":"plain"},"max_items":1},"request_mirror_policy":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The BackendService resource being mirrored to.","description_kind":"plain","required":true}},"description":"Specifies the policy on how requests intended for the route's backends are\nshadowed to a separate mirrored backend service. Loadbalancer does not wait for\nresponses from the shadow service. Prior to sending traffic to the shadow\nservice, the host / authority header is suffixed with -shadow.","description_kind":"plain"},"max_items":1},"retry_policy":{"nesting_mode":"list","block":{"attributes":{"num_retries":{"type":"number","description":"Specifies the allowed number retries. This number must be \u003e 0.","description_kind":"plain","optional":true},"retry_conditions":{"type":["list","string"],"description":"Specifies one or more conditions when this retry rule applies. Valid values are:\n\n* 5xx: Loadbalancer will attempt a retry if the backend service responds with\nany 5xx response code, or if the backend service does not respond at all,\nexample: disconnects, reset, read timeout, connection failure, and refused\nstreams.\n* gateway-error: Similar to 5xx, but only applies to response codes\n502, 503 or 504.\n* connect-failure: Loadbalancer will retry on failures\nconnecting to backend services, for example due to connection timeouts.\n* retriable-4xx: Loadbalancer will retry for retriable 4xx response codes.\nCurrently the only retriable error supported is 409.\n* refused-stream: Loadbalancer will retry if the backend service resets the stream with a\nREFUSED_STREAM error code. This reset type indicates that it is safe to retry.\n* cancelled: Loadbalancer will retry if the gRPC status code in the response\nheader is set to cancelled\n* deadline-exceeded: Loadbalancer will retry if the\ngRPC status code in the response header is set to deadline-exceeded\n* resource-exhausted: Loadbalancer will retry if the gRPC status code in the response\nheader is set to resource-exhausted\n* unavailable: Loadbalancer will retry if\nthe gRPC status code in the response header is set to unavailable","description_kind":"plain","optional":true}},"block_types":{"per_try_timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies a non-zero timeout per retry attempt.","description_kind":"plain"},"max_items":1}},"description":"Specifies the retry policy associated with this route.","description_kind":"plain"},"max_items":1},"timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies the timeout for the selected route. Timeout is computed from the time\nthe request is has been fully processed (i.e. end-of-stream) up until the\nresponse has been completely processed. Timeout includes all retries. If not\nspecified, the default value is 15 seconds.","description_kind":"plain"},"max_items":1},"url_rewrite":{"nesting_mode":"list","block":{"attributes":{"host_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected service, the request's host\nheader is replaced with contents of hostRewrite. The value must be between 1 and\n255 characters.","description_kind":"plain","optional":true},"path_prefix_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected backend service, the matching\nportion of the request's path is replaced by pathPrefixRewrite. The value must\nbe between 1 and 1024 characters.","description_kind":"plain","optional":true}},"description":"The spec to modify the URL of the request, prior to forwarding the request to\nthe matched service","description_kind":"plain"},"max_items":1},"weighted_backend_services":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The default BackendService resource. Before\nforwarding the request to backendService, the loadbalancer applies any relevant\nheaderActions specified as part of this backendServiceWeight.","description_kind":"plain","required":true},"weight":{"type":"number","description":"Specifies the fraction of traffic sent to backendService, computed as weight /\n(sum of all weightedBackendService weights in routeAction) . The selection of a\nbackend service is determined only for new traffic. Once a user's request has\nbeen directed to a backendService, subsequent requests will be sent to the same\nbackendService as determined by the BackendService's session affinity policy.\nThe value must be between 0 and 1000","description_kind":"plain","required":true}},"block_types":{"header_action":{"nesting_mode":"list","block":{"attributes":{"request_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the request\nprior to forwarding the request to the backendService.","description_kind":"plain","optional":true},"response_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the response\nprior to sending the response back to the client.","description_kind":"plain","optional":true}},"block_types":{"request_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add to a matching request prior to forwarding the request to the\nbackendService.","description_kind":"plain"}},"response_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add the response prior to sending the response back to the client.","description_kind":"plain"}}},"description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService. headerAction specified here take effect before\nheaderAction in the enclosing HttpRouteRule, PathMatcher and UrlMap.","description_kind":"plain"},"max_items":1}},"description":"A list of weighted backend services to send traffic to when a route match\noccurs. The weights determine the fraction of traffic that flows to their\ncorresponding backend service. If all traffic needs to go to a single backend\nservice, there must be one weightedBackendService with weight set to a non 0\nnumber. Once a backendService is identified and before forwarding the request to\nthe backend service, advanced routing actions like Url rewrites and header\ntransformations are applied depending on additional settings specified in this\nHttpRouteAction.","description_kind":"plain"}}},"description":"In response to a matching path, the load balancer performs advanced routing\nactions like URL rewrites, header transformations, etc. prior to forwarding the\nrequest to the selected backend. If routeAction specifies any\nweightedBackendServices, service must not be set. Conversely if service is set,\nrouteAction cannot contain any weightedBackendServices. Only one of routeAction\nor urlRedirect must be set.","description_kind":"plain"},"max_items":1},"url_redirect":{"nesting_mode":"list","block":{"attributes":{"host_redirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one\nthat was supplied in the request. The value must be between 1 and 255\ncharacters.","description_kind":"plain","optional":true},"https_redirect":{"type":"bool","description":"If set to true, the URL scheme in the redirected request is set to https.\nIf set to false, the URL scheme of the redirected request will remain the\nsame as that of the request. This must only be set for UrlMaps used in\nTargetHttpProxys. Setting this true for TargetHttpsProxy is not\npermitted. The default is set to false.","description_kind":"plain","optional":true},"path_redirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one\nthat was supplied in the request. pathRedirect cannot be supplied\ntogether with prefixRedirect. Supply one alone or neither. If neither is\nsupplied, the path of the original request will be used for the redirect.\nThe value must be between 1 and 1024 characters.","description_kind":"plain","optional":true},"prefix_redirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the\nHttpRouteRuleMatch, retaining the remaining portion of the URL before\nredirecting the request. prefixRedirect cannot be supplied together with\npathRedirect. Supply one alone or neither. If neither is supplied, the\npath of the original request will be used for the redirect. The value\nmust be between 1 and 1024 characters.","description_kind":"plain","optional":true},"redirect_response_code":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n\n* FOUND, which corresponds to 302.\n\n* SEE_OTHER which corresponds to 303.\n\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method\nwill be retained.\n\n* PERMANENT_REDIRECT, which corresponds to 308. In this case,\nthe request method will be retained. Possible values: [\"FOUND\", \"MOVED_PERMANENTLY_DEFAULT\", \"PERMANENT_REDIRECT\", \"SEE_OTHER\", \"TEMPORARY_REDIRECT\"]","description_kind":"plain","optional":true},"strip_query":{"type":"bool","description":"If set to true, any accompanying query portion of the original URL is\nremoved prior to redirecting the request. If set to false, the query\nportion of the original URL is retained.\n This field is required to ensure an empty block is not set. The normal default value is false.","description_kind":"plain","required":true}},"description":"When a path pattern is matched, the request is redirected to a URL specified\nby urlRedirect. If urlRedirect is specified, service or routeAction must not\nbe set.","description_kind":"plain"},"max_items":1}},"description":"The list of path rules. Use this list instead of routeRules when routing based\non simple path matching is all that's required. The order by which path rules\nare specified does not matter. Matches are always done on the longest-path-first\nbasis. For example: a pathRule with a path /a/b/c/* will match before /a/b/*\nirrespective of the order in which those paths appear in this list. Within a\ngiven pathMatcher, only one of pathRules or routeRules must be set.","description_kind":"plain"}},"route_rules":{"nesting_mode":"list","block":{"attributes":{"priority":{"type":"number","description":"For routeRules within a given pathMatcher, priority determines the order\nin which load balancer will interpret routeRules. RouteRules are evaluated\nin order of priority, from the lowest to highest number. The priority of\na rule decreases as its number increases (1, 2, 3, N+1). The first rule\nthat matches the request is applied.\n\nYou cannot configure two or more routeRules with the same priority.\nPriority for each rule must be set to a number between 0 and\n2147483647 inclusive.\n\nPriority numbers can have gaps, which enable you to add or remove rules\nin the future without affecting the rest of the rules. For example,\n1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which\nyou could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the\nfuture without any impact on existing rules.","description_kind":"plain","required":true},"service":{"type":"string","description":"The backend service resource to which traffic is\ndirected if this rule is matched. If routeAction is additionally specified,\nadvanced routing actions like URL Rewrites, etc. take effect prior to sending\nthe request to the backend. However, if service is specified, routeAction cannot\ncontain any weightedBackendService s. Conversely, if routeAction specifies any\nweightedBackendServices, service must not be specified. Only one of urlRedirect,\nservice or routeAction.weightedBackendService must be set.","description_kind":"plain","optional":true}},"block_types":{"header_action":{"nesting_mode":"list","block":{"attributes":{"request_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the request\nprior to forwarding the request to the backendService.","description_kind":"plain","optional":true},"response_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the response\nprior to sending the response back to the client.","description_kind":"plain","optional":true}},"block_types":{"request_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add to a matching request prior to forwarding the request to the\nbackendService.","description_kind":"plain"}},"response_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add the response prior to sending the response back to the client.","description_kind":"plain"}}},"description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService. The headerAction specified here are applied before\nthe matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].r\nouteAction.weightedBackendService.backendServiceWeightAction[].headerAction","description_kind":"plain"},"max_items":1},"match_rules":{"nesting_mode":"list","block":{"attributes":{"full_path_match":{"type":"string","description":"For satisfying the matchRule condition, the path of the request must exactly\nmatch the value specified in fullPathMatch after removing any query parameters\nand anchor that may be part of the original URL. FullPathMatch must be between 1\nand 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must\nbe specified.","description_kind":"plain","optional":true},"ignore_case":{"type":"bool","description":"Specifies that prefixMatch and fullPathMatch matches are case sensitive.\nDefaults to false.","description_kind":"plain","optional":true},"prefix_match":{"type":"string","description":"For satisfying the matchRule condition, the request's path must begin with the\nspecified prefixMatch. prefixMatch must begin with a /. The value must be\nbetween 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or\nregexMatch must be specified.","description_kind":"plain","optional":true},"regex_match":{"type":"string","description":"For satisfying the matchRule condition, the path of the request must satisfy the\nregular expression specified in regexMatch after removing any query parameters\nand anchor supplied with the original URL. For regular expression grammar please\nsee en.cppreference.com/w/cpp/regex/ecmascript Only one of prefixMatch,\nfullPathMatch or regexMatch must be specified.","description_kind":"plain","optional":true}},"block_types":{"header_matches":{"nesting_mode":"list","block":{"attributes":{"exact_match":{"type":"string","description":"The value should exactly match contents of exactMatch. Only one of exactMatch,\nprefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.","description_kind":"plain","optional":true},"header_name":{"type":"string","description":"The name of the HTTP header to match. For matching against the HTTP request's\nauthority, use a headerMatch with the header name \":authority\". For matching a\nrequest's method, use the headerName \":method\".","description_kind":"plain","required":true},"invert_match":{"type":"bool","description":"If set to false, the headerMatch is considered a match if the match criteria\nabove are met. If set to true, the headerMatch is considered a match if the\nmatch criteria above are NOT met. Defaults to false.","description_kind":"plain","optional":true},"prefix_match":{"type":"string","description":"The value of the header must start with the contents of prefixMatch. Only one of\nexactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch\nmust be set.","description_kind":"plain","optional":true},"present_match":{"type":"bool","description":"A header with the contents of headerName must exist. The match takes place\nwhether or not the request's header has a value or not. Only one of exactMatch,\nprefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.","description_kind":"plain","optional":true},"regex_match":{"type":"string","description":"The value of the header must match the regular expression specified in\nregexMatch. For regular expression grammar, please see:\nen.cppreference.com/w/cpp/regex/ecmascript For matching against a port\nspecified in the HTTP request, use a headerMatch with headerName set to PORT and\na regular expression that satisfies the RFC2616 Host header's port specifier.\nOnly one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or\nrangeMatch must be set.","description_kind":"plain","optional":true},"suffix_match":{"type":"string","description":"The value of the header must end with the contents of suffixMatch. Only one of\nexactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch\nmust be set.","description_kind":"plain","optional":true}},"block_types":{"range_match":{"nesting_mode":"list","block":{"attributes":{"range_end":{"type":"number","description":"The end of the range (exclusive).","description_kind":"plain","required":true},"range_start":{"type":"number","description":"The start of the range (inclusive).","description_kind":"plain","required":true}},"description":"The header value must be an integer and its value must be in the range specified\nin rangeMatch. If the header does not contain an integer, number or is empty,\nthe match fails. For example for a range [-5, 0] - -3 will match. - 0 will\nnot match. - 0.25 will not match. - -3someString will not match. Only one of\nexactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch\nmust be set.","description_kind":"plain"},"max_items":1}},"description":"Specifies a list of header match criteria, all of which must match corresponding\nheaders in the request.","description_kind":"plain"}},"metadata_filters":{"nesting_mode":"list","block":{"attributes":{"filter_match_criteria":{"type":"string","description":"Specifies how individual filterLabel matches within the list of filterLabels\ncontribute towards the overall metadataFilter match. Supported values are:\n - MATCH_ANY: At least one of the filterLabels must have a matching label in the\nprovided metadata.\n - MATCH_ALL: All filterLabels must have matching labels in\nthe provided metadata. Possible values: [\"MATCH_ALL\", \"MATCH_ANY\"]","description_kind":"plain","required":true}},"block_types":{"filter_labels":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of metadata label. The name can have a maximum length of 1024 characters\nand must be at least 1 character long.","description_kind":"plain","required":true},"value":{"type":"string","description":"The value of the label must match the specified value. value can have a maximum\nlength of 1024 characters.","description_kind":"plain","required":true}},"description":"The list of label value pairs that must match labels in the provided metadata\nbased on filterMatchCriteria This list must not be empty and can have at the\nmost 64 entries.","description_kind":"plain"},"min_items":1,"max_items":64}},"description":"Opaque filter criteria used by Loadbalancer to restrict routing configuration to\na limited set xDS compliant clients. In their xDS requests to Loadbalancer, xDS\nclients present node metadata. If a match takes place, the relevant routing\nconfiguration is made available to those proxies. For each metadataFilter in\nthis list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the\nfilterLabels must match the corresponding label provided in the metadata. If its\nfilterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match\nwith corresponding labels in the provided metadata. metadataFilters specified\nhere can be overrides those specified in ForwardingRule that refers to this\nUrlMap. metadataFilters only applies to Loadbalancers that have their\nloadBalancingScheme set to INTERNAL_SELF_MANAGED.","description_kind":"plain"}},"query_parameter_matches":{"nesting_mode":"list","block":{"attributes":{"exact_match":{"type":"string","description":"The queryParameterMatch matches if the value of the parameter exactly matches\nthe contents of exactMatch. Only one of presentMatch, exactMatch and regexMatch\nmust be set.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the query parameter to match. The query parameter must exist in the\nrequest, in the absence of which the request match fails.","description_kind":"plain","required":true},"present_match":{"type":"bool","description":"Specifies that the queryParameterMatch matches if the request contains the query\nparameter, irrespective of whether the parameter has a value or not. Only one of\npresentMatch, exactMatch and regexMatch must be set.","description_kind":"plain","optional":true},"regex_match":{"type":"string","description":"The queryParameterMatch matches if the value of the parameter matches the\nregular expression specified by regexMatch. For the regular expression grammar,\nplease see en.cppreference.com/w/cpp/regex/ecmascript Only one of presentMatch,\nexactMatch and regexMatch must be set.","description_kind":"plain","optional":true}},"description":"Specifies a list of query parameter match criteria, all of which must match\ncorresponding query parameters in the request.","description_kind":"plain"}}},"description":"The rules for determining a match.","description_kind":"plain"}},"route_action":{"nesting_mode":"list","block":{"block_types":{"cors_policy":{"nesting_mode":"list","block":{"attributes":{"allow_credentials":{"type":"bool","description":"In response to a preflight request, setting this to true indicates that the\nactual request can include user credentials. This translates to the Access-\nControl-Allow-Credentials header. Defaults to false.","description_kind":"plain","optional":true},"allow_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Headers header.","description_kind":"plain","optional":true},"allow_methods":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Methods header.","description_kind":"plain","optional":true},"allow_origin_regexes":{"type":["list","string"],"description":"Specifies the regular expression patterns that match allowed origins. For\nregular expression grammar please see en.cppreference.com/w/cpp/regex/ecmascript\nAn origin is allowed if it matches either allow_origins or allow_origin_regex.","description_kind":"plain","optional":true},"allow_origins":{"type":["list","string"],"description":"Specifies the list of origins that will be allowed to do CORS requests. An\norigin is allowed if it matches either allow_origins or allow_origin_regex.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If true, specifies the CORS policy is disabled.\nwhich indicates that the CORS policy is in effect. Defaults to false.","description_kind":"plain","optional":true},"expose_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Expose-Headers header.","description_kind":"plain","optional":true},"max_age":{"type":"number","description":"Specifies how long the results of a preflight request can be cached. This\ntranslates to the content for the Access-Control-Max-Age header.","description_kind":"plain","optional":true}},"description":"The specification for allowing client side cross-origin requests. Please see W3C\nRecommendation for Cross Origin Resource Sharing","description_kind":"plain"},"max_items":1},"fault_injection_policy":{"nesting_mode":"list","block":{"block_types":{"abort":{"nesting_mode":"list","block":{"attributes":{"http_status":{"type":"number","description":"The HTTP status code used to abort the request. The value must be between 200\nand 599 inclusive.","description_kind":"plain","optional":true},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) which will be\naborted as part of fault injection. The value must be between 0.0 and 100.0\ninclusive.","description_kind":"plain","optional":true}},"description":"The specification for how client requests are aborted as part of fault\ninjection.","description_kind":"plain"},"max_items":1},"delay":{"nesting_mode":"list","block":{"attributes":{"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) on which delay will\nbe introduced as part of fault injection. The value must be between 0.0 and\n100.0 inclusive.","description_kind":"plain","optional":true}},"block_types":{"fixed_delay":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies the value of the fixed delay interval.","description_kind":"plain"},"max_items":1}},"description":"The specification for how client requests are delayed as part of fault\ninjection, before being sent to a backend service.","description_kind":"plain"},"max_items":1}},"description":"The specification for fault injection introduced into traffic to test the\nresiliency of clients to backend service failure. As part of fault injection,\nwhen clients send requests to a backend service, delays can be introduced by\nLoadbalancer on a percentage of requests before sending those request to the\nbackend service. Similarly requests from clients can be aborted by the\nLoadbalancer for a percentage of requests. timeout and retry_policy will be\nignored by clients that are configured with a fault_injection_policy.","description_kind":"plain"},"max_items":1},"request_mirror_policy":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The BackendService resource being mirrored to.","description_kind":"plain","required":true}},"description":"Specifies the policy on how requests intended for the route's backends are\nshadowed to a separate mirrored backend service. Loadbalancer does not wait for\nresponses from the shadow service. Prior to sending traffic to the shadow\nservice, the host / authority header is suffixed with -shadow.","description_kind":"plain"},"max_items":1},"retry_policy":{"nesting_mode":"list","block":{"attributes":{"num_retries":{"type":"number","description":"Specifies the allowed number retries. This number must be \u003e 0.","description_kind":"plain","required":true},"retry_conditions":{"type":["list","string"],"description":"Specfies one or more conditions when this retry rule applies. Valid values are:\n\n* 5xx: Loadbalancer will attempt a retry if the backend service responds with\n any 5xx response code, or if the backend service does not respond at all,\n example: disconnects, reset, read timeout, connection failure, and refused\n streams.\n* gateway-error: Similar to 5xx, but only applies to response codes\n 502, 503 or 504.\n* connect-failure: Loadbalancer will retry on failures\n connecting to backend services, for example due to connection timeouts.\n* retriable-4xx: Loadbalancer will retry for retriable 4xx response codes.\n Currently the only retriable error supported is 409.\n* refused-stream: Loadbalancer will retry if the backend service resets the stream with a\n REFUSED_STREAM error code. This reset type indicates that it is safe to retry.\n* cancelled: Loadbalancer will retry if the gRPC status code in the response\n header is set to cancelled\n* deadline-exceeded: Loadbalancer will retry if the\n gRPC status code in the response header is set to deadline-exceeded\n* resource-exhausted: Loadbalancer will retry if the gRPC status code in the response\n header is set to resource-exhausted\n* unavailable: Loadbalancer will retry if the gRPC status code in\n the response header is set to unavailable","description_kind":"plain","optional":true}},"block_types":{"per_try_timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies a non-zero timeout per retry attempt.\nIf not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction\nis not set, will use the largest timeout among all backend services associated with the route.","description_kind":"plain"},"max_items":1}},"description":"Specifies the retry policy associated with this route.","description_kind":"plain"},"max_items":1},"timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies the timeout for the selected route. Timeout is computed from the time\nthe request is has been fully processed (i.e. end-of-stream) up until the\nresponse has been completely processed. Timeout includes all retries. If not\nspecified, the default value is 15 seconds.","description_kind":"plain"},"max_items":1},"url_rewrite":{"nesting_mode":"list","block":{"attributes":{"host_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected service, the request's host\nheader is replaced with contents of hostRewrite. The value must be between 1 and\n255 characters.","description_kind":"plain","optional":true},"path_prefix_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected backend service, the matching\nportion of the request's path is replaced by pathPrefixRewrite. The value must\nbe between 1 and 1024 characters.","description_kind":"plain","optional":true}},"description":"The spec to modify the URL of the request, prior to forwarding the request to\nthe matched service","description_kind":"plain"},"max_items":1},"weighted_backend_services":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The default BackendService resource. Before\nforwarding the request to backendService, the loadbalancer applies any relevant\nheaderActions specified as part of this backendServiceWeight.","description_kind":"plain","required":true},"weight":{"type":"number","description":"Specifies the fraction of traffic sent to backendService, computed as weight /\n(sum of all weightedBackendService weights in routeAction) . The selection of a\nbackend service is determined only for new traffic. Once a user's request has\nbeen directed to a backendService, subsequent requests will be sent to the same\nbackendService as determined by the BackendService's session affinity policy.\nThe value must be between 0 and 1000","description_kind":"plain","required":true}},"block_types":{"header_action":{"nesting_mode":"list","block":{"attributes":{"request_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the request\nprior to forwarding the request to the backendService.","description_kind":"plain","optional":true},"response_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the response\nprior to sending the response back to the client.","description_kind":"plain","optional":true}},"block_types":{"request_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add to a matching request prior to forwarding the request to the\nbackendService.","description_kind":"plain"}},"response_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add the response prior to sending the response back to the client.","description_kind":"plain"}}},"description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService. headerAction specified here take effect before\nheaderAction in the enclosing HttpRouteRule, PathMatcher and UrlMap.","description_kind":"plain"},"max_items":1}},"description":"A list of weighted backend services to send traffic to when a route match\noccurs. The weights determine the fraction of traffic that flows to their\ncorresponding backend service. If all traffic needs to go to a single backend\nservice, there must be one weightedBackendService with weight set to a non 0\nnumber. Once a backendService is identified and before forwarding the request to\nthe backend service, advanced routing actions like Url rewrites and header\ntransformations are applied depending on additional settings specified in this\nHttpRouteAction.","description_kind":"plain"}}},"description":"In response to a matching matchRule, the load balancer performs advanced routing\nactions like URL rewrites, header transformations, etc. prior to forwarding the\nrequest to the selected backend. If routeAction specifies any\nweightedBackendServices, service must not be set. Conversely if service is set,\nrouteAction cannot contain any weightedBackendServices. Only one of routeAction\nor urlRedirect must be set.","description_kind":"plain"},"max_items":1},"url_redirect":{"nesting_mode":"list","block":{"attributes":{"host_redirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one that was\nsupplied in the request. The value must be between 1 and 255 characters.","description_kind":"plain","optional":true},"https_redirect":{"type":"bool","description":"If set to true, the URL scheme in the redirected request is set to https. If set\nto false, the URL scheme of the redirected request will remain the same as that\nof the request. This must only be set for UrlMaps used in TargetHttpProxys.\nSetting this true for TargetHttpsProxy is not permitted. Defaults to false.","description_kind":"plain","optional":true},"path_redirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one that was\nsupplied in the request. Only one of pathRedirect or prefixRedirect must be\nspecified. The value must be between 1 and 1024 characters.","description_kind":"plain","optional":true},"prefix_redirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,\nretaining the remaining portion of the URL before redirecting the request.","description_kind":"plain","optional":true},"redirect_response_code":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n\n* FOUND, which corresponds to 302.\n\n* SEE_OTHER which corresponds to 303.\n\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method will be retained.\n\n* PERMANENT_REDIRECT, which corresponds to 308. In this case, the request method will be retained. Possible values: [\"FOUND\", \"MOVED_PERMANENTLY_DEFAULT\", \"PERMANENT_REDIRECT\", \"SEE_OTHER\", \"TEMPORARY_REDIRECT\"]","description_kind":"plain","optional":true},"strip_query":{"type":"bool","description":"If set to true, any accompanying query portion of the original URL is removed\nprior to redirecting the request. If set to false, the query portion of the\noriginal URL is retained. Defaults to false.","description_kind":"plain","optional":true}},"description":"When this rule is matched, the request is redirected to a URL specified by\nurlRedirect. If urlRedirect is specified, service or routeAction must not be\nset.","description_kind":"plain"},"max_items":1}},"description":"The list of ordered HTTP route rules. Use this list instead of pathRules when\nadvanced route matching and routing actions are desired. The order of specifying\nrouteRules matters: the first rule that matches will cause its specified routing\naction to take effect. Within a given pathMatcher, only one of pathRules or\nrouteRules must be set. routeRules are not supported in UrlMaps intended for\nExternal load balancers.","description_kind":"plain"}}},"description":"The list of named PathMatchers to use against the URL.","description_kind":"plain"}},"test":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Description of this test case.","description_kind":"plain","optional":true},"host":{"type":"string","description":"Host portion of the URL.","description_kind":"plain","required":true},"path":{"type":"string","description":"Path portion of the URL.","description_kind":"plain","required":true},"service":{"type":"string","description":"The backend service or backend bucket link that should be matched by this test.","description_kind":"plain","required":true}},"description":"The list of expected URL mapping tests. Request to update this UrlMap will\nsucceed only if all of the test cases pass. You can specify a maximum of 100\ntests per UrlMap.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_vpn_gateway":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"gateway_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"The network this VPN gateway is accepting traffic for.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region this gateway should sit in.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_vpn_tunnel":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"detailed_status":{"type":"string","description":"Detailed status message for the VPN tunnel.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ike_version":{"type":"number","description":"IKE protocol version to use when establishing the VPN tunnel with\npeer VPN gateway.\nAcceptable IKE versions are 1 or 2. Default version is 2.","description_kind":"plain","optional":true},"local_traffic_selector":{"type":["set","string"],"description":"Local traffic selector to use when establishing the VPN tunnel with\npeer VPN gateway. The value should be a CIDR formatted string,\nfor example '192.168.0.0/16'. The ranges should be disjoint.\nOnly IPv4 is supported.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. The name must be 1-63 characters long, and\ncomply with RFC1035. Specifically, the name must be 1-63\ncharacters long and match the regular expression\n'[a-z]([-a-z0-9]*[a-z0-9])?' which means the first character\nmust be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit,\nexcept the last character, which cannot be a dash.","description_kind":"plain","required":true},"peer_external_gateway":{"type":"string","description":"URL of the peer side external VPN gateway to which this VPN tunnel is connected.","description_kind":"plain","optional":true},"peer_external_gateway_interface":{"type":"number","description":"The interface ID of the external VPN gateway to which this VPN tunnel is connected.","description_kind":"plain","optional":true},"peer_gcp_gateway":{"type":"string","description":"URL of the peer side HA GCP VPN gateway to which this VPN tunnel is connected.\nIf provided, the VPN tunnel will automatically use the same vpn_gateway_interface\nID in the peer GCP VPN gateway.\nThis field must reference a 'google_compute_ha_vpn_gateway' resource.","description_kind":"plain","optional":true},"peer_ip":{"type":"string","description":"IP address of the peer VPN gateway. Only IPv4 is supported.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region where the tunnel is located. If unset, is set to the region of 'target_vpn_gateway'.","description_kind":"plain","optional":true,"computed":true},"remote_traffic_selector":{"type":["set","string"],"description":"Remote traffic selector to use when establishing the VPN tunnel with\npeer VPN gateway. The value should be a CIDR formatted string,\nfor example '192.168.0.0/16'. The ranges should be disjoint.\nOnly IPv4 is supported.","description_kind":"plain","optional":true,"computed":true},"router":{"type":"string","description":"URL of router resource to be used for dynamic routing.","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"shared_secret":{"type":"string","description":"Shared secret used to set the secure session between the Cloud VPN\ngateway and the peer VPN gateway.","description_kind":"plain","required":true,"sensitive":true},"shared_secret_hash":{"type":"string","description":"Hash of the shared secret.","description_kind":"plain","computed":true},"target_vpn_gateway":{"type":"string","description":"URL of the Target VPN gateway with which this VPN tunnel is\nassociated.","description_kind":"plain","optional":true},"tunnel_id":{"type":"string","description":"The unique identifier for the resource. This identifier is defined by the server.","description_kind":"plain","computed":true},"vpn_gateway":{"type":"string","description":"URL of the VPN gateway with which this VPN tunnel is associated.\nThis must be used if a High Availability VPN gateway resource is created.\nThis field must reference a 'google_compute_ha_vpn_gateway' resource.","description_kind":"plain","optional":true},"vpn_gateway_interface":{"type":"number","description":"The interface ID of the VPN gateway with which this VPN tunnel is associated.","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_container_analysis_note":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"The time this note was created.","description_kind":"plain","computed":true},"expiration_time":{"type":"string","description":"Time of expiration for this note. Leave empty if note does not expire.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kind":{"type":"string","description":"The type of analysis this note describes","description_kind":"plain","computed":true},"long_description":{"type":"string","description":"A detailed description of the note","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the note.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"related_note_names":{"type":["set","string"],"description":"Names of other notes related to this note.","description_kind":"plain","optional":true},"short_description":{"type":"string","description":"A one sentence description of the note.","description_kind":"plain","optional":true},"update_time":{"type":"string","description":"The time this note was last updated.","description_kind":"plain","computed":true}},"block_types":{"attestation_authority":{"nesting_mode":"list","block":{"block_types":{"hint":{"nesting_mode":"list","block":{"attributes":{"human_readable_name":{"type":"string","description":"The human readable name of this Attestation Authority, for\nexample \"qa\".","description_kind":"plain","required":true}},"description":"This submessage provides human-readable hints about the purpose of\nthe AttestationAuthority. Because the name of a Note acts as its\nresource reference, it is important to disambiguate the canonical\nname of the Note (which might be a UUID for security purposes)\nfrom \"readable\" names more suitable for debug output. Note that\nthese hints should NOT be used to look up AttestationAuthorities\nin security sensitive contexts, such as when looking up\nAttestations to verify.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Note kind that represents a logical attestation \"role\" or \"authority\".\nFor example, an organization might have one AttestationAuthority for\n\"QA\" and one for \"build\". This Note is intended to act strictly as a\ngrouping mechanism for the attached Occurrences (Attestations). This\ngrouping mechanism also provides a security boundary, since IAM ACLs\ngate the ability for a principle to attach an Occurrence to a given\nNote. It also provides a single point of lookup to find all attached\nAttestation Occurrences, even if they don't all live in the same\nproject.","description_kind":"plain"},"min_items":1,"max_items":1},"related_url":{"nesting_mode":"set","block":{"attributes":{"label":{"type":"string","description":"Label to describe usage of the URL","description_kind":"plain","optional":true},"url":{"type":"string","description":"Specific URL associated with the resource.","description_kind":"plain","required":true}},"description":"URLs associated with this note and related metadata.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_container_analysis_occurrence":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"The time when the repository was created.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kind":{"type":"string","description":"The note kind which explicitly denotes which of the occurrence\ndetails are specified. This field can be used as a filter in list\nrequests.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the occurrence.","description_kind":"plain","computed":true},"note_name":{"type":"string","description":"The analysis note associated with this occurrence, in the form of\nprojects/[PROJECT]/notes/[NOTE_ID]. This field can be used as a\nfilter in list requests.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"remediation":{"type":"string","description":"A description of actions that can be taken to remedy the note.","description_kind":"plain","optional":true},"resource_uri":{"type":"string","description":"Required. Immutable. A URI that represents the resource for which\nthe occurrence applies. For example,\nhttps://gcr.io/project/image@sha256:123abc for a Docker image.","description_kind":"plain","required":true},"update_time":{"type":"string","description":"The time when the repository was last updated.","description_kind":"plain","computed":true}},"block_types":{"attestation":{"nesting_mode":"list","block":{"attributes":{"serialized_payload":{"type":"string","description":"The serialized payload that is verified by one or\nmore signatures. A base64-encoded string.","description_kind":"plain","required":true}},"block_types":{"signatures":{"nesting_mode":"set","block":{"attributes":{"public_key_id":{"type":"string","description":"The identifier for the public key that verifies this\nsignature. MUST be an RFC3986 conformant\nURI. * When possible, the key id should be an\nimmutable reference, such as a cryptographic digest.\nExamples of valid values:\n\n* OpenPGP V4 public key fingerprint. See https://www.iana.org/assignments/uri-schemes/prov/openpgp4fpr\n for more details on this scheme.\n * 'openpgp4fpr:74FAF3B861BDA0870C7B6DEF607E48D2A663AEEA'\n* RFC6920 digest-named SubjectPublicKeyInfo (digest of the DER serialization):\n * \"ni:///sha-256;cD9o9Cq6LG3jD0iKXqEi_vdjJGecm_iXkbqVoScViaU\"","description_kind":"plain","required":true},"signature":{"type":"string","description":"The content of the signature, an opaque bytestring.\nThe payload that this signature verifies MUST be\nunambiguously provided with the Signature during\nverification. A wrapper message might provide the\npayload explicitly. Alternatively, a message might\nhave a canonical serialization that can always be\nunambiguously computed to derive the payload.","description_kind":"plain","optional":true}},"description":"One or more signatures over serializedPayload.\nVerifier implementations should consider this attestation\nmessage verified if at least one signature verifies\nserializedPayload. See Signature in common.proto for more\ndetails on signature structure and verification.","description_kind":"plain"},"min_items":1}},"description":"Occurrence that represents a single \"attestation\". The authenticity\nof an attestation can be verified using the attached signature.\nIf the verifier trusts the public key of the signer, then verifying\nthe signature is sufficient to establish trust. In this circumstance,\nthe authority to which this attestation is attached is primarily\nuseful for lookup (how to find this attestation if you already\nknow the authority and artifact to be verified) and intent (for\nwhich authority this attestation was intended to sign.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_container_cluster":{"version":1,"block":{"attributes":{"cluster_ipv4_cidr":{"type":"string","description":"The IP address range of the Kubernetes pods in this cluster in CIDR notation (e.g. 10.96.0.0/14). Leave blank to have one automatically chosen or specify a /14 block in 10.0.0.0/8. This field will only work for routes-based clusters, where ip_allocation_policy is not defined.","description_kind":"plain","optional":true,"computed":true},"datapath_provider":{"type":"string","description":"The desired datapath provider for this cluster. By default, uses the IPTables-based kube-proxy implementation.","description_kind":"plain","optional":true,"computed":true},"default_max_pods_per_node":{"type":"number","description":"The default maximum number of pods per node in this cluster. This doesn't work on \"routes-based\" clusters, clusters that don't have IP Aliasing enabled.","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description":" Description of the cluster.","description_kind":"plain","optional":true},"enable_autopilot":{"type":"bool","description":"Enable Autopilot for this cluster.","description_kind":"plain","optional":true},"enable_binary_authorization":{"type":"bool","description":"Enable Binary Authorization for this cluster. If enabled, all container images will be validated by Google Binary Authorization.","description_kind":"plain","optional":true},"enable_intranode_visibility":{"type":"bool","description":"Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network.","description_kind":"plain","optional":true,"computed":true},"enable_kubernetes_alpha":{"type":"bool","description":"Whether to enable Kubernetes Alpha features for this cluster. Note that when this option is enabled, the cluster cannot be upgraded and will be automatically deleted after 30 days.","description_kind":"plain","optional":true},"enable_legacy_abac":{"type":"bool","description":"Whether the ABAC authorizer is enabled for this cluster. When enabled, identities in the system, including service accounts, nodes, and controllers, will have statically granted permissions beyond those provided by the RBAC configuration or IAM. Defaults to false.","description_kind":"plain","optional":true},"enable_shielded_nodes":{"type":"bool","description":"Enable Shielded Nodes features on all nodes in this cluster. Defaults to true.","description_kind":"plain","optional":true},"enable_tpu":{"type":"bool","description":"Whether to enable Cloud TPU resources in this cluster.","description_kind":"plain","optional":true},"endpoint":{"type":"string","description":"The IP address of this cluster's Kubernetes master.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"initial_node_count":{"type":"number","description":"The number of nodes to create in this cluster's default node pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Must be set if node_pool is not set. If you're using google_container_node_pool objects with no default node pool, you'll need to set this to a value of at least 1, alongside setting remove_default_node_pool to true.","description_kind":"plain","optional":true},"label_fingerprint":{"type":"string","description":"The fingerprint of the set of labels for this cluster.","description_kind":"plain","computed":true},"location":{"type":"string","description":"The location (region or zone) in which the cluster master will be created, as well as the default node location. If you specify a zone (such as us-central1-a), the cluster will be a zonal cluster with a single cluster master. If you specify a region (such as us-west1), the cluster will be a regional cluster with multiple masters spread across zones in the region, and with default node locations in those zones as well.","description_kind":"plain","optional":true,"computed":true},"logging_service":{"type":"string","description":"The logging service that the cluster should write logs to. Available options include logging.googleapis.com(Legacy Stackdriver), logging.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Logging), and none. Defaults to logging.googleapis.com/kubernetes.","description_kind":"plain","optional":true,"computed":true},"master_version":{"type":"string","description":"The current version of the master in the cluster. This may be different than the min_master_version set in the config if the master has been updated by GKE.","description_kind":"plain","computed":true},"min_master_version":{"type":"string","description":"The minimum version of the master. GKE will auto-update the master to new versions, so this does not guarantee the current master version--use the read-only master_version field to obtain that. If unset, the cluster's version will be set by GKE to the version of the most recent official release (which is not necessarily the latest version).","description_kind":"plain","optional":true},"monitoring_service":{"type":"string","description":"The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com(Legacy Stackdriver), monitoring.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Monitoring), and none. Defaults to monitoring.googleapis.com/kubernetes.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the cluster, unique within the project and location.","description_kind":"plain","required":true},"network":{"type":"string","description":"The name or self_link of the Google Compute Engine network to which the cluster is connected. For Shared VPC, set this to the self link of the shared network.","description_kind":"plain","optional":true},"networking_mode":{"type":"string","description":"Determines whether alias IPs or routes will be used for pod IPs in the cluster.","description_kind":"plain","optional":true,"computed":true},"node_locations":{"type":["set","string"],"description":"The list of zones in which the cluster's nodes are located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If this is specified for a zonal cluster, omit the cluster's zone.","description_kind":"plain","optional":true,"computed":true},"node_version":{"type":"string","description":"The Kubernetes version on the nodes. Must either be unset or set to the same value as min_master_version on create. Defaults to the default version set by GKE which is not necessarily the latest version. This only affects nodes in the default node pool. While a fuzzy version can be specified, it's recommended that you specify explicit versions as Terraform will see spurious diffs when fuzzy versions are used. See the google_container_engine_versions data source's version_prefix field to approximate fuzzy versions in a Terraform-compatible way. To update nodes in other node pools, use the version attribute on the node pool.","description_kind":"plain","optional":true,"computed":true},"operation":{"type":"string","description_kind":"plain","computed":true},"private_ipv6_google_access":{"type":"string","description":"The desired state of IPv6 connectivity to Google Services. By default, no private IPv6 access to or from Google Services (all access will be via IPv4).","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"remove_default_node_pool":{"type":"bool","description":"If true, deletes the default node pool upon cluster creation. If you're using google_container_node_pool resources with no default node pool, this should be set to true, alongside setting initial_node_count to at least 1.","description_kind":"plain","optional":true},"resource_labels":{"type":["map","string"],"description":"The GCE resource labels (a map of key/value pairs) to be applied to the cluster.","description_kind":"plain","optional":true},"self_link":{"type":"string","description":"Server-defined URL for the resource.","description_kind":"plain","computed":true},"services_ipv4_cidr":{"type":"string","description":"The IP address range of the Kubernetes services in this cluster, in CIDR notation (e.g. 1.2.3.4/29). Service addresses are typically put in the last /16 from the container CIDR.","description_kind":"plain","computed":true},"subnetwork":{"type":"string","description":"The name or self_link of the Google Compute Engine subnetwork in which the cluster's instances are launched.","description_kind":"plain","optional":true,"computed":true},"tpu_ipv4_cidr_block":{"type":"string","description":"The IP address range of the Cloud TPUs in this cluster, in CIDR notation (e.g. 1.2.3.4/29).","description_kind":"plain","computed":true}},"block_types":{"addons_config":{"nesting_mode":"list","block":{"block_types":{"cloudrun_config":{"nesting_mode":"list","block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","required":true},"load_balancer_type":{"type":"string","description_kind":"plain","optional":true}},"description":"The status of the CloudRun addon. It is disabled by default. Set disabled = false to enable.","description_kind":"plain"},"max_items":1},"horizontal_pod_autoscaling":{"nesting_mode":"list","block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","required":true}},"description":"The status of the Horizontal Pod Autoscaling addon, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods. It ensures that a Heapster pod is running in the cluster, which is also used by the Cloud Monitoring service. It is enabled by default; set disabled = true to disable.","description_kind":"plain"},"max_items":1},"http_load_balancing":{"nesting_mode":"list","block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","required":true}},"description":"The status of the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster. It is enabled by default; set disabled = true to disable.","description_kind":"plain"},"max_items":1},"network_policy_config":{"nesting_mode":"list","block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","required":true}},"description":"Whether we should enable the network policy addon for the master. This must be enabled in order to enable network policy for the nodes. To enable this, you must also define a network_policy block, otherwise nothing will happen. It can only be disabled if the nodes already do not have network policies enabled. Defaults to disabled; set disabled = false to enable.","description_kind":"plain"},"max_items":1}},"description":"The configuration for addons supported by GKE.","description_kind":"plain"},"max_items":1},"authenticator_groups_config":{"nesting_mode":"list","block":{"attributes":{"security_group":{"type":"string","description":"The name of the RBAC security group for use with Google security groups in Kubernetes RBAC. Group name must be in format gke-security-groups@yourdomain.com.","description_kind":"plain","required":true}},"description":"Configuration for the Google Groups for GKE feature.","description_kind":"plain"},"max_items":1},"cluster_autoscaling":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Whether node auto-provisioning is enabled. Resource limits for cpu and memory must be defined to enable node auto-provisioning.","description_kind":"plain","required":true}},"block_types":{"auto_provisioning_defaults":{"nesting_mode":"list","block":{"attributes":{"oauth_scopes":{"type":["list","string"],"description":"Scopes that are used by NAP when creating node pools.","description_kind":"plain","optional":true,"computed":true},"service_account":{"type":"string","description":"The Google Cloud Platform Service Account to be used by the node VMs.","description_kind":"plain","optional":true}},"description":"Contains defaults for a node pool created by NAP.","description_kind":"plain"},"max_items":1},"resource_limits":{"nesting_mode":"list","block":{"attributes":{"maximum":{"type":"number","description":"Maximum amount of the resource in the cluster.","description_kind":"plain","optional":true},"minimum":{"type":"number","description":"Minimum amount of the resource in the cluster.","description_kind":"plain","optional":true},"resource_type":{"type":"string","description":"The type of the resource. For example, cpu and memory. See the guide to using Node Auto-Provisioning for a list of types.","description_kind":"plain","required":true}},"description":"Global constraints for machine resources in the cluster. Configuring the cpu and memory types is required if node auto-provisioning is enabled. These limits will apply to node pool autoscaling in addition to node auto-provisioning.","description_kind":"plain"}}},"description":"Per-cluster configuration of Node Auto-Provisioning with Cluster Autoscaler to automatically adjust the size of the cluster and create/delete node pools based on the current needs of the cluster's workload. See the guide to using Node Auto-Provisioning for more details.","description_kind":"plain"},"max_items":1},"database_encryption":{"nesting_mode":"list","block":{"attributes":{"key_name":{"type":"string","description":"The key to use to encrypt/decrypt secrets.","description_kind":"plain","optional":true},"state":{"type":"string","description":"ENCRYPTED or DECRYPTED.","description_kind":"plain","required":true}},"description":"Application-layer Secrets Encryption settings. The object format is {state = string, key_name = string}. Valid values of state are: \"ENCRYPTED\"; \"DECRYPTED\". key_name is the name of a CloudKMS key.","description_kind":"plain"},"max_items":1},"default_snat_status":{"nesting_mode":"list","block":{"attributes":{"disabled":{"type":"bool","description":"When disabled is set to false, default IP masquerade rules will be applied to the nodes to prevent sNAT on cluster internal traffic.","description_kind":"plain","required":true}},"description":"Whether the cluster disables default in-node sNAT rules. In-node sNAT rules will be disabled when defaultSnatStatus is disabled.","description_kind":"plain"},"max_items":1},"ip_allocation_policy":{"nesting_mode":"list","block":{"attributes":{"cluster_ipv4_cidr_block":{"type":"string","description":"The IP address range for the cluster pod IPs. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use.","description_kind":"plain","optional":true,"computed":true},"cluster_secondary_range_name":{"type":"string","description":"The name of the existing secondary range in the cluster's subnetwork to use for pod IP addresses. Alternatively, cluster_ipv4_cidr_block can be used to automatically create a GKE-managed one.","description_kind":"plain","optional":true,"computed":true},"services_ipv4_cidr_block":{"type":"string","description":"The IP address range of the services IPs in this cluster. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use.","description_kind":"plain","optional":true,"computed":true},"services_secondary_range_name":{"type":"string","description":"The name of the existing secondary range in the cluster's subnetwork to use for service ClusterIPs. Alternatively, services_ipv4_cidr_block can be used to automatically create a GKE-managed one.","description_kind":"plain","optional":true,"computed":true}},"description":"Configuration of cluster IP allocation for VPC-native clusters. Adding this block enables IP aliasing, making the cluster VPC-native instead of routes-based.","description_kind":"plain"},"max_items":1},"logging_config":{"nesting_mode":"list","block":{"attributes":{"enable_components":{"type":["list","string"],"description":"GKE components exposing logs. Valid values include SYSTEM_COMPONENTS and WORKLOADS.","description_kind":"plain","required":true}},"description":"Logging configuration for the cluster.","description_kind":"plain"},"max_items":1},"maintenance_policy":{"nesting_mode":"list","block":{"block_types":{"daily_maintenance_window":{"nesting_mode":"list","block":{"attributes":{"duration":{"type":"string","description_kind":"plain","computed":true},"start_time":{"type":"string","description_kind":"plain","required":true}},"description":"Time window specified for daily maintenance operations. Specify start_time in RFC3339 format \"HH:MM”, where HH : [00-23] and MM : [00-59] GMT.","description_kind":"plain"},"max_items":1},"maintenance_exclusion":{"nesting_mode":"set","block":{"attributes":{"end_time":{"type":"string","description_kind":"plain","required":true},"exclusion_name":{"type":"string","description_kind":"plain","required":true},"start_time":{"type":"string","description_kind":"plain","required":true}},"description":"Exceptions to maintenance window. Non-emergency maintenance should not occur in these windows.","description_kind":"plain"},"max_items":3},"recurring_window":{"nesting_mode":"list","block":{"attributes":{"end_time":{"type":"string","description_kind":"plain","required":true},"recurrence":{"type":"string","description_kind":"plain","required":true},"start_time":{"type":"string","description_kind":"plain","required":true}},"description":"Time window for recurring maintenance operations.","description_kind":"plain"},"max_items":1}},"description":"The maintenance policy to use for the cluster.","description_kind":"plain"},"max_items":1},"master_auth":{"nesting_mode":"list","block":{"attributes":{"client_certificate":{"type":"string","description":"Base64 encoded public certificate used by clients to authenticate to the cluster endpoint.","description_kind":"plain","computed":true},"client_key":{"type":"string","description":"Base64 encoded private key used by clients to authenticate to the cluster endpoint.","description_kind":"plain","computed":true,"sensitive":true},"cluster_ca_certificate":{"type":"string","description":"Base64 encoded public certificate that is the root of trust for the cluster.","description_kind":"plain","computed":true}},"block_types":{"client_certificate_config":{"nesting_mode":"list","block":{"attributes":{"issue_client_certificate":{"type":"bool","description":"Whether client certificate authorization is enabled for this cluster.","description_kind":"plain","required":true}},"description":"Whether client certificate authorization is enabled for this cluster.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"The authentication information for accessing the Kubernetes master. Some values in this block are only returned by the API if your service account has permission to get credentials for your GKE cluster. If you see an unexpected diff unsetting your client cert, ensure you have the container.clusters.getCredentials permission.","description_kind":"plain"},"max_items":1},"master_authorized_networks_config":{"nesting_mode":"list","block":{"block_types":{"cidr_blocks":{"nesting_mode":"set","block":{"attributes":{"cidr_block":{"type":"string","description":"External network that can access Kubernetes master through HTTPS. Must be specified in CIDR notation.","description_kind":"plain","required":true},"display_name":{"type":"string","description":"Field for users to identify CIDR blocks.","description_kind":"plain","optional":true}},"description":"External networks that can access the Kubernetes cluster master through HTTPS.","description_kind":"plain"}}},"description":"The desired configuration options for master authorized networks. Omit the nested cidr_blocks attribute to disallow external access (except the cluster node IPs, which GKE automatically whitelists).","description_kind":"plain"},"max_items":1},"monitoring_config":{"nesting_mode":"list","block":{"attributes":{"enable_components":{"type":["list","string"],"description":"GKE components exposing metrics. Valid values include SYSTEM_COMPONENTS.","description_kind":"plain","required":true}},"description":"Monitoring configuration for the cluster.","description_kind":"plain"},"max_items":1},"network_policy":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Whether network policy is enabled on the cluster.","description_kind":"plain","required":true},"provider":{"type":"string","description":"The selected network policy provider. Defaults to PROVIDER_UNSPECIFIED.","description_kind":"plain","optional":true}},"description":"Configuration options for the NetworkPolicy feature.","description_kind":"plain"},"max_items":1},"node_config":{"nesting_mode":"list","block":{"attributes":{"disk_size_gb":{"type":"number","description":"Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.","description_kind":"plain","optional":true,"computed":true},"disk_type":{"type":"string","description":"Type of the disk attached to each node.","description_kind":"plain","optional":true,"computed":true},"guest_accelerator":{"type":["list",["object",{"count":"number","gpu_partition_size":"string","type":"string"}]],"description":"List of the type and count of accelerator cards attached to the instance.","description_kind":"plain","optional":true,"computed":true},"image_type":{"type":"string","description":"The image type to use for this node. Note that for a given image type, the latest version of it will be used.","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node.","description_kind":"plain","optional":true,"computed":true},"local_ssd_count":{"type":"number","description":"The number of local SSD disks to be attached to the node.","description_kind":"plain","optional":true,"computed":true},"machine_type":{"type":"string","description":"The name of a Google Compute Engine machine type.","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":["map","string"],"description":"The metadata key/value pairs assigned to instances in the cluster.","description_kind":"plain","optional":true,"computed":true},"min_cpu_platform":{"type":"string","description":"Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform.","description_kind":"plain","optional":true},"oauth_scopes":{"type":["set","string"],"description":"The set of Google API scopes to be made available on all of the node VMs.","description_kind":"plain","optional":true,"computed":true},"preemptible":{"type":"bool","description":"Whether the nodes are created as preemptible VM instances.","description_kind":"plain","optional":true},"service_account":{"type":"string","description":"The Google Cloud Platform Service Account to be used by the node VMs.","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The list of instance tags applied to all nodes.","description_kind":"plain","optional":true},"taint":{"type":["list",["object",{"effect":"string","key":"string","value":"string"}]],"description":"List of Kubernetes taints to be applied to each node.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"shielded_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description":"Defines whether the instance has integrity monitoring enabled.","description_kind":"plain","optional":true},"enable_secure_boot":{"type":"bool","description":"Defines whether the instance has Secure Boot enabled.","description_kind":"plain","optional":true}},"description":"Shielded Instance options.","description_kind":"plain"},"max_items":1},"workload_metadata_config":{"nesting_mode":"list","block":{"attributes":{"mode":{"type":"string","description":"Mode is the configuration for how to expose metadata to workloads running on the node.","description_kind":"plain","required":true}},"description":"The workload metadata configuration for this node.","description_kind":"plain"},"max_items":1}},"description":"The configuration of the nodepool","description_kind":"plain"},"max_items":1},"node_pool":{"nesting_mode":"list","block":{"attributes":{"initial_node_count":{"type":"number","description":"The initial number of nodes for the pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Changing this will force recreation of the resource.","description_kind":"plain","optional":true,"computed":true},"instance_group_urls":{"type":["list","string"],"description":"The resource URLs of the managed instance groups associated with this node pool.","description_kind":"plain","computed":true},"managed_instance_group_urls":{"type":["list","string"],"description":"List of instance group URLs which have been assigned to this node pool.","description_kind":"plain","computed":true},"max_pods_per_node":{"type":"number","description":"The maximum number of pods per node in this node pool. Note that this does not work on node pools which are \"route-based\" - that is, node pools belonging to clusters that do not have IP Aliasing enabled.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the node pool. If left blank, Terraform will auto-generate a unique name.","description_kind":"plain","optional":true,"computed":true},"name_prefix":{"type":"string","description":"Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.","description_kind":"plain","optional":true,"computed":true},"node_count":{"type":"number","description":"The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.","description_kind":"plain","optional":true,"computed":true},"node_locations":{"type":["set","string"],"description":"The list of zones in which the node pool's nodes should be located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If unspecified, the cluster-level node_locations will be used.","description_kind":"plain","optional":true,"computed":true},"version":{"type":"string","description":"The Kubernetes version for the nodes in this pool. Note that if this field and auto_upgrade are both specified, they will fight each other for what the node version should be, so setting both is highly discouraged. While a fuzzy version can be specified, it's recommended that you specify explicit versions as Terraform will see spurious diffs when fuzzy versions are used. See the google_container_engine_versions data source's version_prefix field to approximate fuzzy versions in a Terraform-compatible way.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"autoscaling":{"nesting_mode":"list","block":{"attributes":{"max_node_count":{"type":"number","description":"Maximum number of nodes in the NodePool. Must be \u003e= min_node_count.","description_kind":"plain","required":true},"min_node_count":{"type":"number","description":"Minimum number of nodes in the NodePool. Must be \u003e=0 and \u003c= max_node_count.","description_kind":"plain","required":true}},"description":"Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage.","description_kind":"plain"},"max_items":1},"management":{"nesting_mode":"list","block":{"attributes":{"auto_repair":{"type":"bool","description":"Whether the nodes will be automatically repaired.","description_kind":"plain","optional":true},"auto_upgrade":{"type":"bool","description":"Whether the nodes will be automatically upgraded.","description_kind":"plain","optional":true}},"description":"Node management configuration, wherein auto-repair and auto-upgrade is configured.","description_kind":"plain"},"max_items":1},"node_config":{"nesting_mode":"list","block":{"attributes":{"disk_size_gb":{"type":"number","description":"Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.","description_kind":"plain","optional":true,"computed":true},"disk_type":{"type":"string","description":"Type of the disk attached to each node.","description_kind":"plain","optional":true,"computed":true},"guest_accelerator":{"type":["list",["object",{"count":"number","gpu_partition_size":"string","type":"string"}]],"description":"List of the type and count of accelerator cards attached to the instance.","description_kind":"plain","optional":true,"computed":true},"image_type":{"type":"string","description":"The image type to use for this node. Note that for a given image type, the latest version of it will be used.","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node.","description_kind":"plain","optional":true,"computed":true},"local_ssd_count":{"type":"number","description":"The number of local SSD disks to be attached to the node.","description_kind":"plain","optional":true,"computed":true},"machine_type":{"type":"string","description":"The name of a Google Compute Engine machine type.","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":["map","string"],"description":"The metadata key/value pairs assigned to instances in the cluster.","description_kind":"plain","optional":true,"computed":true},"min_cpu_platform":{"type":"string","description":"Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform.","description_kind":"plain","optional":true},"oauth_scopes":{"type":["set","string"],"description":"The set of Google API scopes to be made available on all of the node VMs.","description_kind":"plain","optional":true,"computed":true},"preemptible":{"type":"bool","description":"Whether the nodes are created as preemptible VM instances.","description_kind":"plain","optional":true},"service_account":{"type":"string","description":"The Google Cloud Platform Service Account to be used by the node VMs.","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The list of instance tags applied to all nodes.","description_kind":"plain","optional":true},"taint":{"type":["list",["object",{"effect":"string","key":"string","value":"string"}]],"description":"List of Kubernetes taints to be applied to each node.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"shielded_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description":"Defines whether the instance has integrity monitoring enabled.","description_kind":"plain","optional":true},"enable_secure_boot":{"type":"bool","description":"Defines whether the instance has Secure Boot enabled.","description_kind":"plain","optional":true}},"description":"Shielded Instance options.","description_kind":"plain"},"max_items":1},"workload_metadata_config":{"nesting_mode":"list","block":{"attributes":{"mode":{"type":"string","description":"Mode is the configuration for how to expose metadata to workloads running on the node.","description_kind":"plain","required":true}},"description":"The workload metadata configuration for this node.","description_kind":"plain"},"max_items":1}},"description":"The configuration of the nodepool","description_kind":"plain"},"max_items":1},"upgrade_settings":{"nesting_mode":"list","block":{"attributes":{"max_surge":{"type":"number","description":"The number of additional nodes that can be added to the node pool during an upgrade. Increasing max_surge raises the number of nodes that can be upgraded simultaneously. Can be set to 0 or greater.","description_kind":"plain","required":true},"max_unavailable":{"type":"number","description":"The number of nodes that can be simultaneously unavailable during an upgrade. Increasing max_unavailable raises the number of nodes that can be upgraded in parallel. Can be set to 0 or greater.","description_kind":"plain","required":true}},"description":"Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of max_surge and max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20.","description_kind":"plain"},"max_items":1}},"description":"List of node pools associated with this cluster. See google_container_node_pool for schema. Warning: node pools defined inside a cluster can't be changed (or added/removed) after cluster creation without deleting and recreating the entire cluster. Unless you absolutely need the ability to say \"these are the only node pools associated with this cluster\", use the google_container_node_pool resource instead of this property.","description_kind":"plain"}},"private_cluster_config":{"nesting_mode":"list","block":{"attributes":{"enable_private_endpoint":{"type":"bool","description":"Enables the private cluster feature, creating a private endpoint on the cluster. In a private cluster, nodes only have RFC 1918 private addresses and communicate with the master's private endpoint via private networking.","description_kind":"plain","required":true},"enable_private_nodes":{"type":"bool","description":"When true, the cluster's private endpoint is used as the cluster endpoint and access through the public endpoint is disabled. When false, either endpoint can be used. This field only applies to private clusters, when enable_private_nodes is true.","description_kind":"plain","optional":true},"master_ipv4_cidr_block":{"type":"string","description":"The IP range in CIDR notation to use for the hosted master network. This range will be used for assigning private IP addresses to the cluster master(s) and the ILB VIP. This range must not overlap with any other ranges in use within the cluster's network, and it must be a /28 subnet. See Private Cluster Limitations for more details. This field only applies to private clusters, when enable_private_nodes is true.","description_kind":"plain","optional":true},"peering_name":{"type":"string","description":"The name of the peering between this cluster and the Google owned VPC.","description_kind":"plain","computed":true},"private_endpoint":{"type":"string","description":"The internal IP address of this cluster's master endpoint.","description_kind":"plain","computed":true},"public_endpoint":{"type":"string","description":"The external IP address of this cluster's master endpoint.","description_kind":"plain","computed":true}},"block_types":{"master_global_access_config":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Whether the cluster master is accessible globally or not.","description_kind":"plain","required":true}},"description":"Controls cluster master global access settings.","description_kind":"plain"},"max_items":1}},"description":"Configuration for private clusters, clusters with private nodes.","description_kind":"plain"},"max_items":1},"release_channel":{"nesting_mode":"list","block":{"attributes":{"channel":{"type":"string","description":"The selected release channel. Accepted values are:\n* UNSPECIFIED: Not set.\n* RAPID: Weekly upgrade cadence; Early testers and developers who requires new features.\n* REGULAR: Multiple per month upgrade cadence; Production users who need features not yet offered in the Stable channel.\n* STABLE: Every few months upgrade cadence; Production users who need stability above all else, and for whom frequent upgrades are too risky.","description_kind":"plain","required":true}},"description":"Configuration options for the Release channel feature, which provide more control over automatic upgrades of your GKE clusters. Note that removing this field from your config will not unenroll it. Instead, use the \"UNSPECIFIED\" channel.","description_kind":"plain"},"max_items":1},"resource_usage_export_config":{"nesting_mode":"list","block":{"attributes":{"enable_network_egress_metering":{"type":"bool","description":"Whether to enable network egress metering for this cluster. If enabled, a daemonset will be created in the cluster to meter network egress traffic.","description_kind":"plain","optional":true},"enable_resource_consumption_metering":{"type":"bool","description":"Whether to enable resource consumption metering on this cluster. When enabled, a table will be created in the resource export BigQuery dataset to store resource consumption data. The resulting table can be joined with the resource usage table or with BigQuery billing export. Defaults to true.","description_kind":"plain","optional":true}},"block_types":{"bigquery_destination":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The ID of a BigQuery Dataset.","description_kind":"plain","required":true}},"description":"Parameters for using BigQuery as the destination of resource usage export.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Configuration for the ResourceUsageExportConfig feature.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"vertical_pod_autoscaling":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Enables vertical pod autoscaling.","description_kind":"plain","required":true}},"description":"Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it.","description_kind":"plain"},"max_items":1},"workload_identity_config":{"nesting_mode":"list","block":{"attributes":{"workload_pool":{"type":"string","description":"The workload pool to attach all Kubernetes service accounts to.","description_kind":"plain","optional":true}},"description":"Configuration for the use of Kubernetes Service Accounts in GCP IAM policies.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_container_node_pool":{"version":1,"block":{"attributes":{"cluster":{"type":"string","description":"The cluster to create the node pool for. Cluster must be present in location provided for zonal clusters.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"initial_node_count":{"type":"number","description":"The initial number of nodes for the pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Changing this will force recreation of the resource.","description_kind":"plain","optional":true,"computed":true},"instance_group_urls":{"type":["list","string"],"description":"The resource URLs of the managed instance groups associated with this node pool.","description_kind":"plain","computed":true},"location":{"type":"string","description":"The location (region or zone) of the cluster.","description_kind":"plain","optional":true,"computed":true},"managed_instance_group_urls":{"type":["list","string"],"description":"List of instance group URLs which have been assigned to this node pool.","description_kind":"plain","computed":true},"max_pods_per_node":{"type":"number","description":"The maximum number of pods per node in this node pool. Note that this does not work on node pools which are \"route-based\" - that is, node pools belonging to clusters that do not have IP Aliasing enabled.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the node pool. If left blank, Terraform will auto-generate a unique name.","description_kind":"plain","optional":true,"computed":true},"name_prefix":{"type":"string","description":"Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.","description_kind":"plain","optional":true,"computed":true},"node_count":{"type":"number","description":"The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.","description_kind":"plain","optional":true,"computed":true},"node_locations":{"type":["set","string"],"description":"The list of zones in which the node pool's nodes should be located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If unspecified, the cluster-level node_locations will be used.","description_kind":"plain","optional":true,"computed":true},"operation":{"type":"string","description_kind":"plain","computed":true},"project":{"type":"string","description":"The ID of the project in which to create the node pool. If blank, the provider-configured project will be used.","description_kind":"plain","optional":true,"computed":true},"version":{"type":"string","description":"The Kubernetes version for the nodes in this pool. Note that if this field and auto_upgrade are both specified, they will fight each other for what the node version should be, so setting both is highly discouraged. While a fuzzy version can be specified, it's recommended that you specify explicit versions as Terraform will see spurious diffs when fuzzy versions are used. See the google_container_engine_versions data source's version_prefix field to approximate fuzzy versions in a Terraform-compatible way.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"autoscaling":{"nesting_mode":"list","block":{"attributes":{"max_node_count":{"type":"number","description":"Maximum number of nodes in the NodePool. Must be \u003e= min_node_count.","description_kind":"plain","required":true},"min_node_count":{"type":"number","description":"Minimum number of nodes in the NodePool. Must be \u003e=0 and \u003c= max_node_count.","description_kind":"plain","required":true}},"description":"Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage.","description_kind":"plain"},"max_items":1},"management":{"nesting_mode":"list","block":{"attributes":{"auto_repair":{"type":"bool","description":"Whether the nodes will be automatically repaired.","description_kind":"plain","optional":true},"auto_upgrade":{"type":"bool","description":"Whether the nodes will be automatically upgraded.","description_kind":"plain","optional":true}},"description":"Node management configuration, wherein auto-repair and auto-upgrade is configured.","description_kind":"plain"},"max_items":1},"node_config":{"nesting_mode":"list","block":{"attributes":{"disk_size_gb":{"type":"number","description":"Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.","description_kind":"plain","optional":true,"computed":true},"disk_type":{"type":"string","description":"Type of the disk attached to each node.","description_kind":"plain","optional":true,"computed":true},"guest_accelerator":{"type":["list",["object",{"count":"number","gpu_partition_size":"string","type":"string"}]],"description":"List of the type and count of accelerator cards attached to the instance.","description_kind":"plain","optional":true,"computed":true},"image_type":{"type":"string","description":"The image type to use for this node. Note that for a given image type, the latest version of it will be used.","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node.","description_kind":"plain","optional":true,"computed":true},"local_ssd_count":{"type":"number","description":"The number of local SSD disks to be attached to the node.","description_kind":"plain","optional":true,"computed":true},"machine_type":{"type":"string","description":"The name of a Google Compute Engine machine type.","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":["map","string"],"description":"The metadata key/value pairs assigned to instances in the cluster.","description_kind":"plain","optional":true,"computed":true},"min_cpu_platform":{"type":"string","description":"Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform.","description_kind":"plain","optional":true},"oauth_scopes":{"type":["set","string"],"description":"The set of Google API scopes to be made available on all of the node VMs.","description_kind":"plain","optional":true,"computed":true},"preemptible":{"type":"bool","description":"Whether the nodes are created as preemptible VM instances.","description_kind":"plain","optional":true},"service_account":{"type":"string","description":"The Google Cloud Platform Service Account to be used by the node VMs.","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The list of instance tags applied to all nodes.","description_kind":"plain","optional":true},"taint":{"type":["list",["object",{"effect":"string","key":"string","value":"string"}]],"description":"List of Kubernetes taints to be applied to each node.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"shielded_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description":"Defines whether the instance has integrity monitoring enabled.","description_kind":"plain","optional":true},"enable_secure_boot":{"type":"bool","description":"Defines whether the instance has Secure Boot enabled.","description_kind":"plain","optional":true}},"description":"Shielded Instance options.","description_kind":"plain"},"max_items":1},"workload_metadata_config":{"nesting_mode":"list","block":{"attributes":{"mode":{"type":"string","description":"Mode is the configuration for how to expose metadata to workloads running on the node.","description_kind":"plain","required":true}},"description":"The workload metadata configuration for this node.","description_kind":"plain"},"max_items":1}},"description":"The configuration of the nodepool","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"upgrade_settings":{"nesting_mode":"list","block":{"attributes":{"max_surge":{"type":"number","description":"The number of additional nodes that can be added to the node pool during an upgrade. Increasing max_surge raises the number of nodes that can be upgraded simultaneously. Can be set to 0 or greater.","description_kind":"plain","required":true},"max_unavailable":{"type":"number","description":"The number of nodes that can be simultaneously unavailable during an upgrade. Increasing max_unavailable raises the number of nodes that can be upgraded in parallel. Can be set to 0 or greater.","description_kind":"plain","required":true}},"description":"Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of max_surge and max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_container_registry":{"version":0,"block":{"attributes":{"bucket_self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location of the registry. One of ASIA, EU, US or not specified. See the official documentation for more information on registry locations.","description_kind":"plain","optional":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_data_catalog_entry":{"version":0,"block":{"attributes":{"bigquery_date_sharded_spec":{"type":["list",["object",{"dataset":"string","shard_count":"number","table_prefix":"string"}]],"description":"Specification for a group of BigQuery tables with name pattern [prefix]YYYYMMDD.\nContext: https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.","description_kind":"plain","computed":true},"bigquery_table_spec":{"type":["list",["object",{"table_source_type":"string","table_spec":["list",["object",{"grouped_entry":"string"}]],"view_spec":["list",["object",{"view_query":"string"}]]}]],"description":"Specification that applies to a BigQuery table. This is only valid on entries of type TABLE.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Entry description, which can consist of several sentences or paragraphs that describe entry contents.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"Display information such as title and description. A short name to identify the entry,\nfor example, \"Analytics Data - Jan 2011\".","description_kind":"plain","optional":true},"entry_group":{"type":"string","description":"The name of the entry group this entry is in.","description_kind":"plain","required":true},"entry_id":{"type":"string","description":"The id of the entry to create.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"integrated_system":{"type":"string","description":"This field indicates the entry's source system that Data Catalog integrates with, such as BigQuery or Pub/Sub.","description_kind":"plain","computed":true},"linked_resource":{"type":"string","description":"The resource this metadata entry refers to.\nFor Google Cloud Platform resources, linkedResource is the full name of the resource.\nFor example, the linkedResource for a table resource from BigQuery is:\n//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId\nOutput only when Entry is of type in the EntryType enum. For entries with userSpecifiedType,\nthis field is optional and defaults to an empty string.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The Data Catalog resource name of the entry in URL format.\nExample: projects/{project_id}/locations/{location}/entryGroups/{entryGroupId}/entries/{entryId}.\nNote that this Entry and its child resources may not actually be stored in the location in this name.","description_kind":"plain","computed":true},"schema":{"type":"string","description":"Schema of the entry (e.g. BigQuery, GoogleSQL, Avro schema), as a json string. An entry might not have any schema\nattached to it. See\nhttps://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.entryGroups.entries#schema\nfor what fields this schema can contain.","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of the entry. Only used for Entries with types in the EntryType enum.\nCurrently, only FILESET enum value is allowed. All other entries created through Data Catalog must use userSpecifiedType. Possible values: [\"FILESET\"]","description_kind":"plain","optional":true},"user_specified_system":{"type":"string","description":"This field indicates the entry's source system that Data Catalog does not integrate with.\nuserSpecifiedSystem strings must begin with a letter or underscore and can only contain letters, numbers,\nand underscores; are case insensitive; must be at least 1 character and at most 64 characters long.","description_kind":"plain","optional":true},"user_specified_type":{"type":"string","description":"Entry type if it does not fit any of the input-allowed values listed in EntryType enum above.\nWhen creating an entry, users should check the enum values first, if nothing matches the entry\nto be created, then provide a custom value, for example \"my_special_type\".\nuserSpecifiedType strings must begin with a letter or underscore and can only contain letters,\nnumbers, and underscores; are case insensitive; must be at least 1 character and at most 64 characters long.","description_kind":"plain","optional":true}},"block_types":{"gcs_fileset_spec":{"nesting_mode":"list","block":{"attributes":{"file_patterns":{"type":["list","string"],"description":"Patterns to identify a set of files in Google Cloud Storage.\nSee [Cloud Storage documentation](https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames)\nfor more information. Note that bucket wildcards are currently not supported. Examples of valid filePatterns:\n\n* gs://bucket_name/dir/*: matches all files within bucket_name/dir directory.\n* gs://bucket_name/dir/**: matches all files in bucket_name/dir spanning all subdirectories.\n* gs://bucket_name/file*: matches files prefixed by file in bucket_name\n* gs://bucket_name/??.txt: matches files with two characters followed by .txt in bucket_name\n* gs://bucket_name/[aeiou].txt: matches files that contain a single vowel character followed by .txt in bucket_name\n* gs://bucket_name/[a-m].txt: matches files that contain a, b, ... or m followed by .txt in bucket_name\n* gs://bucket_name/a/*/b: matches all files in bucket_name that match a/*/b pattern, such as a/c/b, a/d/b\n* gs://another_bucket/a.txt: matches gs://another_bucket/a.txt","description_kind":"plain","required":true},"sample_gcs_file_specs":{"type":["list",["object",{"file_path":"string","size_bytes":"number"}]],"description":"Sample files contained in this fileset, not all files contained in this fileset are represented here.","description_kind":"plain","computed":true}},"description":"Specification that applies to a Cloud Storage fileset. This is only valid on entries of type FILESET.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_data_catalog_entry_group":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Entry group description, which can consist of several sentences or paragraphs that describe entry group contents.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"A short name to identify the entry group, for example, \"analytics data - jan 2011\".","description_kind":"plain","optional":true},"entry_group_id":{"type":"string","description":"The id of the entry group to create. The id must begin with a letter or underscore,\ncontain only English letters, numbers and underscores, and be at most 64 characters.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of the entry group in URL format. Example: projects/{project}/locations/{location}/entryGroups/{entryGroupId}","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"EntryGroup location region.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_data_catalog_entry_group_iam_binding":{"version":0,"block":{"attributes":{"entry_group":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_data_catalog_entry_group_iam_member":{"version":0,"block":{"attributes":{"entry_group":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_data_catalog_entry_group_iam_policy":{"version":0,"block":{"attributes":{"entry_group":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_data_catalog_tag":{"version":0,"block":{"attributes":{"column":{"type":"string","description":"Resources like Entry can have schemas associated with them. This scope allows users to attach tags to an\nindividual column based on that schema.\n\nFor attaching a tag to a nested column, use '.' to separate the column names. Example:\n'outer_column.inner_column'","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of the tag in URL format. Example:\nprojects/{project_id}/locations/{location}/entrygroups/{entryGroupId}/entries/{entryId}/tags/{tag_id} or\nprojects/{project_id}/locations/{location}/entrygroups/{entryGroupId}/tags/{tag_id}\nwhere tag_id is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The name of the parent this tag is attached to. This can be the name of an entry or an entry group. If an entry group, the tag will be attached to\nall entries in that group.","description_kind":"plain","optional":true},"template":{"type":"string","description":"The resource name of the tag template that this tag uses. Example:\nprojects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}\nThis field cannot be modified after creation.","description_kind":"plain","required":true},"template_displayname":{"type":"string","description":"The display name of the tag template.","description_kind":"plain","computed":true}},"block_types":{"fields":{"nesting_mode":"set","block":{"attributes":{"bool_value":{"type":"bool","description":"Holds the value for a tag field with boolean type.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The display name of this field","description_kind":"plain","computed":true},"double_value":{"type":"number","description":"Holds the value for a tag field with double type.","description_kind":"plain","optional":true},"enum_value":{"type":"string","description":"The display name of the enum value.","description_kind":"plain","optional":true},"field_name":{"type":"string","description_kind":"plain","required":true},"order":{"type":"number","description":"The order of this field with respect to other fields in this tag. For example, a higher value can indicate\na more important field. The value can be negative. Multiple fields can have the same order, and field orders\nwithin a tag do not have to be sequential.","description_kind":"plain","computed":true},"string_value":{"type":"string","description":"Holds the value for a tag field with string type.","description_kind":"plain","optional":true},"timestamp_value":{"type":"string","description":"Holds the value for a tag field with timestamp type.","description_kind":"plain","optional":true}},"description":"This maps the ID of a tag field to the value of and additional information about that field.\nValid field IDs are defined by the tag's template. A tag must have at least 1 field and at most 500 fields.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_data_catalog_tag_template":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"The display name for this template.","description_kind":"plain","optional":true},"force_delete":{"type":"bool","description":"This confirms the deletion of any possible tags using this template. Must be set to true in order to delete the tag template.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of the tag template in URL format. Example: projects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Template location region.","description_kind":"plain","optional":true,"computed":true},"tag_template_id":{"type":"string","description":"The id of the tag template to create.","description_kind":"plain","required":true}},"block_types":{"fields":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"A description for this field.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The display name for this field.","description_kind":"plain","optional":true},"field_id":{"type":"string","description_kind":"plain","required":true},"is_required":{"type":"bool","description":"Whether this is a required field. Defaults to false.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource name of the tag template field in URL format. Example: projects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}/fields/{field}","description_kind":"plain","computed":true},"order":{"type":"number","description":"The order of this field with respect to other fields in this tag template.\nA higher value indicates a more important field. The value can be negative.\nMultiple fields can have the same order, and field orders within a tag do not have to be sequential.","description_kind":"plain","optional":true}},"block_types":{"type":{"nesting_mode":"list","block":{"attributes":{"primitive_type":{"type":"string","description":"Represents primitive types - string, bool etc.\n Exactly one of 'primitive_type' or 'enum_type' must be set Possible values: [\"DOUBLE\", \"STRING\", \"BOOL\", \"TIMESTAMP\"]","description_kind":"plain","optional":true}},"block_types":{"enum_type":{"nesting_mode":"list","block":{"block_types":{"allowed_values":{"nesting_mode":"set","block":{"attributes":{"display_name":{"type":"string","description":"The display name of the enum value.","description_kind":"plain","required":true}},"description":"The set of allowed values for this enum. The display names of the\nvalues must be case-insensitively unique within this set. Currently,\nenum values can only be added to the list of allowed values. Deletion\nand renaming of enum values are not supported.\nCan have up to 500 allowed values.","description_kind":"plain"},"min_items":1}},"description":"Represents an enum type.\n Exactly one of 'primitive_type' or 'enum_type' must be set","description_kind":"plain"},"max_items":1}},"description":"The type of value this tag field can contain.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Set of tag template field IDs and the settings for the field. This set is an exhaustive list of the allowed fields. This set must contain at least one field and at most 500 fields.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_data_catalog_tag_template_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"tag_template":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_data_catalog_tag_template_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"tag_template":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_data_catalog_tag_template_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tag_template":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_data_loss_prevention_deidentify_template":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A description of the template.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"User set display name of the template.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of the template. Set by the server.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The parent of the template in any of the following formats:\n\n* 'projects/{{project}}'\n* 'projects/{{project}}/locations/{{location}}'\n* 'organizations/{{organization_id}}'\n* 'organizations/{{organization_id}}/locations/{{location}}'","description_kind":"plain","required":true}},"block_types":{"deidentify_config":{"nesting_mode":"list","block":{"block_types":{"info_type_transformations":{"nesting_mode":"list","block":{"block_types":{"transformations":{"nesting_mode":"list","block":{"block_types":{"info_types":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the information type.","description_kind":"plain","required":true}},"description":"InfoTypes to apply the transformation to. Leaving this empty will apply the transformation to apply to\nall findings that correspond to infoTypes that were requested in InspectConfig.","description_kind":"plain"}},"primitive_transformation":{"nesting_mode":"list","block":{"attributes":{"replace_with_info_type_config":{"type":"bool","description":"Replace each matching finding with the name of the info type.","description_kind":"plain","optional":true}},"block_types":{"character_mask_config":{"nesting_mode":"list","block":{"attributes":{"masking_character":{"type":"string","description":"Character to use to mask the sensitive values—for example, * for an alphabetic string such as a name, or 0 for a numeric string\nsuch as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to * for\nstrings, and 0 for digits.","description_kind":"plain","optional":true},"number_to_mask":{"type":"number","description":"Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.","description_kind":"plain","optional":true},"reverse_order":{"type":"bool","description":"Mask characters in reverse order. For example, if masking_character is 0, number_to_mask is 14, and reverse_order is 'false', then the\ninput string '1234-5678-9012-3456' is masked as '00000000000000-3456'.","description_kind":"plain","optional":true}},"block_types":{"characters_to_ignore":{"nesting_mode":"list","block":{"attributes":{"character_to_skip":{"type":"string","description":"Characters to not transform when masking.","description_kind":"plain","optional":true},"common_characters_to_ignore":{"type":"string","description":"Common characters to not transform when masking. Useful to avoid removing punctuation. Possible values: [\"NUMERIC\", \"ALPHA_UPPER_CASE\", \"ALPHA_LOWER_CASE\", \"PUNCTUATION\", \"WHITESPACE\"]","description_kind":"plain","optional":true}},"description":"Characters to skip when doing de-identification of a value. These will be left alone and skipped.","description_kind":"plain"}}},"description":"Partially mask a string by replacing a given number of characters with a fixed character.\nMasking can start from the beginning or end of the string.","description_kind":"plain"},"max_items":1},"crypto_deterministic_config":{"nesting_mode":"list","block":{"block_types":{"context":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name describing the field.","description_kind":"plain","optional":true}},"description":"A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well.\n\nIf the context is not set, plaintext would be used as is for encryption. If the context is set but:\n\n1. there is no record present when transforming a given value or\n2. the field is not present when transforming a given value,\n\nplaintext would be used as is for encryption.\n\nNote that case (1) is expected when an 'InfoTypeTransformation' is applied to both structured and non-structured 'ContentItem's.","description_kind":"plain"},"max_items":1},"crypto_key":{"nesting_mode":"list","block":{"block_types":{"kms_wrapped":{"nesting_mode":"list","block":{"attributes":{"crypto_key_name":{"type":"string","description":"The resource name of the KMS CryptoKey to use for unwrapping.","description_kind":"plain","required":true},"wrapped_key":{"type":"string","description":"The wrapped data crypto key.\n\nA base64-encoded string.","description_kind":"plain","required":true}},"description":"Kms wrapped key","description_kind":"plain"},"max_items":1},"transient":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate 'TransientCryptoKey' protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).","description_kind":"plain","required":true}},"description":"Transient crypto key","description_kind":"plain"},"max_items":1},"unwrapped":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description":"A 128/192/256 bit key.\n\nA base64-encoded string.","description_kind":"plain","required":true}},"description":"Unwrapped crypto key","description_kind":"plain"},"max_items":1}},"description":"The key used by the encryption function.","description_kind":"plain"},"max_items":1},"surrogate_info_type":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at [https://cloud.google.com/dlp/docs/infotypes-reference](https://cloud.google.com/dlp/docs/infotypes-reference) when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern '[A-Za-z0-9$-_]{1,64}'.","description_kind":"plain","optional":true}},"description":"The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate}\n\nFor example, if the name of custom info type is 'MY\\_TOKEN\\_INFO\\_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY\\_TOKEN\\_INFO\\_TYPE(3):abc'\n\nThis annotation identifies the surrogate when inspecting content using the custom info type 'Surrogate'. This facilitates reversal of the surrogate when it occurs in free text.\n\nNote: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text.\n\nIn order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either\n\n* reverse a surrogate that does not correspond to an actual identifier\n* be unable to parse the surrogate and result in an error\n\nTherefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY\\_TOKEN\\_TYPE.","description_kind":"plain"},"max_items":1}},"description":"Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC [https://tools.ietf.org/html/rfc5297](https://tools.ietf.org/html/rfc5297).","description_kind":"plain"},"max_items":1},"crypto_replace_ffx_fpe_config":{"nesting_mode":"list","block":{"attributes":{"common_alphabet":{"type":"string","description":"Common alphabets. Possible values: [\"FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED\", \"NUMERIC\", \"HEXADECIMAL\", \"UPPER_CASE_ALPHA_NUMERIC\", \"ALPHA_NUMERIC\"]","description_kind":"plain","optional":true},"custom_alphabet":{"type":"string","description":"This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range \\[2, 95\\]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is:\n\n''0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~'!@#$%^\u0026*()_-+={[}]|:;\"'\u003c,\u003e.?/''","description_kind":"plain","optional":true},"radix":{"type":"number","description":"The native way to select the alphabet. Must be in the range \\[2, 95\\].","description_kind":"plain","optional":true}},"block_types":{"context":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name describing the field.","description_kind":"plain","optional":true}},"description":"The 'tweak', a context may be used for higher security since the same identifier in two different contexts won't be given the same surrogate. If the context is not set, a default tweak will be used.\n\nIf the context is set but:\n\n1. there is no record present when transforming a given value or\n2. the field is not present when transforming a given value,\n\na default tweak will be used.\n\nNote that case (1) is expected when an 'InfoTypeTransformation' is applied to both structured and non-structured 'ContentItem's. Currently, the referenced field may be of value type integer or string.\n\nThe tweak is constructed as a sequence of bytes in big endian byte order such that:\n\n* a 64 bit integer is encoded followed by a single byte of value 1\n* a string is encoded in UTF-8 format followed by a single byte of value 2","description_kind":"plain"},"max_items":1},"crypto_key":{"nesting_mode":"list","block":{"block_types":{"kms_wrapped":{"nesting_mode":"list","block":{"attributes":{"crypto_key_name":{"type":"string","description":"The resource name of the KMS CryptoKey to use for unwrapping.","description_kind":"plain","required":true},"wrapped_key":{"type":"string","description":"The wrapped data crypto key.\n\nA base64-encoded string.","description_kind":"plain","required":true}},"description":"Kms wrapped key","description_kind":"plain"},"max_items":1},"transient":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate 'TransientCryptoKey' protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).","description_kind":"plain","required":true}},"description":"Transient crypto key","description_kind":"plain"},"max_items":1},"unwrapped":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description":"A 128/192/256 bit key.\n\nA base64-encoded string.","description_kind":"plain","required":true}},"description":"Unwrapped crypto key","description_kind":"plain"},"max_items":1}},"description":"The key used by the encryption algorithm.","description_kind":"plain"},"max_items":1},"surrogate_info_type":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at [https://cloud.google.com/dlp/docs/infotypes-reference](https://cloud.google.com/dlp/docs/infotypes-reference) when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern '[A-Za-z0-9$-_]{1,64}'.","description_kind":"plain","optional":true}},"description":"The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info\\_type\\_name(surrogate\\_character\\_count):surrogate\n\nFor example, if the name of custom infoType is 'MY\\_TOKEN\\_INFO\\_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY\\_TOKEN\\_INFO\\_TYPE(3):abc'\n\nThis annotation identifies the surrogate when inspecting content using the custom infoType ['SurrogateType'](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text.\n\nIn order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY\\_TOKEN\\_TYPE","description_kind":"plain"},"max_items":1}},"description":"Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the 'content.reidentify' API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See [https://cloud.google.com/dlp/docs/pseudonymization](https://cloud.google.com/dlp/docs/pseudonymization) to learn more.\n\nNote: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity.","description_kind":"plain"},"max_items":1},"replace_config":{"nesting_mode":"list","block":{"block_types":{"new_value":{"nesting_mode":"list","block":{"attributes":{"boolean_value":{"type":"bool","description":"A boolean value.","description_kind":"plain","optional":true},"day_of_week_value":{"type":"string","description":"Represents a day of the week. Possible values: [\"MONDAY\", \"TUESDAY\", \"WEDNESDAY\", \"THURSDAY\", \"FRIDAY\", \"SATURDAY\", \"SUNDAY\"]","description_kind":"plain","optional":true},"float_value":{"type":"number","description":"A float value.","description_kind":"plain","optional":true},"integer_value":{"type":"number","description":"An integer value.","description_kind":"plain","optional":true},"string_value":{"type":"string","description":"A string value.","description_kind":"plain","optional":true},"timestamp_value":{"type":"string","description":"A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits.\nExamples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","optional":true}},"block_types":{"date_value":{"nesting_mode":"list","block":{"attributes":{"day":{"type":"number","description":"Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a\nyear by itself or a year and month where the day is not significant.","description_kind":"plain","optional":true},"month":{"type":"number","description":"Month of year. Must be from 1 to 12, or 0 if specifying a year without a month and day.","description_kind":"plain","optional":true},"year":{"type":"number","description":"Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.","description_kind":"plain","optional":true}},"description":"Represents a whole or partial calendar date.","description_kind":"plain"},"max_items":1},"time_value":{"nesting_mode":"list","block":{"attributes":{"hours":{"type":"number","description":"Hours of day in 24 hour format. Should be from 0 to 23.","description_kind":"plain","optional":true},"minutes":{"type":"number","description":"Minutes of hour of day. Must be from 0 to 59.","description_kind":"plain","optional":true},"nanos":{"type":"number","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.","description_kind":"plain","optional":true},"seconds":{"type":"number","description":"Seconds of minutes of the time. Must normally be from 0 to 59.","description_kind":"plain","optional":true}},"description":"Represents a time of day.","description_kind":"plain"},"max_items":1}},"description":"Replace each input value with a given value.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Replace each input value with a given value.","description_kind":"plain"},"max_items":1}},"description":"Primitive transformation to apply to the infoType.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Transformation for each infoType. Cannot specify more than one for a given infoType.","description_kind":"plain"},"min_items":1}},"description":"Specifies free-text based transformations to be applied to the dataset.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Configuration of the deidentify template","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_data_loss_prevention_inspect_template":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A description of the inspect template.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"User set display name of the inspect template.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of the inspect template. Set by the server.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The parent of the inspect template in any of the following formats:\n\n* 'projects/{{project}}'\n* 'projects/{{project}}/locations/{{location}}'\n* 'organizations/{{organization_id}}'\n* 'organizations/{{organization_id}}/locations/{{location}}'","description_kind":"plain","required":true}},"block_types":{"inspect_config":{"nesting_mode":"list","block":{"attributes":{"content_options":{"type":["list","string"],"description":"List of options defining data content to scan. If empty, text, images, and other content will be included. Possible values: [\"CONTENT_TEXT\", \"CONTENT_IMAGE\"]","description_kind":"plain","optional":true},"exclude_info_types":{"type":"bool","description":"When true, excludes type information of the findings.","description_kind":"plain","optional":true},"include_quote":{"type":"bool","description":"When true, a contextual quote from the data that triggered a finding is included in the response.","description_kind":"plain","optional":true},"min_likelihood":{"type":"string","description":"Only returns findings equal or above this threshold. See https://cloud.google.com/dlp/docs/likelihood for more info Default value: \"POSSIBLE\" Possible values: [\"VERY_UNLIKELY\", \"UNLIKELY\", \"POSSIBLE\", \"LIKELY\", \"VERY_LIKELY\"]","description_kind":"plain","optional":true}},"block_types":{"custom_info_types":{"nesting_mode":"list","block":{"attributes":{"exclusion_type":{"type":"string","description":"If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding to be returned. It still can be used for rules matching. Possible values: [\"EXCLUSION_TYPE_EXCLUDE\"]","description_kind":"plain","optional":true},"likelihood":{"type":"string","description":"Likelihood to return for this CustomInfoType. This base value can be altered by a detection rule if the finding meets the criteria\nspecified by the rule. Default value: \"VERY_LIKELY\" Possible values: [\"VERY_UNLIKELY\", \"UNLIKELY\", \"POSSIBLE\", \"LIKELY\", \"VERY_LIKELY\"]","description_kind":"plain","optional":true}},"block_types":{"dictionary":{"nesting_mode":"list","block":{"block_types":{"cloud_storage_path":{"nesting_mode":"list","block":{"attributes":{"path":{"type":"string","description":"A url representing a file or path (no wildcards) in Cloud Storage. Example: 'gs://[BUCKET_NAME]/dictionary.txt'","description_kind":"plain","required":true}},"description":"Newline-delimited file of words in Cloud Storage. Only a single file is accepted.","description_kind":"plain"},"max_items":1},"word_list":{"nesting_mode":"list","block":{"attributes":{"words":{"type":["list","string"],"description":"Words or phrases defining the dictionary. The dictionary must contain at least one\nphrase and every phrase must contain at least 2 characters that are letters or digits.","description_kind":"plain","required":true}},"description":"List of words or phrases to search for.","description_kind":"plain"},"max_items":1}},"description":"Dictionary which defines the rule.","description_kind":"plain"},"max_items":1},"info_type":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names\nlisted at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type.","description_kind":"plain","required":true}},"description":"CustomInfoType can either be a new infoType, or an extension of built-in infoType, when the name matches one of existing\ninfoTypes and that infoType is specified in 'info_types' field. Specifying the latter adds findings to the\none detected by the system. If built-in info type is not specified in 'info_types' list then the name is\ntreated as a custom info type.","description_kind":"plain"},"min_items":1,"max_items":1},"regex":{"nesting_mode":"list","block":{"attributes":{"group_indexes":{"type":["list","number"],"description":"The index of the submatch to extract as findings. When not specified, the entire match is returned. No more than 3 may be included.","description_kind":"plain","optional":true},"pattern":{"type":"string","description":"Pattern defining the regular expression.\nIts syntax (https://github.com/google/re2/wiki/Syntax) can be found under the google/re2 repository on GitHub.","description_kind":"plain","required":true}},"description":"Regular expression which defines the rule.","description_kind":"plain"},"max_items":1},"stored_type":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Resource name of the requested StoredInfoType, for example 'organizations/433245324/storedInfoTypes/432452342'\nor 'projects/project-id/storedInfoTypes/432452342'.","description_kind":"plain","required":true}},"description":"A reference to a StoredInfoType to use with scanning.","description_kind":"plain"},"max_items":1}},"description":"Custom info types to be used. See https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.","description_kind":"plain"}},"info_types":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed\nat https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type.","description_kind":"plain","required":true}},"description":"Restricts what infoTypes to look for. The values must correspond to InfoType values returned by infoTypes.list\nor listed at https://cloud.google.com/dlp/docs/infotypes-reference.\n\nWhen no InfoTypes or CustomInfoTypes are specified in a request, the system may automatically choose what detectors to run.\nBy default this may be all types, but may change over time as detectors are updated.","description_kind":"plain"}},"limits":{"nesting_mode":"list","block":{"attributes":{"max_findings_per_item":{"type":"number","description":"Max number of findings that will be returned for each item scanned. The maximum returned is 2000.","description_kind":"plain","required":true},"max_findings_per_request":{"type":"number","description":"Max number of findings that will be returned per request/job. The maximum returned is 2000.","description_kind":"plain","required":true}},"block_types":{"max_findings_per_info_type":{"nesting_mode":"list","block":{"attributes":{"max_findings":{"type":"number","description":"Max findings limit for the given infoType.","description_kind":"plain","required":true}},"block_types":{"info_type":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed\nat https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type.","description_kind":"plain","required":true}},"description":"Type of information the findings limit applies to. Only one limit per infoType should be provided. If InfoTypeLimit does\nnot have an infoType, the DLP API applies the limit against all infoTypes that are found but not\nspecified in another InfoTypeLimit.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Configuration of findings limit given for specified infoTypes.","description_kind":"plain"}}},"description":"Configuration to control the number of findings returned.","description_kind":"plain"},"max_items":1},"rule_set":{"nesting_mode":"list","block":{"block_types":{"info_types":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed\nat https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type.","description_kind":"plain","required":true}},"description":"List of infoTypes this rule set is applied to.","description_kind":"plain"},"min_items":1},"rules":{"nesting_mode":"list","block":{"block_types":{"exclusion_rule":{"nesting_mode":"list","block":{"attributes":{"matching_type":{"type":"string","description":"How the rule is applied. See the documentation for more information: https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#MatchingType Possible values: [\"MATCHING_TYPE_FULL_MATCH\", \"MATCHING_TYPE_PARTIAL_MATCH\", \"MATCHING_TYPE_INVERSE_MATCH\"]","description_kind":"plain","required":true}},"block_types":{"dictionary":{"nesting_mode":"list","block":{"block_types":{"cloud_storage_path":{"nesting_mode":"list","block":{"attributes":{"path":{"type":"string","description":"A url representing a file or path (no wildcards) in Cloud Storage. Example: 'gs://[BUCKET_NAME]/dictionary.txt'","description_kind":"plain","required":true}},"description":"Newline-delimited file of words in Cloud Storage. Only a single file is accepted.","description_kind":"plain"},"max_items":1},"word_list":{"nesting_mode":"list","block":{"attributes":{"words":{"type":["list","string"],"description":"Words or phrases defining the dictionary. The dictionary must contain at least one\nphrase and every phrase must contain at least 2 characters that are letters or digits.","description_kind":"plain","required":true}},"description":"List of words or phrases to search for.","description_kind":"plain"},"max_items":1}},"description":"Dictionary which defines the rule.","description_kind":"plain"},"max_items":1},"exclude_info_types":{"nesting_mode":"list","block":{"block_types":{"info_types":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed\nat https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type.","description_kind":"plain","required":true}},"description":"If a finding is matched by any of the infoType detectors listed here, the finding will be excluded from the scan results.","description_kind":"plain"},"min_items":1}},"description":"Set of infoTypes for which findings would affect this rule.","description_kind":"plain"},"max_items":1},"regex":{"nesting_mode":"list","block":{"attributes":{"group_indexes":{"type":["list","number"],"description":"The index of the submatch to extract as findings. When not specified, the entire match is returned. No more than 3 may be included.","description_kind":"plain","optional":true},"pattern":{"type":"string","description":"Pattern defining the regular expression.\nIts syntax (https://github.com/google/re2/wiki/Syntax) can be found under the google/re2 repository on GitHub.","description_kind":"plain","required":true}},"description":"Regular expression which defines the rule.","description_kind":"plain"},"max_items":1}},"description":"The rule that specifies conditions when findings of infoTypes specified in InspectionRuleSet are removed from results.","description_kind":"plain"},"max_items":1},"hotword_rule":{"nesting_mode":"list","block":{"block_types":{"hotword_regex":{"nesting_mode":"list","block":{"attributes":{"group_indexes":{"type":["list","number"],"description":"The index of the submatch to extract as findings. When not specified,\nthe entire match is returned. No more than 3 may be included.","description_kind":"plain","optional":true},"pattern":{"type":"string","description":"Pattern defining the regular expression. Its syntax\n(https://github.com/google/re2/wiki/Syntax) can be found under the google/re2 repository on GitHub.","description_kind":"plain","required":true}},"description":"Regular expression pattern defining what qualifies as a hotword.","description_kind":"plain"},"min_items":1,"max_items":1},"likelihood_adjustment":{"nesting_mode":"list","block":{"attributes":{"fixed_likelihood":{"type":"string","description":"Set the likelihood of a finding to a fixed value. Either this or relative_likelihood can be set. Possible values: [\"VERY_UNLIKELY\", \"UNLIKELY\", \"POSSIBLE\", \"LIKELY\", \"VERY_LIKELY\"]","description_kind":"plain","optional":true},"relative_likelihood":{"type":"number","description":"Increase or decrease the likelihood by the specified number of levels. For example,\nif a finding would be POSSIBLE without the detection rule and relativeLikelihood is 1,\nthen it is upgraded to LIKELY, while a value of -1 would downgrade it to UNLIKELY.\nLikelihood may never drop below VERY_UNLIKELY or exceed VERY_LIKELY, so applying an\nadjustment of 1 followed by an adjustment of -1 when base likelihood is VERY_LIKELY\nwill result in a final likelihood of LIKELY. Either this or fixed_likelihood can be set.","description_kind":"plain","optional":true}},"description":"Likelihood adjustment to apply to all matching findings.","description_kind":"plain"},"min_items":1,"max_items":1},"proximity":{"nesting_mode":"list","block":{"attributes":{"window_after":{"type":"number","description":"Number of characters after the finding to consider. Either this or window_before must be specified","description_kind":"plain","optional":true},"window_before":{"type":"number","description":"Number of characters before the finding to consider. Either this or window_after must be specified","description_kind":"plain","optional":true}},"description":"Proximity of the finding within which the entire hotword must reside. The total length of the window cannot\nexceed 1000 characters. Note that the finding itself will be included in the window, so that hotwords may be\nused to match substrings of the finding itself. For example, the certainty of a phone number regex\n'(\\d{3}) \\d{3}-\\d{4}' could be adjusted upwards if the area code is known to be the local area code of a company\noffice using the hotword regex '(xxx)', where 'xxx' is the area code in question.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Hotword-based detection rule.","description_kind":"plain"},"max_items":1}},"description":"Set of rules to be applied to infoTypes. The rules are applied in order.","description_kind":"plain"},"min_items":1}},"description":"Set of rules to apply to the findings for this InspectConfig. Exclusion rules, contained in the set are executed in the end,\nother rules are executed in the order they are specified for each info type.","description_kind":"plain"}}},"description":"The core content of the template.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_data_loss_prevention_job_trigger":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A description of the job trigger.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"User set display name of the job trigger.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_run_time":{"type":"string","description":"The timestamp of the last time this trigger executed.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The resource name of the job trigger. Set by the server.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The parent of the trigger, either in the format 'projects/{{project}}'\nor 'projects/{{project}}/locations/{{location}}'","description_kind":"plain","required":true},"status":{"type":"string","description":"Whether the trigger is currently active. Default value: \"HEALTHY\" Possible values: [\"PAUSED\", \"HEALTHY\", \"CANCELLED\"]","description_kind":"plain","optional":true}},"block_types":{"inspect_job":{"nesting_mode":"list","block":{"attributes":{"inspect_template_name":{"type":"string","description":"The name of the template to run when this job is triggered.","description_kind":"plain","required":true}},"block_types":{"actions":{"nesting_mode":"list","block":{"block_types":{"save_findings":{"nesting_mode":"list","block":{"block_types":{"output_config":{"nesting_mode":"list","block":{"attributes":{"output_schema":{"type":"string","description":"Schema used for writing the findings for Inspect jobs. This field is only used for\nInspect and must be unspecified for Risk jobs. Columns are derived from the Finding\nobject. If appending to an existing table, any columns from the predefined schema\nthat are missing will be added. No columns in the existing table will be deleted.\n\nIf unspecified, then all available columns will be used for a new table or an (existing)\ntable with no schema, and no changes will be made to an existing table that has a schema.\nOnly for use with external storage. Possible values: [\"BASIC_COLUMNS\", \"GCS_COLUMNS\", \"DATASTORE_COLUMNS\", \"BIG_QUERY_COLUMNS\", \"ALL_COLUMNS\"]","description_kind":"plain","optional":true}},"block_types":{"table":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"Dataset ID of the table.","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The Google Cloud Platform project ID of the project containing the table.","description_kind":"plain","required":true},"table_id":{"type":"string","description":"Name of the table. If is not set a new one will be generated for you with the following format:\n'dlp_googleapis_yyyy_mm_dd_[dlp_job_id]'. Pacific timezone will be used for generating the date details.","description_kind":"plain","optional":true}},"description":"Information on the location of the target BigQuery Table.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Information on where to store output","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Schedule for triggered jobs","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"A task to execute on the completion of a job.","description_kind":"plain"},"min_items":1},"storage_config":{"nesting_mode":"list","block":{"block_types":{"big_query_options":{"nesting_mode":"list","block":{"block_types":{"table_reference":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The dataset ID of the table.","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The Google Cloud Platform project ID of the project containing the table.","description_kind":"plain","required":true},"table_id":{"type":"string","description":"The name of the table.","description_kind":"plain","required":true}},"description":"Set of files to scan.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Options defining BigQuery table and row identifiers.","description_kind":"plain"},"max_items":1},"cloud_storage_options":{"nesting_mode":"list","block":{"attributes":{"bytes_limit_per_file":{"type":"number","description":"Max number of bytes to scan from a file. If a scanned file's size is bigger than this value\nthen the rest of the bytes are omitted.","description_kind":"plain","optional":true},"bytes_limit_per_file_percent":{"type":"number","description":"Max percentage of bytes to scan from a file. The rest are omitted. The number of bytes scanned is rounded down.\nMust be between 0 and 100, inclusively. Both 0 and 100 means no limit.","description_kind":"plain","optional":true},"file_types":{"type":["list","string"],"description":"List of file type groups to include in the scan. If empty, all files are scanned and available data\nformat processors are applied. In addition, the binary content of the selected files is always scanned as well.\nImages are scanned only as binary if the specified region does not support image inspection and no fileTypes were specified. Possible values: [\"BINARY_FILE\", \"TEXT_FILE\", \"IMAGE\", \"WORD\", \"PDF\", \"AVRO\", \"CSV\", \"TSV\"]","description_kind":"plain","optional":true},"files_limit_percent":{"type":"number","description":"Limits the number of files to scan to this percentage of the input FileSet. Number of files scanned is rounded down.\nMust be between 0 and 100, inclusively. Both 0 and 100 means no limit.","description_kind":"plain","optional":true},"sample_method":{"type":"string","description":"How to sample bytes if not all bytes are scanned. Meaningful only when used in conjunction with bytesLimitPerFile.\nIf not specified, scanning would start from the top. Possible values: [\"TOP\", \"RANDOM_START\"]","description_kind":"plain","optional":true}},"block_types":{"file_set":{"nesting_mode":"list","block":{"attributes":{"url":{"type":"string","description":"The Cloud Storage url of the file(s) to scan, in the format 'gs://\u003cbucket\u003e/\u003cpath\u003e'. Trailing wildcard\nin the path is allowed.\n\nIf the url ends in a trailing slash, the bucket or directory represented by the url will be scanned\nnon-recursively (content in sub-directories will not be scanned). This means that 'gs://mybucket/' is\nequivalent to 'gs://mybucket/*', and 'gs://mybucket/directory/' is equivalent to 'gs://mybucket/directory/*'.","description_kind":"plain","optional":true}},"block_types":{"regex_file_set":{"nesting_mode":"list","block":{"attributes":{"bucket_name":{"type":"string","description":"The name of a Cloud Storage bucket.","description_kind":"plain","required":true},"exclude_regex":{"type":["list","string"],"description":"A list of regular expressions matching file paths to exclude. All files in the bucket that match at\nleast one of these regular expressions will be excluded from the scan.","description_kind":"plain","optional":true},"include_regex":{"type":["list","string"],"description":"A list of regular expressions matching file paths to include. All files in the bucket\nthat match at least one of these regular expressions will be included in the set of files,\nexcept for those that also match an item in excludeRegex. Leaving this field empty will\nmatch all files by default (this is equivalent to including .* in the list)","description_kind":"plain","optional":true}},"description":"The regex-filtered set of files to scan.","description_kind":"plain"},"max_items":1}},"description":"Set of files to scan.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Options defining a file or a set of files within a Google Cloud Storage bucket.","description_kind":"plain"},"max_items":1},"datastore_options":{"nesting_mode":"list","block":{"block_types":{"kind":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"The name of the Datastore kind.","description_kind":"plain","required":true}},"description":"A representation of a Datastore kind.","description_kind":"plain"},"min_items":1,"max_items":1},"partition_id":{"nesting_mode":"list","block":{"attributes":{"namespace_id":{"type":"string","description":"If not empty, the ID of the namespace to which the entities belong.","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The ID of the project to which the entities belong.","description_kind":"plain","required":true}},"description":"Datastore partition ID. A partition ID identifies a grouping of entities. The grouping\nis always by project and namespace, however the namespace ID may be empty.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Options defining a data set within Google Cloud Datastore.","description_kind":"plain"},"max_items":1},"timespan_config":{"nesting_mode":"list","block":{"attributes":{"enable_auto_population_of_timespan_config":{"type":"bool","description":"When the job is started by a JobTrigger we will automatically figure out a valid startTime to avoid\nscanning files that have not been modified since the last time the JobTrigger executed. This will\nbe based on the time of the execution of the last run of the JobTrigger.","description_kind":"plain","optional":true},"end_time":{"type":"string","description":"Exclude files or rows newer than this value. If set to zero, no upper time limit is applied.","description_kind":"plain","optional":true},"start_time":{"type":"string","description":"Exclude files or rows older than this value.","description_kind":"plain","optional":true}},"block_types":{"timestamp_field":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Specification of the field containing the timestamp of scanned items. Used for data sources like Datastore and BigQuery.\n\nFor BigQuery: Required to filter out rows based on the given start and end times. If not specified and the table was\nmodified between the given start and end times, the entire table will be scanned. The valid data types of the timestamp\nfield are: INTEGER, DATE, TIMESTAMP, or DATETIME BigQuery column.\n\nFor Datastore. Valid data types of the timestamp field are: TIMESTAMP. Datastore entity will be scanned if the\ntimestamp property does not exist or its value is empty or invalid.","description_kind":"plain","required":true}},"description":"Information on where to inspect","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Information on where to inspect","description_kind":"plain"},"max_items":1}},"description":"Information on where to inspect","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Controls what and how to inspect for findings.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"triggers":{"nesting_mode":"list","block":{"block_types":{"schedule":{"nesting_mode":"list","block":{"attributes":{"recurrence_period_duration":{"type":"string","description":"With this option a job is started a regular periodic basis. For example: every day (86400 seconds).\n\nA scheduled start time will be skipped if the previous execution has not ended when its scheduled time occurs.\n\nThis value must be set to a time duration greater than or equal to 1 day and can be no longer than 60 days.\n\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true}},"description":"Schedule for triggered jobs","description_kind":"plain"},"max_items":1}},"description":"What event needs to occur for a new job to be started.","description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"google_data_loss_prevention_stored_info_type":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A description of the info type.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"User set display name of the info type.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of the info type. Set by the server.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The parent of the info type in any of the following formats:\n\n* 'projects/{{project}}'\n* 'projects/{{project}}/locations/{{location}}'\n* 'organizations/{{organization_id}}'\n* 'organizations/{{organization_id}}/locations/{{location}}'","description_kind":"plain","required":true}},"block_types":{"dictionary":{"nesting_mode":"list","block":{"block_types":{"cloud_storage_path":{"nesting_mode":"list","block":{"attributes":{"path":{"type":"string","description":"A url representing a file or path (no wildcards) in Cloud Storage. Example: 'gs://[BUCKET_NAME]/dictionary.txt'","description_kind":"plain","required":true}},"description":"Newline-delimited file of words in Cloud Storage. Only a single file is accepted.","description_kind":"plain"},"max_items":1},"word_list":{"nesting_mode":"list","block":{"attributes":{"words":{"type":["list","string"],"description":"Words or phrases defining the dictionary. The dictionary must contain at least one\nphrase and every phrase must contain at least 2 characters that are letters or digits.","description_kind":"plain","required":true}},"description":"List of words or phrases to search for.","description_kind":"plain"},"max_items":1}},"description":"Dictionary which defines the rule.","description_kind":"plain"},"max_items":1},"large_custom_dictionary":{"nesting_mode":"list","block":{"block_types":{"big_query_field":{"nesting_mode":"list","block":{"block_types":{"field":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name describing the field.","description_kind":"plain","required":true}},"description":"Designated field in the BigQuery table.","description_kind":"plain"},"min_items":1,"max_items":1},"table":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The dataset ID of the table.","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The Google Cloud Platform project ID of the project containing the table.","description_kind":"plain","required":true},"table_id":{"type":"string","description":"The name of the table.","description_kind":"plain","required":true}},"description":"Field in a BigQuery table where each cell represents a dictionary phrase.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Field in a BigQuery table where each cell represents a dictionary phrase.","description_kind":"plain"},"max_items":1},"cloud_storage_file_set":{"nesting_mode":"list","block":{"attributes":{"url":{"type":"string","description":"The url, in the format 'gs://\u003cbucket\u003e/\u003cpath\u003e'. Trailing wildcard in the path is allowed.","description_kind":"plain","required":true}},"description":"Set of files containing newline-delimited lists of dictionary phrases.","description_kind":"plain"},"max_items":1},"output_path":{"nesting_mode":"list","block":{"attributes":{"path":{"type":"string","description":"A url representing a file or path (no wildcards) in Cloud Storage. Example: 'gs://[BUCKET_NAME]/dictionary.txt'","description_kind":"plain","required":true}},"description":"Location to store dictionary artifacts in Google Cloud Storage. These files will only be accessible by project owners and the DLP API.\nIf any of these artifacts are modified, the dictionary is considered invalid and can no longer be used.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Dictionary which defines the rule.","description_kind":"plain"},"max_items":1},"regex":{"nesting_mode":"list","block":{"attributes":{"group_indexes":{"type":["list","number"],"description":"The index of the submatch to extract as findings. When not specified, the entire match is returned. No more than 3 may be included.","description_kind":"plain","optional":true},"pattern":{"type":"string","description":"Pattern defining the regular expression.\nIts syntax (https://github.com/google/re2/wiki/Syntax) can be found under the google/re2 repository on GitHub.","description_kind":"plain","required":true}},"description":"Regular expression which defines the rule.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dataflow_job":{"version":0,"block":{"attributes":{"additional_experiments":{"type":["set","string"],"description":"List of experiments that should be used by the job. An example value is [\"enable_stackdriver_agent_metrics\"].","description_kind":"plain","optional":true},"enable_streaming_engine":{"type":"bool","description":"Indicates if the job should use the streaming engine feature.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_configuration":{"type":"string","description":"The configuration for VM IPs. Options are \"WORKER_IP_PUBLIC\" or \"WORKER_IP_PRIVATE\".","description_kind":"plain","optional":true},"job_id":{"type":"string","description":"The unique ID of this job.","description_kind":"plain","computed":true},"kms_key_name":{"type":"string","description":"The name for the Cloud KMS key for the job. Key format is: projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"User labels to be specified for the job. Keys and values should follow the restrictions specified in the labeling restrictions page. NOTE: Google-provided Dataflow templates often provide default labels that begin with goog-dataflow-provided. Unless explicitly set in config, these labels will be ignored to prevent diffs on re-apply.","description_kind":"plain","optional":true},"machine_type":{"type":"string","description":"The machine type to use for the job.","description_kind":"plain","optional":true},"max_workers":{"type":"number","description":"The number of workers permitted to work on the job. More workers may improve processing speed at additional cost.","description_kind":"plain","optional":true},"name":{"type":"string","description":"A unique name for the resource, required by Dataflow.","description_kind":"plain","required":true},"network":{"type":"string","description":"The network to which VMs will be assigned. If it is not provided, \"default\" will be used.","description_kind":"plain","optional":true},"on_delete":{"type":"string","description":"One of \"drain\" or \"cancel\". Specifies behavior of deletion during terraform destroy.","description_kind":"plain","optional":true},"parameters":{"type":["map","string"],"description":"Key/Value pairs to be passed to the Dataflow job (as used in the template).","description_kind":"plain","optional":true},"project":{"type":"string","description":"The project in which the resource belongs.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region in which the created job should run.","description_kind":"plain","optional":true},"service_account_email":{"type":"string","description":"The Service Account email used to create the job.","description_kind":"plain","optional":true},"state":{"type":"string","description":"The current state of the resource, selected from the JobState enum.","description_kind":"plain","computed":true},"subnetwork":{"type":"string","description":"The subnetwork to which VMs will be assigned. Should be of the form \"regions/REGION/subnetworks/SUBNETWORK\".","description_kind":"plain","optional":true},"temp_gcs_location":{"type":"string","description":"A writeable location on Google Cloud Storage for the Dataflow job to dump its temporary data.","description_kind":"plain","required":true},"template_gcs_path":{"type":"string","description":"The Google Cloud Storage path to the Dataflow job template.","description_kind":"plain","required":true},"transform_name_mapping":{"type":["map","string"],"description":"Only applicable when updating a pipeline. Map of transform name prefixes of the job to be replaced with the corresponding name prefixes of the new job.","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of this job, selected from the JobType enum.","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone in which the created job should run. If it is not provided, the provider zone is used.","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dataproc_autoscaling_policy":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location where the autoscaling policy should reside.\nThe default value is 'global'.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The \"resource name\" of the autoscaling policy.","description_kind":"plain","computed":true},"policy_id":{"type":"string","description":"The policy id. The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_),\nand hyphens (-). Cannot begin or end with underscore or hyphen. Must consist of between\n3 and 50 characters.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"basic_algorithm":{"nesting_mode":"list","block":{"attributes":{"cooldown_period":{"type":"string","description":"Duration between scaling events. A scaling period starts after the\nupdate operation from the previous event has completed.\n\nBounds: [2m, 1d]. Default: 2m.","description_kind":"plain","optional":true}},"block_types":{"yarn_config":{"nesting_mode":"list","block":{"attributes":{"graceful_decommission_timeout":{"type":"string","description":"Timeout for YARN graceful decommissioning of Node Managers. Specifies the\nduration to wait for jobs to complete before forcefully removing workers\n(and potentially interrupting jobs). Only applicable to downscaling operations.\n\nBounds: [0s, 1d].","description_kind":"plain","required":true},"scale_down_factor":{"type":"number","description":"Fraction of average pending memory in the last cooldown period for which to\nremove workers. A scale-down factor of 1 will result in scaling down so that there\nis no available memory remaining after the update (more aggressive scaling).\nA scale-down factor of 0 disables removing workers, which can be beneficial for\nautoscaling a single job.\n\nBounds: [0.0, 1.0].","description_kind":"plain","required":true},"scale_down_min_worker_fraction":{"type":"number","description":"Minimum scale-down threshold as a fraction of total cluster size before scaling occurs.\nFor example, in a 20-worker cluster, a threshold of 0.1 means the autoscaler must\nrecommend at least a 2 worker scale-down for the cluster to scale. A threshold of 0\nmeans the autoscaler will scale down on any recommended change.\n\nBounds: [0.0, 1.0]. Default: 0.0.","description_kind":"plain","optional":true},"scale_up_factor":{"type":"number","description":"Fraction of average pending memory in the last cooldown period for which to\nadd workers. A scale-up factor of 1.0 will result in scaling up so that there\nis no pending memory remaining after the update (more aggressive scaling).\nA scale-up factor closer to 0 will result in a smaller magnitude of scaling up\n(less aggressive scaling).\n\nBounds: [0.0, 1.0].","description_kind":"plain","required":true},"scale_up_min_worker_fraction":{"type":"number","description":"Minimum scale-up threshold as a fraction of total cluster size before scaling\noccurs. For example, in a 20-worker cluster, a threshold of 0.1 means the autoscaler\nmust recommend at least a 2-worker scale-up for the cluster to scale. A threshold of\n0 means the autoscaler will scale up on any recommended change.\n\nBounds: [0.0, 1.0]. Default: 0.0.","description_kind":"plain","optional":true}},"description":"YARN autoscaling configuration.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Basic algorithm for autoscaling.","description_kind":"plain"},"max_items":1},"secondary_worker_config":{"nesting_mode":"list","block":{"attributes":{"max_instances":{"type":"number","description":"Maximum number of instances for this group. Note that by default, clusters will not use\nsecondary workers. Required for secondary workers if the minimum secondary instances is set.\nBounds: [minInstances, ). Defaults to 0.","description_kind":"plain","optional":true},"min_instances":{"type":"number","description":"Minimum number of instances for this group. Bounds: [0, maxInstances]. Defaults to 0.","description_kind":"plain","optional":true},"weight":{"type":"number","description":"Weight for the instance group, which is used to determine the fraction of total workers\nin the cluster from this instance group. For example, if primary workers have weight 2,\nand secondary workers have weight 1, the cluster will have approximately 2 primary workers\nfor each secondary worker.\n\nThe cluster may not reach the specified balance if constrained by min/max bounds or other\nautoscaling settings. For example, if maxInstances for secondary workers is 0, then only\nprimary workers will be added. The cluster can also be out of balance when created.\n\nIf weight is not set on any instance group, the cluster will default to equal weight for\nall groups: the cluster will attempt to maintain an equal number of workers in each group\nwithin the configured size bounds for each group. If weight is set for one group only,\nthe cluster will default to zero weight on the unset group. For example if weight is set\nonly on primary workers, the cluster will use primary workers only and no secondary workers.","description_kind":"plain","optional":true}},"description":"Describes how the autoscaler will operate for secondary workers.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"worker_config":{"nesting_mode":"list","block":{"attributes":{"max_instances":{"type":"number","description":"Maximum number of instances for this group.","description_kind":"plain","required":true},"min_instances":{"type":"number","description":"Minimum number of instances for this group. Bounds: [2, maxInstances]. Defaults to 2.","description_kind":"plain","optional":true},"weight":{"type":"number","description":"Weight for the instance group, which is used to determine the fraction of total workers\nin the cluster from this instance group. For example, if primary workers have weight 2,\nand secondary workers have weight 1, the cluster will have approximately 2 primary workers\nfor each secondary worker.\n\nThe cluster may not reach the specified balance if constrained by min/max bounds or other\nautoscaling settings. For example, if maxInstances for secondary workers is 0, then only\nprimary workers will be added. The cluster can also be out of balance when created.\n\nIf weight is not set on any instance group, the cluster will default to equal weight for\nall groups: the cluster will attempt to maintain an equal number of workers in each group\nwithin the configured size bounds for each group. If weight is set for one group only,\nthe cluster will default to zero weight on the unset group. For example if weight is set\nonly on primary workers, the cluster will use primary workers only and no secondary workers.","description_kind":"plain","optional":true}},"description":"Describes how the autoscaler will operate for primary workers.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_dataproc_cluster":{"version":0,"block":{"attributes":{"graceful_decommission_timeout":{"type":"string","description":"The timeout duration which allows graceful decomissioning when you change the number of worker nodes directly through a terraform apply","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The list of labels (key/value pairs) to be applied to instances in the cluster. GCP generates some itself including goog-dataproc-cluster-name which is the name of the cluster.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the cluster, unique within the project and zone.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the cluster will exist. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region in which the cluster and associated nodes will be created in. Defaults to global.","description_kind":"plain","optional":true}},"block_types":{"cluster_config":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description":" The name of the cloud storage bucket ultimately used to house the staging data for the cluster. If staging_bucket is specified, it will contain this value, otherwise it will be the auto generated name.","description_kind":"plain","computed":true},"staging_bucket":{"type":"string","description":"The Cloud Storage staging bucket used to stage files, such as Hadoop jars, between client machines and the cluster. Note: If you don't explicitly specify a staging_bucket then GCP will auto create / assign one for you. However, you are not guaranteed an auto generated bucket which is solely dedicated to your cluster; it may be shared with other clusters in the same region/zone also choosing to use the auto generation option.","description_kind":"plain","optional":true},"temp_bucket":{"type":"string","description":"The Cloud Storage temp bucket used to store ephemeral cluster and jobs data, such as Spark and MapReduce history files. Note: If you don't explicitly specify a temp_bucket then GCP will auto create / assign one for you.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"autoscaling_config":{"nesting_mode":"list","block":{"attributes":{"policy_uri":{"type":"string","description":"The autoscaling policy used by the cluster.","description_kind":"plain","required":true}},"description":"The autoscaling policy config associated with the cluster.","description_kind":"plain"},"max_items":1},"encryption_config":{"nesting_mode":"list","block":{"attributes":{"kms_key_name":{"type":"string","description":"The Cloud KMS key name to use for PD disk encryption for all instances in the cluster.","description_kind":"plain","required":true}},"description":"The Customer managed encryption keys settings for the cluster.","description_kind":"plain"},"max_items":1},"gce_cluster_config":{"nesting_mode":"list","block":{"attributes":{"internal_ip_only":{"type":"bool","description":"By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. If set to true, all instances in the cluster will only have internal IP addresses. Note: Private Google Access (also known as privateIpGoogleAccess) must be enabled on the subnetwork that the cluster will be launched in.","description_kind":"plain","optional":true},"metadata":{"type":["map","string"],"description":"A map of the Compute Engine metadata entries to add to all instances","description_kind":"plain","optional":true},"network":{"type":"string","description":"The name or self_link of the Google Compute Engine network to the cluster will be part of. Conflicts with subnetwork. If neither is specified, this defaults to the \"default\" network.","description_kind":"plain","optional":true,"computed":true},"service_account":{"type":"string","description":"The service account to be used by the Node VMs. If not specified, the \"default\" service account is used.","description_kind":"plain","optional":true},"service_account_scopes":{"type":["set","string"],"description":"The set of Google API scopes to be made available on all of the node VMs under the service_account specified. These can be either FQDNs, or scope aliases.","description_kind":"plain","optional":true,"computed":true},"subnetwork":{"type":"string","description":"The name or self_link of the Google Compute Engine subnetwork the cluster will be part of. Conflicts with network.","description_kind":"plain","optional":true},"tags":{"type":["set","string"],"description":"The list of instance tags applied to instances in the cluster. Tags are used to identify valid sources or targets for network firewalls.","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The GCP zone where your data is stored and used (i.e. where the master and the worker nodes will be created in). If region is set to 'global' (default) then zone is mandatory, otherwise GCP is able to make use of Auto Zone Placement to determine this automatically for you. Note: This setting additionally determines and restricts which computing resources are available for use with other configs such as cluster_config.master_config.machine_type and cluster_config.worker_config.machine_type.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"shielded_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description":"Defines whether instances have integrity monitoring enabled.","description_kind":"plain","optional":true},"enable_secure_boot":{"type":"bool","description":"Defines whether instances have Secure Boot enabled.","description_kind":"plain","optional":true},"enable_vtpm":{"type":"bool","description":"Defines whether instances have the vTPM enabled.","description_kind":"plain","optional":true}},"description":"Shielded Instance Config for clusters using Compute Engine Shielded VMs.","description_kind":"plain"},"max_items":1}},"description":"Common config settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster.","description_kind":"plain"},"max_items":1},"initialization_action":{"nesting_mode":"list","block":{"attributes":{"script":{"type":"string","description":"The script to be executed during initialization of the cluster. The script must be a GCS file with a gs:// prefix.","description_kind":"plain","required":true},"timeout_sec":{"type":"number","description":"The maximum duration (in seconds) which script is allowed to take to execute its action. GCP will default to a predetermined computed value if not set (currently 300).","description_kind":"plain","optional":true}},"description":"Commands to execute on each node after config is completed. You can specify multiple versions of these.","description_kind":"plain"}},"master_config":{"nesting_mode":"list","block":{"attributes":{"image_uri":{"type":"string","description":"The URI for the image to use for this master/worker","description_kind":"plain","optional":true,"computed":true},"instance_names":{"type":["list","string"],"description":"List of master/worker instance names which have been assigned to the cluster.","description_kind":"plain","computed":true},"machine_type":{"type":"string","description":"The name of a Google Compute Engine machine type to create for the master/worker","description_kind":"plain","optional":true,"computed":true},"min_cpu_platform":{"type":"string","description":"The name of a minimum generation of CPU family for the master/worker. If not specified, GCP will default to a predetermined computed value for each zone.","description_kind":"plain","optional":true,"computed":true},"num_instances":{"type":"number","description":"Specifies the number of master/worker nodes to create. If not specified, GCP will default to a predetermined computed value.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"accelerators":{"nesting_mode":"set","block":{"attributes":{"accelerator_count":{"type":"number","description":"The number of the accelerator cards of this type exposed to this instance. Often restricted to one of 1, 2, 4, or 8.","description_kind":"plain","required":true},"accelerator_type":{"type":"string","description":"The short name of the accelerator type to expose to this instance. For example, nvidia-tesla-k80.","description_kind":"plain","required":true}},"description":"The Compute Engine accelerator (GPU) configuration for these instances. Can be specified multiple times.","description_kind":"plain"}},"disk_config":{"nesting_mode":"list","block":{"attributes":{"boot_disk_size_gb":{"type":"number","description":"Size of the primary disk attached to each node, specified in GB. The primary disk contains the boot volume and system libraries, and the smallest allowed disk size is 10GB. GCP will default to a predetermined computed value if not set (currently 500GB). Note: If SSDs are not attached, it also contains the HDFS data blocks and Hadoop working directories.","description_kind":"plain","optional":true,"computed":true},"boot_disk_type":{"type":"string","description":"The disk type of the primary disk attached to each node. One of \"pd-ssd\" or \"pd-standard\". Defaults to \"pd-standard\".","description_kind":"plain","optional":true},"num_local_ssds":{"type":"number","description":"The amount of local SSD disks that will be attached to each master cluster node. Defaults to 0.","description_kind":"plain","optional":true,"computed":true}},"description":"Disk Config","description_kind":"plain"},"max_items":1}},"description":"The Google Compute Engine config settings for the master/worker instances in a cluster.","description_kind":"plain"},"max_items":1},"preemptible_worker_config":{"nesting_mode":"list","block":{"attributes":{"instance_names":{"type":["list","string"],"description":"List of preemptible instance names which have been assigned to the cluster.","description_kind":"plain","computed":true},"num_instances":{"type":"number","description":"Specifies the number of preemptible nodes to create. Defaults to 0.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"disk_config":{"nesting_mode":"list","block":{"attributes":{"boot_disk_size_gb":{"type":"number","description":"Size of the primary disk attached to each preemptible worker node, specified in GB. The smallest allowed disk size is 10GB. GCP will default to a predetermined computed value if not set (currently 500GB). Note: If SSDs are not attached, it also contains the HDFS data blocks and Hadoop working directories.","description_kind":"plain","optional":true,"computed":true},"boot_disk_type":{"type":"string","description":"The disk type of the primary disk attached to each preemptible worker node. One of \"pd-ssd\" or \"pd-standard\". Defaults to \"pd-standard\".","description_kind":"plain","optional":true},"num_local_ssds":{"type":"number","description":"The amount of local SSD disks that will be attached to each preemptible worker node. Defaults to 0.","description_kind":"plain","optional":true,"computed":true}},"description":"Disk Config","description_kind":"plain"},"max_items":1}},"description":"The Google Compute Engine config settings for the additional (aka preemptible) instances in a cluster.","description_kind":"plain"},"max_items":1},"security_config":{"nesting_mode":"list","block":{"block_types":{"kerberos_config":{"nesting_mode":"list","block":{"attributes":{"cross_realm_trust_admin_server":{"type":"string","description":"The admin server (IP or hostname) for the remote trusted realm in a cross realm trust relationship.","description_kind":"plain","optional":true},"cross_realm_trust_kdc":{"type":"string","description":"The KDC (IP or hostname) for the remote trusted realm in a cross realm trust relationship.","description_kind":"plain","optional":true},"cross_realm_trust_realm":{"type":"string","description":"The remote realm the Dataproc on-cluster KDC will trust, should the user enable cross realm trust.","description_kind":"plain","optional":true},"cross_realm_trust_shared_password_uri":{"type":"string","description":"The Cloud Storage URI of a KMS encrypted file containing the shared password between the on-cluster\nKerberos realm and the remote trusted realm, in a cross realm trust relationship.","description_kind":"plain","optional":true},"enable_kerberos":{"type":"bool","description":"Flag to indicate whether to Kerberize the cluster.","description_kind":"plain","optional":true},"kdc_db_key_uri":{"type":"string","description":"The Cloud Storage URI of a KMS encrypted file containing the master key of the KDC database.","description_kind":"plain","optional":true},"key_password_uri":{"type":"string","description":"The Cloud Storage URI of a KMS encrypted file containing the password to the user provided key. For the self-signed certificate, this password is generated by Dataproc.","description_kind":"plain","optional":true},"keystore_password_uri":{"type":"string","description":"The Cloud Storage URI of a KMS encrypted file containing\nthe password to the user provided keystore. For the self-signed certificate, this password is generated\nby Dataproc","description_kind":"plain","optional":true},"keystore_uri":{"type":"string","description":"The Cloud Storage URI of the keystore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.","description_kind":"plain","optional":true},"kms_key_uri":{"type":"string","description":"The uri of the KMS key used to encrypt various sensitive files.","description_kind":"plain","required":true},"realm":{"type":"string","description":"The name of the on-cluster Kerberos realm. If not specified, the uppercased domain of hostnames will be the realm.","description_kind":"plain","optional":true},"root_principal_password_uri":{"type":"string","description":"The cloud Storage URI of a KMS encrypted file containing the root principal password.","description_kind":"plain","required":true},"tgt_lifetime_hours":{"type":"number","description":"The lifetime of the ticket granting ticket, in hours.","description_kind":"plain","optional":true},"truststore_password_uri":{"type":"string","description":"The Cloud Storage URI of a KMS encrypted file containing the password to the user provided truststore. For the self-signed certificate, this password is generated by Dataproc.","description_kind":"plain","optional":true},"truststore_uri":{"type":"string","description":"The Cloud Storage URI of the truststore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.","description_kind":"plain","optional":true}},"description":"Kerberos related configuration","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Security related configuration.","description_kind":"plain"},"max_items":1},"software_config":{"nesting_mode":"list","block":{"attributes":{"image_version":{"type":"string","description":"The Cloud Dataproc image version to use for the cluster - this controls the sets of software versions installed onto the nodes when you create clusters. If not specified, defaults to the latest version.","description_kind":"plain","optional":true,"computed":true},"optional_components":{"type":["set","string"],"description":"The set of optional components to activate on the cluster.","description_kind":"plain","optional":true},"override_properties":{"type":["map","string"],"description":"A list of override and additional properties (key/value pairs) used to modify various aspects of the common configuration files used when creating a cluster.","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"A list of the properties used to set the daemon config files. This will include any values supplied by the user via cluster_config.software_config.override_properties","description_kind":"plain","computed":true}},"description":"The config settings for software inside the cluster.","description_kind":"plain"},"max_items":1},"worker_config":{"nesting_mode":"list","block":{"attributes":{"image_uri":{"type":"string","description":"The URI for the image to use for this master/worker","description_kind":"plain","optional":true,"computed":true},"instance_names":{"type":["list","string"],"description":"List of master/worker instance names which have been assigned to the cluster.","description_kind":"plain","computed":true},"machine_type":{"type":"string","description":"The name of a Google Compute Engine machine type to create for the master/worker","description_kind":"plain","optional":true,"computed":true},"min_cpu_platform":{"type":"string","description":"The name of a minimum generation of CPU family for the master/worker. If not specified, GCP will default to a predetermined computed value for each zone.","description_kind":"plain","optional":true,"computed":true},"num_instances":{"type":"number","description":"Specifies the number of master/worker nodes to create. If not specified, GCP will default to a predetermined computed value.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"accelerators":{"nesting_mode":"set","block":{"attributes":{"accelerator_count":{"type":"number","description":"The number of the accelerator cards of this type exposed to this instance. Often restricted to one of 1, 2, 4, or 8.","description_kind":"plain","required":true},"accelerator_type":{"type":"string","description":"The short name of the accelerator type to expose to this instance. For example, nvidia-tesla-k80.","description_kind":"plain","required":true}},"description":"The Compute Engine accelerator (GPU) configuration for these instances. Can be specified multiple times.","description_kind":"plain"}},"disk_config":{"nesting_mode":"list","block":{"attributes":{"boot_disk_size_gb":{"type":"number","description":"Size of the primary disk attached to each node, specified in GB. The primary disk contains the boot volume and system libraries, and the smallest allowed disk size is 10GB. GCP will default to a predetermined computed value if not set (currently 500GB). Note: If SSDs are not attached, it also contains the HDFS data blocks and Hadoop working directories.","description_kind":"plain","optional":true,"computed":true},"boot_disk_type":{"type":"string","description":"The disk type of the primary disk attached to each node. One of \"pd-ssd\" or \"pd-standard\". Defaults to \"pd-standard\".","description_kind":"plain","optional":true},"num_local_ssds":{"type":"number","description":"The amount of local SSD disks that will be attached to each master cluster node. Defaults to 0.","description_kind":"plain","optional":true,"computed":true}},"description":"Disk Config","description_kind":"plain"},"max_items":1}},"description":"The Google Compute Engine config settings for the master/worker instances in a cluster.","description_kind":"plain"},"max_items":1}},"description":"Allows you to configure various aspects of the cluster.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dataproc_cluster_iam_binding":{"version":0,"block":{"attributes":{"cluster":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_dataproc_cluster_iam_member":{"version":0,"block":{"attributes":{"cluster":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_dataproc_cluster_iam_policy":{"version":0,"block":{"attributes":{"cluster":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_dataproc_job":{"version":0,"block":{"attributes":{"driver_controls_files_uri":{"type":"string","description":"Output-only. If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.","description_kind":"plain","computed":true},"driver_output_resource_uri":{"type":"string","description":"Output-only. A URI pointing to the location of the stdout of the job's driver program","description_kind":"plain","computed":true},"force_delete":{"type":"bool","description":"By default, you can only delete inactive jobs within Dataproc. Setting this to true, and calling destroy, will ensure that the job is first cancelled before issuing the delete.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Optional. The labels to associate with this job.","description_kind":"plain","optional":true},"project":{"type":"string","description":"The project in which the cluster can be found and jobs subsequently run against. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The Cloud Dataproc region. This essentially determines which clusters are available for this job to be submitted to. If not specified, defaults to global.","description_kind":"plain","optional":true},"status":{"type":["list",["object",{"details":"string","state":"string","state_start_time":"string","substate":"string"}]],"description":"The status of the job.","description_kind":"plain","computed":true}},"block_types":{"hadoop_config":{"nesting_mode":"list","block":{"attributes":{"archive_uris":{"type":["list","string"],"description":"HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.","description_kind":"plain","optional":true},"args":{"type":["list","string"],"description":"The arguments to pass to the driver.","description_kind":"plain","optional":true},"file_uris":{"type":["list","string"],"description":"HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.","description_kind":"plain","optional":true},"jar_file_uris":{"type":["list","string"],"description":"HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.","description_kind":"plain","optional":true},"main_class":{"type":"string","description":"The class containing the main method of the driver. Must be in a provided jar or jar that is already on the classpath. Conflicts with main_jar_file_uri","description_kind":"plain","optional":true},"main_jar_file_uri":{"type":"string","description":"The HCFS URI of jar file containing the driver jar. Conflicts with main_class","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"Optional. The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'.","description_kind":"plain","required":true}},"description":"The runtime logging config of the job","description_kind":"plain"},"max_items":1}},"description":"The config of Hadoop job","description_kind":"plain"},"max_items":1},"hive_config":{"nesting_mode":"list","block":{"attributes":{"continue_on_failure":{"type":"bool","description":"Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries. Defaults to false.","description_kind":"plain","optional":true},"jar_file_uris":{"type":["list","string"],"description":"HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.","description_kind":"plain","optional":true},"query_file_uri":{"type":"string","description":"HCFS URI of file containing Hive script to execute as the job. Conflicts with query_list","description_kind":"plain","optional":true},"query_list":{"type":["list","string"],"description":"The list of Hive queries or statements to execute as part of the job. Conflicts with query_file_uri","description_kind":"plain","optional":true},"script_variables":{"type":["map","string"],"description":"Mapping of query variable names to values (equivalent to the Hive command: SET name=\"value\";).","description_kind":"plain","optional":true}},"description":"The config of hive job","description_kind":"plain"},"max_items":1},"pig_config":{"nesting_mode":"list","block":{"attributes":{"continue_on_failure":{"type":"bool","description":"Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries. Defaults to false.","description_kind":"plain","optional":true},"jar_file_uris":{"type":["list","string"],"description":"HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.","description_kind":"plain","optional":true},"query_file_uri":{"type":"string","description":"HCFS URI of file containing Hive script to execute as the job. Conflicts with query_list","description_kind":"plain","optional":true},"query_list":{"type":["list","string"],"description":"The list of Hive queries or statements to execute as part of the job. Conflicts with query_file_uri","description_kind":"plain","optional":true},"script_variables":{"type":["map","string"],"description":"Mapping of query variable names to values (equivalent to the Pig command: name=[value]).","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"Optional. The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'.","description_kind":"plain","required":true}},"description":"The runtime logging config of the job","description_kind":"plain"},"max_items":1}},"description":"The config of pag job.","description_kind":"plain"},"max_items":1},"placement":{"nesting_mode":"list","block":{"attributes":{"cluster_name":{"type":"string","description":"The name of the cluster where the job will be submitted","description_kind":"plain","required":true},"cluster_uuid":{"type":"string","description":"Output-only. A cluster UUID generated by the Cloud Dataproc service when the job is submitted","description_kind":"plain","computed":true}},"description":"The config of job placement.","description_kind":"plain"},"min_items":1,"max_items":1},"pyspark_config":{"nesting_mode":"list","block":{"attributes":{"archive_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip","description_kind":"plain","optional":true},"args":{"type":["list","string"],"description":"Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission","description_kind":"plain","optional":true},"file_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks","description_kind":"plain","optional":true},"jar_file_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks","description_kind":"plain","optional":true},"main_python_file_uri":{"type":"string","description":"Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file","description_kind":"plain","required":true},"properties":{"type":["map","string"],"description":"Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code","description_kind":"plain","optional":true},"python_file_uris":{"type":["list","string"],"description":"Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"Optional. The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'.","description_kind":"plain","required":true}},"description":"The runtime logging config of the job","description_kind":"plain"},"max_items":1}},"description":"The config of pySpark job.","description_kind":"plain"},"max_items":1},"reference":{"nesting_mode":"list","block":{"attributes":{"job_id":{"type":"string","description":"The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs","description_kind":"plain","optional":true,"computed":true}},"description":"The reference of the job","description_kind":"plain"},"max_items":1},"scheduling":{"nesting_mode":"list","block":{"attributes":{"max_failures_per_hour":{"type":"number","description":"Maximum number of times per hour a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed.","description_kind":"plain","required":true},"max_failures_total":{"type":"number","description":"Maximum number of times in total a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed.","description_kind":"plain","required":true}},"description":"Optional. Job scheduling configuration.","description_kind":"plain"},"max_items":1},"spark_config":{"nesting_mode":"list","block":{"attributes":{"archive_uris":{"type":["list","string"],"description":"HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.","description_kind":"plain","optional":true},"args":{"type":["list","string"],"description":"The arguments to pass to the driver.","description_kind":"plain","optional":true},"file_uris":{"type":["list","string"],"description":"HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.","description_kind":"plain","optional":true},"jar_file_uris":{"type":["list","string"],"description":"HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.","description_kind":"plain","optional":true},"main_class":{"type":"string","description":"The class containing the main method of the driver. Must be in a provided jar or jar that is already on the classpath. Conflicts with main_jar_file_uri","description_kind":"plain","optional":true},"main_jar_file_uri":{"type":"string","description":"The HCFS URI of jar file containing the driver jar. Conflicts with main_class","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"Optional. The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'.","description_kind":"plain","required":true}},"description":"The runtime logging config of the job","description_kind":"plain"},"max_items":1}},"description":"The config of the Spark job.","description_kind":"plain"},"max_items":1},"sparksql_config":{"nesting_mode":"list","block":{"attributes":{"jar_file_uris":{"type":["list","string"],"description":"HCFS URIs of jar files to be added to the Spark CLASSPATH.","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.","description_kind":"plain","optional":true},"query_file_uri":{"type":"string","description":"The HCFS URI of the script that contains SQL queries. Conflicts with query_list","description_kind":"plain","optional":true},"query_list":{"type":["list","string"],"description":"The list of SQL queries or statements to execute as part of the job. Conflicts with query_file_uri","description_kind":"plain","optional":true},"script_variables":{"type":["map","string"],"description":"Mapping of query variable names to values (equivalent to the Spark SQL command: SET name=\"value\";).","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"Optional. The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'.","description_kind":"plain","required":true}},"description":"The runtime logging config of the job","description_kind":"plain"},"max_items":1}},"description":"The config of SparkSql job","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dataproc_job_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"job_id":{"type":"string","description_kind":"plain","required":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_dataproc_job_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"job_id":{"type":"string","description_kind":"plain","required":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_dataproc_job_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"job_id":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_dataproc_workflow_template":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Output only. The time template was created.","description_kind":"plain","computed":true},"dag_timeout":{"type":"string","description":"Optional. Timeout duration for the DAG of jobs, expressed in seconds (see [JSON representation of duration](https://developers.google.com/protocol-buffers/docs/proto3#json)). The timeout duration must be from 10 minutes (\"600s\") to 24 hours (\"86400s\"). The timer begins when the first job is submitted. If the workflow is running at the end of the timeout period, any remaining jobs are cancelled, the workflow is ended, and if the workflow was running on a [managed cluster](/dataproc/docs/concepts/workflows/using-workflows#configuring_or_selecting_a_cluster), the cluster is deleted.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Optional. The labels to associate with this template. These labels will be propagated to all jobs and clusters created by the workflow instance. Label **keys** must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). Label **values** may be empty, but, if present, must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a template.","description_kind":"plain","optional":true},"location":{"type":"string","description":"The location for the resource","description_kind":"plain","required":true},"name":{"type":"string","description":"Output only. The resource name of the workflow template, as described in https://cloud.google.com/apis/design/resource_names. * For `projects.regions.workflowTemplates`, the resource name of the template has the following format: `projects/{project_id}/regions/{region}/workflowTemplates/{template_id}` * For `projects.locations.workflowTemplates`, the resource name of the template has the following format: `projects/{project_id}/locations/{location}/workflowTemplates/{template_id}`","description_kind":"plain","required":true},"project":{"type":"string","description":"The project for the resource","description_kind":"plain","optional":true,"computed":true},"update_time":{"type":"string","description":"Output only. The time template was last updated.","description_kind":"plain","computed":true},"version":{"type":"number","description":"Output only. The current version of this workflow template.","description_kind":"plain","deprecated":true,"optional":true,"computed":true}},"block_types":{"jobs":{"nesting_mode":"list","block":{"attributes":{"labels":{"type":["map","string"],"description":"Optional. The labels to associate with this job. Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: p{Ll}p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following regular expression: [p{Ll}p{Lo}p{N}_-]{0,63} No more than 32 labels can be associated with a given job.","description_kind":"plain","optional":true},"prerequisite_step_ids":{"type":["list","string"],"description":"Optional. The optional list of prerequisite job step_ids. If not specified, the job will start at the beginning of workflow.","description_kind":"plain","optional":true},"step_id":{"type":"string","description":"Required. The step id. The id must be unique among all jobs within the template. The step id is used as prefix for job id, as job `goog-dataproc-workflow-step-id` label, and in prerequisiteStepIds field from other steps. The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). Cannot begin or end with underscore or hyphen. Must consist of between 3 and 50 characters.","description_kind":"plain","required":true}},"block_types":{"hadoop_job":{"nesting_mode":"list","block":{"attributes":{"archive_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.","description_kind":"plain","optional":true},"args":{"type":["list","string"],"description":"Optional. The arguments to pass to the driver. Do not include arguments, such as `-libjars` or `-Dfoo=bar`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.","description_kind":"plain","optional":true},"file_uris":{"type":["list","string"],"description":"Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.","description_kind":"plain","optional":true},"jar_file_uris":{"type":["list","string"],"description":"Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.","description_kind":"plain","optional":true},"main_class":{"type":"string","description":"The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in `jar_file_uris`.","description_kind":"plain","optional":true},"main_jar_file_uri":{"type":"string","description":"The HCFS URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'","description_kind":"plain","optional":true}},"description":"Optional. The runtime log config for job execution.","description_kind":"plain"},"max_items":1}},"description":"Optional. Job is a Hadoop job.","description_kind":"plain"},"max_items":1},"hive_job":{"nesting_mode":"list","block":{"attributes":{"continue_on_failure":{"type":"bool","description":"Optional. Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.","description_kind":"plain","optional":true},"jar_file_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.","description_kind":"plain","optional":true},"query_file_uri":{"type":"string","description":"The HCFS URI of the script that contains Hive queries.","description_kind":"plain","optional":true},"script_variables":{"type":["map","string"],"description":"Optional. Mapping of query variable names to values (equivalent to the Hive command: `SET name=\"value\";`).","description_kind":"plain","optional":true}},"block_types":{"query_list":{"nesting_mode":"list","block":{"attributes":{"queries":{"type":["list","string"],"description":"Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: \"hiveJob\": { \"queryList\": { \"queries\": [ \"query1\", \"query2\", \"query3;query4\", ] } }","description_kind":"plain","required":true}},"description":"A list of queries.","description_kind":"plain"},"max_items":1}},"description":"Optional. Job is a Hive job.","description_kind":"plain"},"max_items":1},"pig_job":{"nesting_mode":"list","block":{"attributes":{"continue_on_failure":{"type":"bool","description":"Optional. Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.","description_kind":"plain","optional":true},"jar_file_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.","description_kind":"plain","optional":true},"query_file_uri":{"type":"string","description":"The HCFS URI of the script that contains the Pig queries.","description_kind":"plain","optional":true},"script_variables":{"type":["map","string"],"description":"Optional. Mapping of query variable names to values (equivalent to the Pig command: `name=[value]`).","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'","description_kind":"plain","optional":true}},"description":"Optional. The runtime log config for job execution.","description_kind":"plain"},"max_items":1},"query_list":{"nesting_mode":"list","block":{"attributes":{"queries":{"type":["list","string"],"description":"Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: \"hiveJob\": { \"queryList\": { \"queries\": [ \"query1\", \"query2\", \"query3;query4\", ] } }","description_kind":"plain","required":true}},"description":"A list of queries.","description_kind":"plain"},"max_items":1}},"description":"Optional. Job is a Pig job.","description_kind":"plain"},"max_items":1},"presto_job":{"nesting_mode":"list","block":{"attributes":{"client_tags":{"type":["list","string"],"description":"Optional. Presto client tags to attach to this query","description_kind":"plain","optional":true},"continue_on_failure":{"type":"bool","description":"Optional. Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.","description_kind":"plain","optional":true},"output_format":{"type":"string","description":"Optional. The format in which query output will be displayed. See the Presto documentation for supported output formats","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"Optional. A mapping of property names to values. Used to set Presto [session properties](https://prestodb.io/docs/current/sql/set-session.html) Equivalent to using the --session flag in the Presto CLI","description_kind":"plain","optional":true},"query_file_uri":{"type":"string","description":"The HCFS URI of the script that contains SQL queries.","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'","description_kind":"plain","optional":true}},"description":"Optional. The runtime log config for job execution.","description_kind":"plain"},"max_items":1},"query_list":{"nesting_mode":"list","block":{"attributes":{"queries":{"type":["list","string"],"description":"Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: \"hiveJob\": { \"queryList\": { \"queries\": [ \"query1\", \"query2\", \"query3;query4\", ] } }","description_kind":"plain","required":true}},"description":"A list of queries.","description_kind":"plain"},"max_items":1}},"description":"Optional. Job is a Presto job.","description_kind":"plain"},"max_items":1},"pyspark_job":{"nesting_mode":"list","block":{"attributes":{"archive_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.","description_kind":"plain","optional":true},"args":{"type":["list","string"],"description":"Optional. The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.","description_kind":"plain","optional":true},"file_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.","description_kind":"plain","optional":true},"jar_file_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.","description_kind":"plain","optional":true},"main_python_file_uri":{"type":"string","description":"Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.","description_kind":"plain","required":true},"properties":{"type":["map","string"],"description":"Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.","description_kind":"plain","optional":true},"python_file_uris":{"type":["list","string"],"description":"Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'","description_kind":"plain","optional":true}},"description":"Optional. The runtime log config for job execution.","description_kind":"plain"},"max_items":1}},"description":"Optional. Job is a PySpark job.","description_kind":"plain"},"max_items":1},"scheduling":{"nesting_mode":"list","block":{"attributes":{"max_failures_per_hour":{"type":"number","description":"Optional. Maximum number of times per hour a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed. A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window. Maximum value is 10.","description_kind":"plain","optional":true},"max_failures_total":{"type":"number","description":"Optional. Maximum number of times in total a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed. Maximum value is 240.","description_kind":"plain","optional":true}},"description":"Optional. Job scheduling configuration.","description_kind":"plain"},"max_items":1},"spark_job":{"nesting_mode":"list","block":{"attributes":{"archive_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.","description_kind":"plain","optional":true},"args":{"type":["list","string"],"description":"Optional. The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.","description_kind":"plain","optional":true},"file_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.","description_kind":"plain","optional":true},"jar_file_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.","description_kind":"plain","optional":true},"main_class":{"type":"string","description":"The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in `jar_file_uris`.","description_kind":"plain","optional":true},"main_jar_file_uri":{"type":"string","description":"The HCFS URI of the jar file that contains the main class.","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'","description_kind":"plain","optional":true}},"description":"Optional. The runtime log config for job execution.","description_kind":"plain"},"max_items":1}},"description":"Optional. Job is a Spark job.","description_kind":"plain"},"max_items":1},"spark_r_job":{"nesting_mode":"list","block":{"attributes":{"archive_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.","description_kind":"plain","optional":true},"args":{"type":["list","string"],"description":"Optional. The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.","description_kind":"plain","optional":true},"file_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.","description_kind":"plain","optional":true},"main_r_file_uri":{"type":"string","description":"Required. The HCFS URI of the main R file to use as the driver. Must be a .R file.","description_kind":"plain","required":true},"properties":{"type":["map","string"],"description":"Optional. A mapping of property names to values, used to configure SparkR. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'","description_kind":"plain","optional":true}},"description":"Optional. The runtime log config for job execution.","description_kind":"plain"},"max_items":1}},"description":"Optional. Job is a SparkR job.","description_kind":"plain"},"max_items":1},"spark_sql_job":{"nesting_mode":"list","block":{"attributes":{"jar_file_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"Optional. A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Dataproc API may be overwritten.","description_kind":"plain","optional":true},"query_file_uri":{"type":"string","description":"The HCFS URI of the script that contains SQL queries.","description_kind":"plain","optional":true},"script_variables":{"type":["map","string"],"description":"Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET `name=\"value\";`).","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'","description_kind":"plain","optional":true}},"description":"Optional. The runtime log config for job execution.","description_kind":"plain"},"max_items":1},"query_list":{"nesting_mode":"list","block":{"attributes":{"queries":{"type":["list","string"],"description":"Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: \"hiveJob\": { \"queryList\": { \"queries\": [ \"query1\", \"query2\", \"query3;query4\", ] } }","description_kind":"plain","required":true}},"description":"A list of queries.","description_kind":"plain"},"max_items":1}},"description":"Optional. Job is a SparkSql job.","description_kind":"plain"},"max_items":1}},"description":"Required. The Directed Acyclic Graph of Jobs to submit.","description_kind":"plain"},"min_items":1},"parameters":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Optional. Brief description of the parameter. Must not exceed 1024 characters.","description_kind":"plain","optional":true},"fields":{"type":["list","string"],"description":"Required. Paths to all fields that the parameter replaces. A field is allowed to appear in at most one parameter's list of field paths. A field path is similar in syntax to a google.protobuf.FieldMask. For example, a field path that references the zone field of a workflow template's cluster selector would be specified as `placement.clusterSelector.zone`. Also, field paths can reference fields using the following syntax: * Values in maps can be referenced by key: * labels['key'] * placement.clusterSelector.clusterLabels['key'] * placement.managedCluster.labels['key'] * placement.clusterSelector.clusterLabels['key'] * jobs['step-id'].labels['key'] * Jobs in the jobs list can be referenced by step-id: * jobs['step-id'].hadoopJob.mainJarFileUri * jobs['step-id'].hiveJob.queryFileUri * jobs['step-id'].pySparkJob.mainPythonFileUri * jobs['step-id'].hadoopJob.jarFileUris[0] * jobs['step-id'].hadoopJob.archiveUris[0] * jobs['step-id'].hadoopJob.fileUris[0] * jobs['step-id'].pySparkJob.pythonFileUris[0] * Items in repeated fields can be referenced by a zero-based index: * jobs['step-id'].sparkJob.args[0] * Other examples: * jobs['step-id'].hadoopJob.properties['key'] * jobs['step-id'].hadoopJob.args[0] * jobs['step-id'].hiveJob.scriptVariables['key'] * jobs['step-id'].hadoopJob.mainJarFileUri * placement.clusterSelector.zone It may not be possible to parameterize maps and repeated fields in their entirety since only individual map values and individual items in repeated fields can be referenced. For example, the following field paths are invalid: - placement.clusterSelector.clusterLabels - jobs['step-id'].sparkJob.args","description_kind":"plain","required":true},"name":{"type":"string","description":"Required. Parameter name. The parameter name is used as the key, and paired with the parameter value, which are passed to the template when the template is instantiated. The name must contain only capital letters (A-Z), numbers (0-9), and underscores (_), and must not start with a number. The maximum length is 40 characters.","description_kind":"plain","required":true}},"block_types":{"validation":{"nesting_mode":"list","block":{"block_types":{"regex":{"nesting_mode":"list","block":{"attributes":{"regexes":{"type":["list","string"],"description":"Required. RE2 regular expressions used to validate the parameter's value. The value must match the regex in its entirety (substring matches are not sufficient).","description_kind":"plain","required":true}},"description":"Validation based on regular expressions.","description_kind":"plain"},"max_items":1},"values":{"nesting_mode":"list","block":{"attributes":{"values":{"type":["list","string"],"description":"Required. List of allowed values for the parameter.","description_kind":"plain","required":true}},"description":"Validation based on a list of allowed values.","description_kind":"plain"},"max_items":1}},"description":"Optional. Validation rules to be applied to this parameter's value.","description_kind":"plain"},"max_items":1}},"description":"Optional. Template parameters whose values are substituted into the template. Values for parameters must be provided when the template is instantiated.","description_kind":"plain"}},"placement":{"nesting_mode":"list","block":{"block_types":{"cluster_selector":{"nesting_mode":"list","block":{"attributes":{"cluster_labels":{"type":["map","string"],"description":"Required. The cluster labels. Cluster must have all labels to match.","description_kind":"plain","required":true},"zone":{"type":"string","description":"Optional. The zone where workflow process executes. This parameter does not affect the selection of the cluster. If unspecified, the zone of the first cluster matching the selector is used.","description_kind":"plain","optional":true,"computed":true}},"description":"Optional. A selector that chooses target cluster for jobs based on metadata. The selector is evaluated at the time each job is submitted.","description_kind":"plain"},"max_items":1},"managed_cluster":{"nesting_mode":"list","block":{"attributes":{"cluster_name":{"type":"string","description":"Required. The cluster name prefix. A unique cluster name will be formed by appending a random suffix. The name must contain only lower-case letters (a-z), numbers (0-9), and hyphens (-). Must begin with a letter. Cannot begin or end with hyphen. Must consist of between 2 and 35 characters.","description_kind":"plain","required":true},"labels":{"type":["map","string"],"description":"Optional. The labels to associate with this cluster. Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: p{Ll}p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: [p{Ll}p{Lo}p{N}_-]{0,63} No more than 32 labels can be associated with a given cluster.","description_kind":"plain","optional":true}},"block_types":{"config":{"nesting_mode":"list","block":{"attributes":{"staging_bucket":{"type":"string","description":"Optional. A Cloud Storage bucket used to stage job dependencies, config files, and job driver console output. If you do not specify a staging bucket, Cloud Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Compute Engine zone where your cluster is deployed, and then create and manage this project-level, per-location bucket (see [Dataproc staging bucket](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)). **This field requires a Cloud Storage bucket name, not a URI to a Cloud Storage bucket.**","description_kind":"plain","optional":true},"temp_bucket":{"type":"string","description":"Optional. A Cloud Storage bucket used to store ephemeral cluster and jobs data, such as Spark and MapReduce history files. If you do not specify a temp bucket, Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster's temp bucket according to the Compute Engine zone where your cluster is deployed, and then create and manage this project-level, per-location bucket. The default bucket has a TTL of 90 days, but you can use any TTL (or none) if you specify a bucket. **This field requires a Cloud Storage bucket name, not a URI to a Cloud Storage bucket.**","description_kind":"plain","optional":true}},"block_types":{"autoscaling_config":{"nesting_mode":"list","block":{"attributes":{"policy":{"type":"string","description":"Optional. The autoscaling policy used by the cluster. Only resource names including projectid and location (region) are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id]` * `projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id]` Note that the policy must be in the same project and Dataproc region.","description_kind":"plain","optional":true}},"description":"Optional. Autoscaling config for the policy associated with the cluster. Cluster does not autoscale if this field is unset.","description_kind":"plain"},"max_items":1},"encryption_config":{"nesting_mode":"list","block":{"attributes":{"gce_pd_kms_key_name":{"type":"string","description":"Optional. The Cloud KMS key name to use for PD disk encryption for all instances in the cluster.","description_kind":"plain","optional":true}},"description":"Optional. Encryption settings for the cluster.","description_kind":"plain"},"max_items":1},"endpoint_config":{"nesting_mode":"list","block":{"attributes":{"enable_http_port_access":{"type":"bool","description":"Optional. If true, enable http access to specific ports on the cluster from external sources. Defaults to false.","description_kind":"plain","optional":true},"http_ports":{"type":["map","string"],"description":"Output only. The map of port descriptions to URLs. Will only be populated if enable_http_port_access is true.","description_kind":"plain","computed":true}},"description":"Optional. Port/endpoint configuration for this cluster","description_kind":"plain"},"max_items":1},"gce_cluster_config":{"nesting_mode":"list","block":{"attributes":{"internal_ip_only":{"type":"bool","description":"Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This `internal_ip_only` restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":["map","string"],"description":"The Compute Engine metadata entries to add to all instances (see [Project and instance metadata](https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).","description_kind":"plain","optional":true},"network":{"type":"string","description":"Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither `network_uri` nor `subnetwork_uri` is specified, the \"default\" network of the project is used, if it exists. Cannot be a \"Custom Subnet Network\" (see [Using Subnetworks](https://cloud.google.com/compute/docs/subnetworks) for more information). A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default` * `projects/[project_id]/regions/global/default` * `default`","description_kind":"plain","optional":true},"private_ipv6_google_access":{"type":"string","description":"Optional. The type of IPv6 access for a cluster. Possible values: PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED, INHERIT_FROM_SUBNETWORK, OUTBOUND, BIDIRECTIONAL","description_kind":"plain","optional":true},"service_account":{"type":"string","description":"Optional. The [Dataproc service account](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/service-accounts#service_accounts_in_dataproc) (also see [VM Data Plane identity](https://cloud.google.com/dataproc/docs/concepts/iam/dataproc-principals#vm_service_account_data_plane_identity)) used by Dataproc cluster VM instances to access Google Cloud Platform services. If not specified, the [Compute Engine default service account](https://cloud.google.com/compute/docs/access/service-accounts#default_service_account) is used.","description_kind":"plain","optional":true},"service_account_scopes":{"type":["list","string"],"description":"Optional. The URIs of service account scopes to be included in Compute Engine instances. The following base set of scopes is always included: * https://www.googleapis.com/auth/cloud.useraccounts.readonly * https://www.googleapis.com/auth/devstorage.read_write * https://www.googleapis.com/auth/logging.write If no scopes are specified, the following defaults are also provided: * https://www.googleapis.com/auth/bigquery * https://www.googleapis.com/auth/bigtable.admin.table * https://www.googleapis.com/auth/bigtable.data * https://www.googleapis.com/auth/devstorage.full_control","description_kind":"plain","optional":true},"subnetwork":{"type":"string","description":"Optional. The Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/subnetworks/sub0` * `projects/[project_id]/regions/us-east1/subnetworks/sub0` * `sub0`","description_kind":"plain","optional":true},"tags":{"type":["set","string"],"description":"The Compute Engine tags to add to all instances (see [Tagging instances](https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).","description_kind":"plain","optional":true},"zone":{"type":"string","description":"Optional. The zone where the Compute Engine cluster will be located. On a create request, it is required in the \"global\" region. If omitted in a non-global Dataproc region, the service will pick a zone in the corresponding Compute Engine region. On a get request, zone will always be present. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]` * `projects/[project_id]/zones/[zone]` * `us-central1-f`","description_kind":"plain","optional":true,"computed":true}},"block_types":{"node_group_affinity":{"nesting_mode":"list","block":{"attributes":{"node_group":{"type":"string","description":"Required. The URI of a sole-tenant [node group resource](https://cloud.google.com/compute/docs/reference/rest/v1/nodeGroups) that the cluster will be created on. A full URL, partial URI, or node group name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-central1-a/nodeGroups/node-group-1` * `projects/[project_id]/zones/us-central1-a/nodeGroups/node-group-1` * `node-group-1`","description_kind":"plain","required":true}},"description":"Optional. Node Group Affinity for sole-tenant clusters.","description_kind":"plain"},"max_items":1},"reservation_affinity":{"nesting_mode":"list","block":{"attributes":{"consume_reservation_type":{"type":"string","description":"Optional. Type of reservation to consume Possible values: TYPE_UNSPECIFIED, NO_RESERVATION, ANY_RESERVATION, SPECIFIC_RESERVATION","description_kind":"plain","optional":true},"key":{"type":"string","description":"Optional. Corresponds to the label key of reservation resource.","description_kind":"plain","optional":true},"values":{"type":["list","string"],"description":"Optional. Corresponds to the label values of reservation resource.","description_kind":"plain","optional":true}},"description":"Optional. Reservation Affinity for consuming Zonal reservation.","description_kind":"plain"},"max_items":1}},"description":"Optional. The shared Compute Engine config settings for all instances in a cluster.","description_kind":"plain"},"max_items":1},"initialization_actions":{"nesting_mode":"list","block":{"attributes":{"executable_file":{"type":"string","description":"Required. Cloud Storage URI of executable file.","description_kind":"plain","optional":true},"execution_timeout":{"type":"string","description":"Optional. Amount of time executable has to complete. Default is 10 minutes (see JSON representation of [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)). Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.","description_kind":"plain","optional":true}},"description":"Optional. Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's `role` metadata to run an executable on a master or worker node, as shown below using `curl` (you can also use `wget`): ROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role) if [[ \"${ROLE}\" == 'Master' ]]; then ... master specific actions ... else ... worker specific actions ... fi","description_kind":"plain"}},"lifecycle_config":{"nesting_mode":"list","block":{"attributes":{"auto_delete_time":{"type":"string","description":"Optional. The time when cluster will be auto-deleted (see JSON representation of [Timestamp](https://developers.google.com/protocol-buffers/docs/proto3#json)).","description_kind":"plain","optional":true},"auto_delete_ttl":{"type":"string","description":"Optional. The lifetime duration of cluster. The cluster will be auto-deleted at the end of this period. Minimum value is 10 minutes; maximum value is 14 days (see JSON representation of [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)).","description_kind":"plain","optional":true},"idle_delete_ttl":{"type":"string","description":"Optional. The duration to keep the cluster alive while idling (when no jobs are running). Passing this threshold will cause the cluster to be deleted. Minimum value is 5 minutes; maximum value is 14 days (see JSON representation of [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)).","description_kind":"plain","optional":true},"idle_start_time":{"type":"string","description":"Output only. The time when cluster became idle (most recent job finished) and became eligible for deletion due to idleness (see JSON representation of [Timestamp](https://developers.google.com/protocol-buffers/docs/proto3#json)).","description_kind":"plain","computed":true}},"description":"Optional. Lifecycle setting for the cluster.","description_kind":"plain"},"max_items":1},"master_config":{"nesting_mode":"list","block":{"attributes":{"image":{"type":"string","description":"Optional. The Compute Engine image resource used for cluster instances. The URI can represent an image or image family. Image examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id]` * `projects/[project_id]/global/images/[image-id]` * `image-id` Image family examples. Dataproc will use the most recent image from the family: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name]` * `projects/[project_id]/global/images/family/[custom-image-family-name]` If the URI is unspecified, it will be inferred from `SoftwareConfig.image_version` or the system default.","description_kind":"plain","optional":true},"instance_names":{"type":["list","string"],"description":"Output only. The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group.","description_kind":"plain","computed":true},"is_preemptible":{"type":"bool","description":"Output only. Specifies that this instance group contains preemptible instances.","description_kind":"plain","computed":true},"machine_type":{"type":"string","description":"Optional. The Compute Engine machine type used for cluster instances. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `n1-standard-2` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, `n1-standard-2`.","description_kind":"plain","optional":true},"managed_group_config":{"type":["list",["object",{"instance_group_manager_name":"string","instance_template_name":"string"}]],"description":"Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.","description_kind":"plain","computed":true},"min_cpu_platform":{"type":"string","description":"Optional. Specifies the minimum cpu platform for the Instance Group. See [Dataproc -\u003e Minimum CPU Platform](https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).","description_kind":"plain","optional":true,"computed":true},"num_instances":{"type":"number","description":"Optional. The number of VM instances in the instance group. For [HA cluster](/dataproc/docs/concepts/configuring-clusters/high-availability) [master_config](#FIELDS.master_config) groups, **must be set to 3**. For standard cluster [master_config](#FIELDS.master_config) groups, **must be set to 1**.","description_kind":"plain","optional":true},"preemptibility":{"type":"string","description":"Optional. Specifies the preemptibility of the instance group. The default value for master and worker groups is `NON_PREEMPTIBLE`. This default cannot be changed. The default value for secondary instances is `PREEMPTIBLE`. Possible values: PREEMPTIBILITY_UNSPECIFIED, NON_PREEMPTIBLE, PREEMPTIBLE","description_kind":"plain","optional":true}},"block_types":{"accelerators":{"nesting_mode":"list","block":{"attributes":{"accelerator_count":{"type":"number","description":"The number of the accelerator cards of this type exposed to this instance.","description_kind":"plain","optional":true},"accelerator_type":{"type":"string","description":"Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See [Compute Engine AcceleratorTypes](https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes). Examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `nvidia-tesla-k80` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, `nvidia-tesla-k80`.","description_kind":"plain","optional":true}},"description":"Optional. The Compute Engine accelerator configuration for these instances.","description_kind":"plain"}},"disk_config":{"nesting_mode":"list","block":{"attributes":{"boot_disk_size_gb":{"type":"number","description":"Optional. Size in GB of the boot disk (default is 500GB).","description_kind":"plain","optional":true},"boot_disk_type":{"type":"string","description":"Optional. Type of the boot disk (default is \"pd-standard\"). Valid values: \"pd-balanced\" (Persistent Disk Balanced Solid State Drive), \"pd-ssd\" (Persistent Disk Solid State Drive), or \"pd-standard\" (Persistent Disk Hard Disk Drive). See [Disk types](https://cloud.google.com/compute/docs/disks#disk-types).","description_kind":"plain","optional":true},"num_local_ssds":{"type":"number","description":"Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.","description_kind":"plain","optional":true,"computed":true}},"description":"Optional. Disk option config settings.","description_kind":"plain"},"max_items":1}},"description":"Optional. The Compute Engine config settings for worker instances in a cluster.","description_kind":"plain"},"max_items":1},"secondary_worker_config":{"nesting_mode":"list","block":{"attributes":{"image":{"type":"string","description":"Optional. The Compute Engine image resource used for cluster instances. The URI can represent an image or image family. Image examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id]` * `projects/[project_id]/global/images/[image-id]` * `image-id` Image family examples. Dataproc will use the most recent image from the family: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name]` * `projects/[project_id]/global/images/family/[custom-image-family-name]` If the URI is unspecified, it will be inferred from `SoftwareConfig.image_version` or the system default.","description_kind":"plain","optional":true},"instance_names":{"type":["list","string"],"description":"Output only. The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group.","description_kind":"plain","computed":true},"is_preemptible":{"type":"bool","description":"Output only. Specifies that this instance group contains preemptible instances.","description_kind":"plain","computed":true},"machine_type":{"type":"string","description":"Optional. The Compute Engine machine type used for cluster instances. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `n1-standard-2` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, `n1-standard-2`.","description_kind":"plain","optional":true},"managed_group_config":{"type":["list",["object",{"instance_group_manager_name":"string","instance_template_name":"string"}]],"description":"Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.","description_kind":"plain","computed":true},"min_cpu_platform":{"type":"string","description":"Optional. Specifies the minimum cpu platform for the Instance Group. See [Dataproc -\u003e Minimum CPU Platform](https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).","description_kind":"plain","optional":true,"computed":true},"num_instances":{"type":"number","description":"Optional. The number of VM instances in the instance group. For [HA cluster](/dataproc/docs/concepts/configuring-clusters/high-availability) [master_config](#FIELDS.master_config) groups, **must be set to 3**. For standard cluster [master_config](#FIELDS.master_config) groups, **must be set to 1**.","description_kind":"plain","optional":true},"preemptibility":{"type":"string","description":"Optional. Specifies the preemptibility of the instance group. The default value for master and worker groups is `NON_PREEMPTIBLE`. This default cannot be changed. The default value for secondary instances is `PREEMPTIBLE`. Possible values: PREEMPTIBILITY_UNSPECIFIED, NON_PREEMPTIBLE, PREEMPTIBLE","description_kind":"plain","optional":true}},"block_types":{"accelerators":{"nesting_mode":"list","block":{"attributes":{"accelerator_count":{"type":"number","description":"The number of the accelerator cards of this type exposed to this instance.","description_kind":"plain","optional":true},"accelerator_type":{"type":"string","description":"Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See [Compute Engine AcceleratorTypes](https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes). Examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `nvidia-tesla-k80` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, `nvidia-tesla-k80`.","description_kind":"plain","optional":true}},"description":"Optional. The Compute Engine accelerator configuration for these instances.","description_kind":"plain"}},"disk_config":{"nesting_mode":"list","block":{"attributes":{"boot_disk_size_gb":{"type":"number","description":"Optional. Size in GB of the boot disk (default is 500GB).","description_kind":"plain","optional":true},"boot_disk_type":{"type":"string","description":"Optional. Type of the boot disk (default is \"pd-standard\"). Valid values: \"pd-balanced\" (Persistent Disk Balanced Solid State Drive), \"pd-ssd\" (Persistent Disk Solid State Drive), or \"pd-standard\" (Persistent Disk Hard Disk Drive). See [Disk types](https://cloud.google.com/compute/docs/disks#disk-types).","description_kind":"plain","optional":true},"num_local_ssds":{"type":"number","description":"Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.","description_kind":"plain","optional":true,"computed":true}},"description":"Optional. Disk option config settings.","description_kind":"plain"},"max_items":1}},"description":"Optional. The Compute Engine config settings for worker instances in a cluster.","description_kind":"plain"},"max_items":1},"security_config":{"nesting_mode":"list","block":{"block_types":{"kerberos_config":{"nesting_mode":"list","block":{"attributes":{"cross_realm_trust_admin_server":{"type":"string","description":"Optional. The admin server (IP or hostname) for the remote trusted realm in a cross realm trust relationship.","description_kind":"plain","optional":true},"cross_realm_trust_kdc":{"type":"string","description":"Optional. The KDC (IP or hostname) for the remote trusted realm in a cross realm trust relationship.","description_kind":"plain","optional":true},"cross_realm_trust_realm":{"type":"string","description":"Optional. The remote realm the Dataproc on-cluster KDC will trust, should the user enable cross realm trust.","description_kind":"plain","optional":true},"cross_realm_trust_shared_password":{"type":"string","description":"Optional. The Cloud Storage URI of a KMS encrypted file containing the shared password between the on-cluster Kerberos realm and the remote trusted realm, in a cross realm trust relationship.","description_kind":"plain","optional":true},"enable_kerberos":{"type":"bool","description":"Optional. Flag to indicate whether to Kerberize the cluster (default: false). Set this field to true to enable Kerberos on a cluster.","description_kind":"plain","optional":true},"kdc_db_key":{"type":"string","description":"Optional. The Cloud Storage URI of a KMS encrypted file containing the master key of the KDC database.","description_kind":"plain","optional":true},"key_password":{"type":"string","description":"Optional. The Cloud Storage URI of a KMS encrypted file containing the password to the user provided key. For the self-signed certificate, this password is generated by Dataproc.","description_kind":"plain","optional":true},"keystore":{"type":"string","description":"Optional. The Cloud Storage URI of the keystore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.","description_kind":"plain","optional":true},"keystore_password":{"type":"string","description":"Optional. The Cloud Storage URI of a KMS encrypted file containing the password to the user provided keystore. For the self-signed certificate, this password is generated by Dataproc.","description_kind":"plain","optional":true},"kms_key":{"type":"string","description":"Optional. The uri of the KMS key used to encrypt various sensitive files.","description_kind":"plain","optional":true},"realm":{"type":"string","description":"Optional. The name of the on-cluster Kerberos realm. If not specified, the uppercased domain of hostnames will be the realm.","description_kind":"plain","optional":true},"root_principal_password":{"type":"string","description":"Optional. The Cloud Storage URI of a KMS encrypted file containing the root principal password.","description_kind":"plain","optional":true},"tgt_lifetime_hours":{"type":"number","description":"Optional. The lifetime of the ticket granting ticket, in hours. If not specified, or user specifies 0, then default value 10 will be used.","description_kind":"plain","optional":true},"truststore":{"type":"string","description":"Optional. The Cloud Storage URI of the truststore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.","description_kind":"plain","optional":true},"truststore_password":{"type":"string","description":"Optional. The Cloud Storage URI of a KMS encrypted file containing the password to the user provided truststore. For the self-signed certificate, this password is generated by Dataproc.","description_kind":"plain","optional":true}},"description":"Optional. Kerberos related configuration.","description_kind":"plain"},"max_items":1}},"description":"Optional. Security settings for the cluster.","description_kind":"plain"},"max_items":1},"software_config":{"nesting_mode":"list","block":{"attributes":{"image_version":{"type":"string","description":"Optional. The version of software inside the cluster. It must be one of the supported [Dataproc Versions](https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#supported_dataproc_versions), such as \"1.2\" (including a subminor version, such as \"1.2.29\"), or the [\"preview\" version](https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#other_versions). If unspecified, it defaults to the latest Debian version.","description_kind":"plain","optional":true},"optional_components":{"type":["list","string"],"description":"Optional. The set of components to activate on the cluster.","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"Optional. The properties to set on daemon config files. Property keys are specified in `prefix:property` format, for example `core:hadoop.tmp.dir`. The following are supported prefixes and their mappings: * capacity-scheduler: `capacity-scheduler.xml` * core: `core-site.xml` * distcp: `distcp-default.xml` * hdfs: `hdfs-site.xml` * hive: `hive-site.xml` * mapred: `mapred-site.xml` * pig: `pig.properties` * spark: `spark-defaults.conf` * yarn: `yarn-site.xml` For more information, see [Cluster properties](https://cloud.google.com/dataproc/docs/concepts/cluster-properties).","description_kind":"plain","optional":true}},"description":"Optional. The config settings for software inside the cluster.","description_kind":"plain"},"max_items":1},"worker_config":{"nesting_mode":"list","block":{"attributes":{"image":{"type":"string","description":"Optional. The Compute Engine image resource used for cluster instances. The URI can represent an image or image family. Image examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id]` * `projects/[project_id]/global/images/[image-id]` * `image-id` Image family examples. Dataproc will use the most recent image from the family: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name]` * `projects/[project_id]/global/images/family/[custom-image-family-name]` If the URI is unspecified, it will be inferred from `SoftwareConfig.image_version` or the system default.","description_kind":"plain","optional":true},"instance_names":{"type":["list","string"],"description":"Output only. The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group.","description_kind":"plain","computed":true},"is_preemptible":{"type":"bool","description":"Output only. Specifies that this instance group contains preemptible instances.","description_kind":"plain","computed":true},"machine_type":{"type":"string","description":"Optional. The Compute Engine machine type used for cluster instances. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `n1-standard-2` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, `n1-standard-2`.","description_kind":"plain","optional":true},"managed_group_config":{"type":["list",["object",{"instance_group_manager_name":"string","instance_template_name":"string"}]],"description":"Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.","description_kind":"plain","computed":true},"min_cpu_platform":{"type":"string","description":"Optional. Specifies the minimum cpu platform for the Instance Group. See [Dataproc -\u003e Minimum CPU Platform](https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).","description_kind":"plain","optional":true,"computed":true},"num_instances":{"type":"number","description":"Optional. The number of VM instances in the instance group. For [HA cluster](/dataproc/docs/concepts/configuring-clusters/high-availability) [master_config](#FIELDS.master_config) groups, **must be set to 3**. For standard cluster [master_config](#FIELDS.master_config) groups, **must be set to 1**.","description_kind":"plain","optional":true},"preemptibility":{"type":"string","description":"Optional. Specifies the preemptibility of the instance group. The default value for master and worker groups is `NON_PREEMPTIBLE`. This default cannot be changed. The default value for secondary instances is `PREEMPTIBLE`. Possible values: PREEMPTIBILITY_UNSPECIFIED, NON_PREEMPTIBLE, PREEMPTIBLE","description_kind":"plain","optional":true}},"block_types":{"accelerators":{"nesting_mode":"list","block":{"attributes":{"accelerator_count":{"type":"number","description":"The number of the accelerator cards of this type exposed to this instance.","description_kind":"plain","optional":true},"accelerator_type":{"type":"string","description":"Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See [Compute Engine AcceleratorTypes](https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes). Examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `nvidia-tesla-k80` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, `nvidia-tesla-k80`.","description_kind":"plain","optional":true}},"description":"Optional. The Compute Engine accelerator configuration for these instances.","description_kind":"plain"}},"disk_config":{"nesting_mode":"list","block":{"attributes":{"boot_disk_size_gb":{"type":"number","description":"Optional. Size in GB of the boot disk (default is 500GB).","description_kind":"plain","optional":true},"boot_disk_type":{"type":"string","description":"Optional. Type of the boot disk (default is \"pd-standard\"). Valid values: \"pd-balanced\" (Persistent Disk Balanced Solid State Drive), \"pd-ssd\" (Persistent Disk Solid State Drive), or \"pd-standard\" (Persistent Disk Hard Disk Drive). See [Disk types](https://cloud.google.com/compute/docs/disks#disk-types).","description_kind":"plain","optional":true},"num_local_ssds":{"type":"number","description":"Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.","description_kind":"plain","optional":true,"computed":true}},"description":"Optional. Disk option config settings.","description_kind":"plain"},"max_items":1}},"description":"Optional. The Compute Engine config settings for worker instances in a cluster.","description_kind":"plain"},"max_items":1}},"description":"Required. The cluster configuration.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"A cluster that is managed by the workflow.","description_kind":"plain"},"max_items":1}},"description":"Required. WorkflowTemplate scheduling information.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_datastore_index":{"version":0,"block":{"attributes":{"ancestor":{"type":"string","description":"Policy for including ancestors in the index. Default value: \"NONE\" Possible values: [\"NONE\", \"ALL_ANCESTORS\"]","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"index_id":{"type":"string","description":"The index id.","description_kind":"plain","computed":true},"kind":{"type":"string","description":"The entity kind which the index applies to.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"properties":{"nesting_mode":"list","block":{"attributes":{"direction":{"type":"string","description":"The direction the index should optimize for sorting. Possible values: [\"ASCENDING\", \"DESCENDING\"]","description_kind":"plain","required":true},"name":{"type":"string","description":"The property name to index.","description_kind":"plain","required":true}},"description":"An ordered list of properties to index on.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_deployment_manager_deployment":{"version":0,"block":{"attributes":{"create_policy":{"type":"string","description":"Set the policy to use for creating new resources. Only used on\ncreate and update. Valid values are 'CREATE_OR_ACQUIRE' (default) or\n'ACQUIRE'. If set to 'ACQUIRE' and resources do not already exist,\nthe deployment will fail. Note that updating this field does not\nactually affect the deployment, just how it is updated. Default value: \"CREATE_OR_ACQUIRE\" Possible values: [\"ACQUIRE\", \"CREATE_OR_ACQUIRE\"]","description_kind":"plain","optional":true},"delete_policy":{"type":"string","description":"Set the policy to use for deleting new resources on update/delete.\nValid values are 'DELETE' (default) or 'ABANDON'. If 'DELETE',\nresource is deleted after removal from Deployment Manager. If\n'ABANDON', the resource is only removed from Deployment Manager\nand is not actually deleted. Note that updating this field does not\nactually change the deployment, just how it is updated. Default value: \"DELETE\" Possible values: [\"ABANDON\", \"DELETE\"]","description_kind":"plain","optional":true},"deployment_id":{"type":"string","description":"Unique identifier for deployment. Output only.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Optional user-provided description of deployment.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"manifest":{"type":"string","description":"Output only. URL of the manifest representing the last manifest that\nwas successfully deployed.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Unique name for the deployment","description_kind":"plain","required":true},"preview":{"type":"bool","description":"If set to true, a deployment is created with \"shell\" resources\nthat are not actually instantiated. This allows you to preview a\ndeployment. It can be updated to false to actually deploy\nwith real resources.\n ~\u003e**NOTE:** Deployment Manager does not allow update\nof a deployment in preview (unless updating to preview=false). Thus,\nTerraform will force-recreate deployments if either preview is updated\nto true or if other fields are updated while preview is true.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"Output only. Server defined URL for the resource.","description_kind":"plain","computed":true}},"block_types":{"labels":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description":"Key for label.","description_kind":"plain","optional":true},"value":{"type":"string","description":"Value of label.","description_kind":"plain","optional":true}},"description":"Key-value pairs to apply to this labels.","description_kind":"plain"}},"target":{"nesting_mode":"list","block":{"block_types":{"config":{"nesting_mode":"list","block":{"attributes":{"content":{"type":"string","description":"The full YAML contents of your configuration file.","description_kind":"plain","required":true}},"description":"The root configuration file to use for this deployment.","description_kind":"plain"},"min_items":1,"max_items":1},"imports":{"nesting_mode":"list","block":{"attributes":{"content":{"type":"string","description":"The full contents of the template that you want to import.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the template to import, as declared in the YAML\nconfiguration.","description_kind":"plain","optional":true}},"description":"Specifies import files for this configuration. This can be\nused to import templates or other files. For example, you might\nimport a text file in order to use the file in a template.","description_kind":"plain"}}},"description":"Parameters that define your deployment, including the deployment\nconfiguration and relevant templates.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dialogflow_agent":{"version":0,"block":{"attributes":{"api_version":{"type":"string","description":"API version displayed in Dialogflow console. If not specified, V2 API is assumed. Clients are free to query\ndifferent service endpoints for different API versions. However, bots connectors and webhook calls will follow \nthe specified API version.\n* API_VERSION_V1: Legacy V1 API.\n* API_VERSION_V2: V2 API.\n* API_VERSION_V2_BETA_1: V2beta1 API. Possible values: [\"API_VERSION_V1\", \"API_VERSION_V2\", \"API_VERSION_V2_BETA_1\"]","description_kind":"plain","optional":true,"computed":true},"avatar_uri":{"type":"string","description":"The URI of the agent's avatar, which are used throughout the Dialogflow console. When an image URL is entered\ninto this field, the Dialogflow will save the image in the backend. The address of the backend image returned\nfrom the API will be shown in the [avatarUriBackend] field.","description_kind":"plain","optional":true},"avatar_uri_backend":{"type":"string","description":"The URI of the agent's avatar as returned from the API. Output only. To provide an image URL for the agent avatar,\nthe [avatarUri] field can be used.","description_kind":"plain","computed":true},"classification_threshold":{"type":"number","description":"To filter out false positive results and still get variety in matched natural language inputs for your agent,\nyou can tune the machine learning classification threshold. If the returned score value is less than the threshold\nvalue, then a fallback intent will be triggered or, if there are no fallback intents defined, no intent will be \ntriggered. The score values range from 0.0 (completely uncertain) to 1.0 (completely certain). If set to 0.0, the \ndefault of 0.3 is used.","description_kind":"plain","optional":true},"default_language_code":{"type":"string","description":"The default language of the agent as a language tag. [See Language Support](https://cloud.google.com/dialogflow/docs/reference/language) \nfor a list of the currently supported language codes. This field cannot be updated after creation.","description_kind":"plain","required":true},"description":{"type":"string","description":"The description of this agent. The maximum length is 500 characters. If exceeded, the request is rejected.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The name of this agent.","description_kind":"plain","required":true},"enable_logging":{"type":"bool","description":"Determines whether this agent should log conversation queries.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"match_mode":{"type":"string","description":"Determines how intents are detected from user queries.\n* MATCH_MODE_HYBRID: Best for agents with a small number of examples in intents and/or wide use of templates\nsyntax and composite entities.\n* MATCH_MODE_ML_ONLY: Can be used for agents with a large number of examples in intents, especially the ones\nusing @sys.any or very large developer entities. Possible values: [\"MATCH_MODE_HYBRID\", \"MATCH_MODE_ML_ONLY\"]","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"supported_language_codes":{"type":["list","string"],"description":"The list of all languages supported by this agent (except for the defaultLanguageCode).","description_kind":"plain","optional":true},"tier":{"type":"string","description":"The agent tier. If not specified, TIER_STANDARD is assumed.\n* TIER_STANDARD: Standard tier.\n* TIER_ENTERPRISE: Enterprise tier (Essentials).\n* TIER_ENTERPRISE_PLUS: Enterprise tier (Plus).\nNOTE: Due to consistency issues, the provider will not read this field from the API. Drift is possible between \nthe Terraform state and Dialogflow if the agent tier is changed outside of Terraform. Possible values: [\"TIER_STANDARD\", \"TIER_ENTERPRISE\", \"TIER_ENTERPRISE_PLUS\"]","description_kind":"plain","optional":true},"time_zone":{"type":"string","description":"The time zone of this agent from the [time zone database](https://www.iana.org/time-zones), e.g., America/New_York,\nEurope/Paris.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dialogflow_cx_agent":{"version":0,"block":{"attributes":{"avatar_uri":{"type":"string","description":"The URI of the agent's avatar. Avatars are used throughout the Dialogflow console and in the self-hosted Web Demo integration.","description_kind":"plain","optional":true},"default_language_code":{"type":"string","description":"The default language of the agent as a language tag. [See Language Support](https://cloud.google.com/dialogflow/cx/docs/reference/language) \nfor a list of the currently supported language codes. This field cannot be updated after creation.","description_kind":"plain","required":true},"description":{"type":"string","description":"The description of this agent. The maximum length is 500 characters. If exceeded, the request is rejected.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The human-readable name of the agent, unique within the location.","description_kind":"plain","required":true},"enable_spell_correction":{"type":"bool","description":"Indicates if automatic spell correction is enabled in detect intent requests.","description_kind":"plain","optional":true},"enable_stackdriver_logging":{"type":"bool","description":"Determines whether this agent should log conversation queries.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The name of the location this agent is located in.\n\n~\u003e **Note:** The first time you are deploying an Agent in your project you must configure location settings.\n This is a one time step but at the moment you can only [configure location settings](https://cloud.google.com/dialogflow/cx/docs/concept/region#location-settings) via the Dialogflow CX console.\n Another options is to use global location so you don't need to manually configure location settings.","description_kind":"plain","required":true},"name":{"type":"string","description":"The unique identifier of the agent.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_settings":{"type":"string","description":"Name of the SecuritySettings reference for the agent. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/securitySettings/\u003cSecurity Settings ID\u003e.","description_kind":"plain","optional":true},"start_flow":{"type":"string","description":"Name of the start flow in this agent. A start flow will be automatically created when the agent is created, and can only be deleted by deleting the agent. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.","description_kind":"plain","computed":true},"supported_language_codes":{"type":["list","string"],"description":"The list of all languages supported by this agent (except for the default_language_code).","description_kind":"plain","optional":true},"time_zone":{"type":"string","description":"The time zone of this agent from the [time zone database](https://www.iana.org/time-zones), e.g., America/New_York,\nEurope/Paris.","description_kind":"plain","required":true}},"block_types":{"speech_to_text_settings":{"nesting_mode":"list","block":{"attributes":{"enable_speech_adaptation":{"type":"bool","description":"Whether to use speech adaptation for speech recognition.","description_kind":"plain","optional":true}},"description":"Settings related to speech recognition.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dialogflow_cx_entity_type":{"version":0,"block":{"attributes":{"auto_expansion_mode":{"type":"string","description":"Represents kinds of entities.\n* AUTO_EXPANSION_MODE_UNSPECIFIED: Auto expansion disabled for the entity.\n* AUTO_EXPANSION_MODE_DEFAULT: Allows an agent to recognize values that have not been explicitly listed in the entity. Possible values: [\"AUTO_EXPANSION_MODE_DEFAULT\", \"AUTO_EXPANSION_MODE_UNSPECIFIED\"]","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The human-readable name of the entity type, unique within the agent.","description_kind":"plain","required":true},"enable_fuzzy_extraction":{"type":"bool","description":"Enables fuzzy entity extraction during classification.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kind":{"type":"string","description":"Indicates whether the entity type can be automatically expanded.\n* KIND_MAP: Map entity types allow mapping of a group of synonyms to a canonical value.\n* KIND_LIST: List entity types contain a set of entries that do not map to canonical values. However, list entity types can contain references to other entity types (with or without aliases).\n* KIND_REGEXP: Regexp entity types allow to specify regular expressions in entries values. Possible values: [\"KIND_MAP\", \"KIND_LIST\", \"KIND_REGEXP\"]","description_kind":"plain","required":true},"language_code":{"type":"string","description":"The language of the following fields in entityType:\nEntityType.entities.value\nEntityType.entities.synonyms\nEntityType.excluded_phrases.value\nIf not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The unique identifier of the entity type.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/entityTypes/\u003cEntity Type ID\u003e.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The agent to create a entity type for. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e.","description_kind":"plain","optional":true},"redact":{"type":"bool","description":"Indicates whether parameters of the entity type should be redacted in log. If redaction is enabled, page parameters and intent parameters referring to the entity type will be replaced by parameter name when logging.","description_kind":"plain","optional":true}},"block_types":{"entities":{"nesting_mode":"list","block":{"attributes":{"synonyms":{"type":["list","string"],"description":"A collection of value synonyms. For example, if the entity type is vegetable, and value is scallions, a synonym could be green onions.\nFor KIND_LIST entity types: This collection must contain exactly one synonym equal to value.","description_kind":"plain","optional":true},"value":{"type":"string","description":"The primary value associated with this entity entry. For example, if the entity type is vegetable, the value could be scallions.\nFor KIND_MAP entity types: A canonical value to be used in place of synonyms.\nFor KIND_LIST entity types: A string that can contain references to other entity types (with or without aliases).","description_kind":"plain","optional":true}},"description":"The collection of entity entries associated with the entity type.","description_kind":"plain"},"min_items":1},"excluded_phrases":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"string","description":"The word or phrase to be excluded.","description_kind":"plain","optional":true}},"description":"Collection of exceptional words and phrases that shouldn't be matched. For example, if you have a size entity type with entry giant(an adjective), you might consider adding giants(a noun) as an exclusion. \nIf the kind of entity type is KIND_MAP, then the phrases specified by entities and excluded phrases should be mutually exclusive.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dialogflow_cx_environment":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The human-readable description of the environment. The maximum length is 500 characters. If exceeded, the request is rejected.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The human-readable name of the environment (unique in an agent). Limit of 64 characters.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the environment.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The Agent to create an Environment for. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e.","description_kind":"plain","optional":true},"update_time":{"type":"string","description":"Update time of this environment. A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"version_configs":{"nesting_mode":"list","block":{"attributes":{"version":{"type":"string","description":"Format: projects/{{project}}/locations/{{location}}/agents/{{agent}}/flows/{{flow}}/versions/{{version}}.","description_kind":"plain","required":true}},"description":"A list of configurations for flow versions. You should include version configs for all flows that are reachable from [Start Flow][Agent.start_flow] in the agent. Otherwise, an error will be returned.","description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"google_dialogflow_cx_flow":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description of the flow. The maximum length is 500 characters. If exceeded, the request is rejected.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The human-readable name of the flow.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"language_code":{"type":"string","description":"The language of the following fields in flow:\nFlow.event_handlers.trigger_fulfillment.messages\nFlow.event_handlers.trigger_fulfillment.conditional_cases\nFlow.transition_routes.trigger_fulfillment.messages\nFlow.transition_routes.trigger_fulfillment.conditional_cases\nIf not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The unique identifier of the flow. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The agent to create a flow for. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e.","description_kind":"plain","optional":true},"transition_route_groups":{"type":["list","string"],"description":"A flow's transition route group serve two purposes:\nThey are responsible for matching the user's first utterances in the flow.\nThey are inherited by every page's [transition route groups][Page.transition_route_groups]. Transition route groups defined in the page have higher priority than those defined in the flow.\nFormat:projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/transitionRouteGroups/\u003cTransitionRouteGroup ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"event_handlers":{"nesting_mode":"list","block":{"attributes":{"event":{"type":"string","description":"The name of the event to handle.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The unique identifier of this event handler.","description_kind":"plain","computed":true},"target_flow":{"type":"string","description":"The target flow to transition to. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.","description_kind":"plain","optional":true},"target_page":{"type":"string","description":"The target page to transition to. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/pages/\u003cPage ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"trigger_fulfillment":{"nesting_mode":"list","block":{"attributes":{"return_partial_responses":{"type":"bool","description":"Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.","description_kind":"plain","optional":true},"tag":{"type":"string","description":"The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.","description_kind":"plain","optional":true},"webhook":{"type":"string","description":"The webhook to call. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/webhooks/\u003cWebhook ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"messages":{"nesting_mode":"list","block":{"block_types":{"text":{"nesting_mode":"list","block":{"attributes":{"allow_playback_interruption":{"type":"bool","description":"Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.","description_kind":"plain","computed":true},"text":{"type":["list","string"],"description":"A collection of text responses.","description_kind":"plain","optional":true}},"description":"The text response message.","description_kind":"plain"},"max_items":1}},"description":"The list of rich message responses to present to the user.","description_kind":"plain"}}},"description":"The fulfillment to call when the event occurs. Handling webhook errors with a fulfillment enabled with webhook could cause infinite loop. It is invalid to specify such fulfillment for a handler handling webhooks.","description_kind":"plain"},"max_items":1}},"description":"A flow's event handlers serve two purposes:\nThey are responsible for handling events (e.g. no match, webhook errors) in the flow.\nThey are inherited by every page's [event handlers][Page.event_handlers], which can be used to handle common events regardless of the current page. Event handlers defined in the page have higher priority than those defined in the flow.\nUnlike transitionRoutes, these handlers are evaluated on a first-match basis. The first one that matches the event get executed, with the rest being ignored.","description_kind":"plain"}},"nlu_settings":{"nesting_mode":"list","block":{"attributes":{"classification_threshold":{"type":"number","description":"To filter out false positive results and still get variety in matched natural language inputs for your agent, you can tune the machine learning classification threshold. \nIf the returned score value is less than the threshold value, then a no-match event will be triggered. The score values range from 0.0 (completely uncertain) to 1.0 (completely certain). If set to 0.0, the default of 0.3 is used.","description_kind":"plain","optional":true},"model_training_mode":{"type":"string","description":"Indicates NLU model training mode.\n* MODEL_TRAINING_MODE_AUTOMATIC: NLU model training is automatically triggered when a flow gets modified. User can also manually trigger model training in this mode.\n* MODEL_TRAINING_MODE_MANUAL: User needs to manually trigger NLU model training. Best for large flows whose models take long time to train. Possible values: [\"MODEL_TRAINING_MODE_AUTOMATIC\", \"MODEL_TRAINING_MODE_MANUAL\"]","description_kind":"plain","optional":true},"model_type":{"type":"string","description":"Indicates the type of NLU model.\n* MODEL_TYPE_STANDARD: Use standard NLU model.\n* MODEL_TYPE_ADVANCED: Use advanced NLU model. Possible values: [\"MODEL_TYPE_STANDARD\", \"MODEL_TYPE_ADVANCED\"]","description_kind":"plain","optional":true}},"description":"NLU related settings of the flow.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"transition_routes":{"nesting_mode":"list","block":{"attributes":{"condition":{"type":"string","description":"The condition to evaluate against form parameters or session parameters.\nAt least one of intent or condition must be specified. When both intent and condition are specified, the transition can only happen when both are fulfilled.","description_kind":"plain","optional":true},"intent":{"type":"string","description":"The unique identifier of an Intent. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/intents/\u003cIntent ID\u003e. Indicates that the transition can only happen when the given intent is matched. At least one of intent or condition must be specified. When both intent and condition are specified, the transition can only happen when both are fulfilled.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The unique identifier of this transition route.","description_kind":"plain","computed":true},"target_flow":{"type":"string","description":"The target flow to transition to. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.","description_kind":"plain","optional":true},"target_page":{"type":"string","description":"The target page to transition to. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/pages/\u003cPage ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"trigger_fulfillment":{"nesting_mode":"list","block":{"attributes":{"return_partial_responses":{"type":"bool","description":"Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.","description_kind":"plain","optional":true},"tag":{"type":"string","description":"The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.","description_kind":"plain","optional":true},"webhook":{"type":"string","description":"The webhook to call. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/webhooks/\u003cWebhook ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"messages":{"nesting_mode":"list","block":{"block_types":{"text":{"nesting_mode":"list","block":{"attributes":{"allow_playback_interruption":{"type":"bool","description":"Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.","description_kind":"plain","computed":true},"text":{"type":["list","string"],"description":"A collection of text responses.","description_kind":"plain","optional":true}},"description":"The text response message.","description_kind":"plain"},"max_items":1}},"description":"The list of rich message responses to present to the user.","description_kind":"plain"}}},"description":"The fulfillment to call when the condition is satisfied. At least one of triggerFulfillment and target must be specified. When both are defined, triggerFulfillment is executed first.","description_kind":"plain"},"max_items":1}},"description":"A flow's transition routes serve two purposes:\nThey are responsible for matching the user's first utterances in the flow.\nThey are inherited by every page's [transition routes][Page.transition_routes] and can support use cases such as the user saying \"help\" or \"can I talk to a human?\", which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow.\n \nTransitionRoutes are evalauted in the following order:\n TransitionRoutes with intent specified.\n TransitionRoutes with only condition specified.\n TransitionRoutes with intent specified are inherited by pages in the flow.","description_kind":"plain"}}},"description_kind":"plain"}},"google_dialogflow_cx_intent":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Human readable description for better understanding an intent like its scope, content, result etc. Maximum character limit: 140 characters.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The human-readable name of the intent, unique within the agent.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_fallback":{"type":"bool","description":"Indicates whether this is a fallback intent. Currently only default fallback intent is allowed in the agent, which is added upon agent creation. \nAdding training phrases to fallback intent is useful in the case of requests that are mistakenly matched, since training phrases assigned to fallback intents act as negative examples that triggers no-match event.","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"The key/value metadata to label an intent. Labels can contain lowercase letters, digits and the symbols '-' and '_'. International characters are allowed, including letters from unicase alphabets. Keys must start with a letter. Keys and values can be no longer than 63 characters and no more than 128 bytes.\nPrefix \"sys-\" is reserved for Dialogflow defined labels. Currently allowed Dialogflow defined labels include: * sys-head * sys-contextual The above labels do not require value. \"sys-head\" means the intent is a head intent. \"sys.contextual\" means the intent is a contextual intent.\nAn object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true},"language_code":{"type":"string","description":"The language of the following fields in intent:\nIntent.training_phrases.parts.text\nIf not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The unique identifier of the intent. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/intents/\u003cIntent ID\u003e.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The agent to create an intent for.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e.","description_kind":"plain","optional":true},"priority":{"type":"number","description":"The priority of this intent. Higher numbers represent higher priorities.\nIf the supplied value is unspecified or 0, the service translates the value to 500,000, which corresponds to the Normal priority in the console.\nIf the supplied value is negative, the intent is ignored in runtime detect intent requests.","description_kind":"plain","optional":true}},"block_types":{"parameters":{"nesting_mode":"list","block":{"attributes":{"entity_type":{"type":"string","description":"The entity type of the parameter. \nFormat: projects/-/locations/-/agents/-/entityTypes/\u003cSystem Entity Type ID\u003e for system entity types (for example, projects/-/locations/-/agents/-/entityTypes/sys.date), or projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/entityTypes/\u003cEntity Type ID\u003e for developer entity types.","description_kind":"plain","required":true},"id":{"type":"string","description":"The unique identifier of the parameter. This field is used by training phrases to annotate their parts.","description_kind":"plain","required":true},"is_list":{"type":"bool","description":"Indicates whether the parameter represents a list of values.","description_kind":"plain","optional":true},"redact":{"type":"bool","description":"Indicates whether the parameter content should be redacted in log. If redaction is enabled, the parameter content will be replaced by parameter name during logging. \nNote: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled.","description_kind":"plain","optional":true}},"description":"The collection of parameters associated with the intent.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"training_phrases":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description":"The unique identifier of the training phrase.","description_kind":"plain","computed":true},"repeat_count":{"type":"number","description":"Indicates how many times this example was added to the intent.","description_kind":"plain","optional":true}},"block_types":{"parts":{"nesting_mode":"list","block":{"attributes":{"parameter_id":{"type":"string","description":"The parameter used to annotate this part of the training phrase. This field is required for annotated parts of the training phrase.","description_kind":"plain","optional":true},"text":{"type":"string","description":"The text for this part.","description_kind":"plain","required":true}},"description":"The ordered list of training phrase parts. The parts are concatenated in order to form the training phrase.\nNote: The API does not automatically annotate training phrases like the Dialogflow Console does.\nNote: Do not forget to include whitespace at part boundaries, so the training phrase is well formatted when the parts are concatenated.\nIf the training phrase does not need to be annotated with parameters, you just need a single part with only the Part.text field set.\nIf you want to annotate the training phrase, you must create multiple parts, where the fields of each part are populated in one of two ways:\nPart.text is set to a part of the phrase that has no parameters.\nPart.text is set to a part of the phrase that you want to annotate, and the parameterId field is set.","description_kind":"plain"},"min_items":1}},"description":"The collection of training phrases the agent is trained on to identify the intent.","description_kind":"plain"}}},"description_kind":"plain"}},"google_dialogflow_cx_page":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"The human-readable name of the page, unique within the agent.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"language_code":{"type":"string","description":"The language of the following fields in page:\n\nPage.entry_fulfillment.messages\nPage.entry_fulfillment.conditional_cases\nPage.event_handlers.trigger_fulfillment.messages\nPage.event_handlers.trigger_fulfillment.conditional_cases\nPage.form.parameters.fill_behavior.initial_prompt_fulfillment.messages\nPage.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases\nPage.form.parameters.fill_behavior.reprompt_event_handlers.messages\nPage.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases\nPage.transition_routes.trigger_fulfillment.messages\nPage.transition_routes.trigger_fulfillment.conditional_cases\nIf not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The unique identifier of the page. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/pages/\u003cPage ID\u003e.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The flow to create a page for. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.","description_kind":"plain","optional":true},"transition_route_groups":{"type":["list","string"],"description":"Ordered list of TransitionRouteGroups associated with the page. Transition route groups must be unique within a page.\nIf multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -\u003e page's transition route group -\u003e flow's transition routes.\nIf multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence.\nFormat:projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/transitionRouteGroups/\u003cTransitionRouteGroup ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"entry_fulfillment":{"nesting_mode":"list","block":{"attributes":{"return_partial_responses":{"type":"bool","description":"Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.","description_kind":"plain","optional":true},"tag":{"type":"string","description":"The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.","description_kind":"plain","optional":true},"webhook":{"type":"string","description":"The webhook to call. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/webhooks/\u003cWebhook ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"messages":{"nesting_mode":"list","block":{"block_types":{"text":{"nesting_mode":"list","block":{"attributes":{"allow_playback_interruption":{"type":"bool","description":"Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.","description_kind":"plain","computed":true},"text":{"type":["list","string"],"description":"A collection of text responses.","description_kind":"plain","optional":true}},"description":"The text response message.","description_kind":"plain"},"max_items":1}},"description":"The list of rich message responses to present to the user.","description_kind":"plain"}}},"description":"The fulfillment to call when the session is entering the page.","description_kind":"plain"},"max_items":1},"event_handlers":{"nesting_mode":"list","block":{"attributes":{"event":{"type":"string","description":"The name of the event to handle.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The unique identifier of this event handler.","description_kind":"plain","computed":true},"target_flow":{"type":"string","description":"The target flow to transition to. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.","description_kind":"plain","optional":true},"target_page":{"type":"string","description":"The target page to transition to. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/pages/\u003cPage ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"trigger_fulfillment":{"nesting_mode":"list","block":{"attributes":{"return_partial_responses":{"type":"bool","description":"Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.","description_kind":"plain","optional":true},"tag":{"type":"string","description":"The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.","description_kind":"plain","optional":true},"webhook":{"type":"string","description":"The webhook to call. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/webhooks/\u003cWebhook ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"messages":{"nesting_mode":"list","block":{"block_types":{"text":{"nesting_mode":"list","block":{"attributes":{"allow_playback_interruption":{"type":"bool","description":"Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.","description_kind":"plain","computed":true},"text":{"type":["list","string"],"description":"A collection of text responses.","description_kind":"plain","optional":true}},"description":"The text response message.","description_kind":"plain"},"max_items":1}},"description":"The list of rich message responses to present to the user.","description_kind":"plain"}}},"description":"The fulfillment to call when the event occurs. Handling webhook errors with a fulfillment enabled with webhook could cause infinite loop. It is invalid to specify such fulfillment for a handler handling webhooks.","description_kind":"plain"},"max_items":1}},"description":"Handlers associated with the page to handle events such as webhook errors, no match or no input.","description_kind":"plain"}},"form":{"nesting_mode":"list","block":{"block_types":{"parameters":{"nesting_mode":"list","block":{"attributes":{"display_name":{"type":"string","description":"The human-readable name of the parameter, unique within the form.","description_kind":"plain","optional":true},"entity_type":{"type":"string","description":"The entity type of the parameter. \nFormat: projects/-/locations/-/agents/-/entityTypes/\u003cSystem Entity Type ID\u003e for system entity types (for example, projects/-/locations/-/agents/-/entityTypes/sys.date), or projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/entityTypes/\u003cEntity Type ID\u003e for developer entity types.","description_kind":"plain","optional":true},"is_list":{"type":"bool","description":"Indicates whether the parameter represents a list of values.","description_kind":"plain","optional":true},"redact":{"type":"bool","description":"Indicates whether the parameter content should be redacted in log. \nIf redaction is enabled, the parameter content will be replaced by parameter name during logging. Note: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled.","description_kind":"plain","optional":true},"required":{"type":"bool","description":"Indicates whether the parameter is required. Optional parameters will not trigger prompts; however, they are filled if the user specifies them. \nRequired parameters must be filled before form filling concludes.","description_kind":"plain","optional":true}},"block_types":{"fill_behavior":{"nesting_mode":"list","block":{"block_types":{"initial_prompt_fulfillment":{"nesting_mode":"list","block":{"attributes":{"return_partial_responses":{"type":"bool","description":"Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.","description_kind":"plain","optional":true},"tag":{"type":"string","description":"The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.","description_kind":"plain","optional":true},"webhook":{"type":"string","description":"The webhook to call. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/webhooks/\u003cWebhook ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"messages":{"nesting_mode":"list","block":{"block_types":{"text":{"nesting_mode":"list","block":{"attributes":{"allow_playback_interruption":{"type":"bool","description":"Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.","description_kind":"plain","computed":true},"text":{"type":["list","string"],"description":"A collection of text responses.","description_kind":"plain","optional":true}},"description":"The text response message.","description_kind":"plain"},"max_items":1}},"description":"The list of rich message responses to present to the user.","description_kind":"plain"}}},"description":"The fulfillment to provide the initial prompt that the agent can present to the user in order to fill the parameter.","description_kind":"plain"},"max_items":1}},"description":"Defines fill behavior for the parameter.","description_kind":"plain"},"max_items":1}},"description":"Parameters to collect from the user.","description_kind":"plain"}}},"description":"The form associated with the page, used for collecting parameters relevant to the page.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"transition_routes":{"nesting_mode":"list","block":{"attributes":{"condition":{"type":"string","description":"The condition to evaluate against form parameters or session parameters.\nAt least one of intent or condition must be specified. When both intent and condition are specified, the transition can only happen when both are fulfilled.","description_kind":"plain","optional":true},"intent":{"type":"string","description":"The unique identifier of an Intent. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/intents/\u003cIntent ID\u003e. Indicates that the transition can only happen when the given intent is matched. At least one of intent or condition must be specified. When both intent and condition are specified, the transition can only happen when both are fulfilled.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The unique identifier of this transition route.","description_kind":"plain","computed":true},"target_flow":{"type":"string","description":"The target flow to transition to. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.","description_kind":"plain","optional":true},"target_page":{"type":"string","description":"The target page to transition to. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/pages/\u003cPage ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"trigger_fulfillment":{"nesting_mode":"list","block":{"attributes":{"return_partial_responses":{"type":"bool","description":"Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.","description_kind":"plain","optional":true},"tag":{"type":"string","description":"The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.","description_kind":"plain","optional":true},"webhook":{"type":"string","description":"The webhook to call. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/webhooks/\u003cWebhook ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"messages":{"nesting_mode":"list","block":{"block_types":{"text":{"nesting_mode":"list","block":{"attributes":{"allow_playback_interruption":{"type":"bool","description":"Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.","description_kind":"plain","computed":true},"text":{"type":["list","string"],"description":"A collection of text responses.","description_kind":"plain","optional":true}},"description":"The text response message.","description_kind":"plain"},"max_items":1}},"description":"The list of rich message responses to present to the user.","description_kind":"plain"}}},"description":"The fulfillment to call when the event occurs. Handling webhook errors with a fulfillment enabled with webhook could cause infinite loop. It is invalid to specify such fulfillment for a handler handling webhooks.","description_kind":"plain"},"max_items":1}},"description":"A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow.\nWhen we are in a certain page, the TransitionRoutes are evalauted in the following order:\nTransitionRoutes defined in the page with intent specified.\nTransitionRoutes defined in the transition route groups with intent specified.\nTransitionRoutes defined in flow with intent specified.\nTransitionRoutes defined in the transition route groups with intent specified.\nTransitionRoutes defined in the page with only condition specified.\nTransitionRoutes defined in the transition route groups with only condition specified.","description_kind":"plain"}}},"description_kind":"plain"}},"google_dialogflow_cx_version":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"description":{"type":"string","description":"The description of the version. The maximum length is 500 characters. If exceeded, the request is rejected.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The human-readable name of the version. Limit of 64 characters.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Format: projects//locations//agents//flows//versions/. Version ID is a self-increasing number generated by Dialogflow upon version creation.","description_kind":"plain","computed":true},"nlu_settings":{"type":["list",["object",{"classification_threshold":"number","model_training_mode":"string","model_type":"string"}]],"description":"The NLU settings of the flow at version creation.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The Flow to create an Version for. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.","description_kind":"plain","optional":true},"state":{"type":"string","description":"The state of this version.\n* RUNNING: Version is not ready to serve (e.g. training is running).\n* SUCCEEDED: Training has succeeded and this version is ready to serve.\n* FAILED: Version training failed.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dialogflow_entity_type":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"The name of this entity type to be displayed on the console.","description_kind":"plain","required":true},"enable_fuzzy_extraction":{"type":"bool","description":"Enables fuzzy entity extraction during classification.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kind":{"type":"string","description":"Indicates the kind of entity type.\n* KIND_MAP: Map entity types allow mapping of a group of synonyms to a reference value.\n* KIND_LIST: List entity types contain a set of entries that do not map to reference values. However, list entity\ntypes can contain references to other entity types (with or without aliases).\n* KIND_REGEXP: Regexp entity types allow to specify regular expressions in entries values. Possible values: [\"KIND_MAP\", \"KIND_LIST\", \"KIND_REGEXP\"]","description_kind":"plain","required":true},"name":{"type":"string","description":"The unique identifier of the entity type. \nFormat: projects/\u003cProject ID\u003e/agent/entityTypes/\u003cEntity type ID\u003e.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"entities":{"nesting_mode":"list","block":{"attributes":{"synonyms":{"type":["list","string"],"description":"A collection of value synonyms. For example, if the entity type is vegetable, and value is scallions, a synonym\ncould be green onions.\nFor KIND_LIST entity types:\n* This collection must contain exactly one synonym equal to value.","description_kind":"plain","required":true},"value":{"type":"string","description":"The primary value associated with this entity entry. For example, if the entity type is vegetable, the value\ncould be scallions.\nFor KIND_MAP entity types:\n* A reference value to be used in place of synonyms.\nFor KIND_LIST entity types:\n* A string that can contain references to other entity types (with or without aliases).","description_kind":"plain","required":true}},"description":"The collection of entity entries associated with the entity type.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dialogflow_fulfillment":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"The human-readable name of the fulfillment, unique within the agent.","description_kind":"plain","required":true},"enabled":{"type":"bool","description":"Whether fulfillment is enabled.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The unique identifier of the fulfillment. \nFormat: projects/\u003cProject ID\u003e/agent/fulfillment - projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agent/fulfillment","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"features":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description":"The type of the feature that enabled for fulfillment.\n* SMALLTALK: Fulfillment is enabled for SmallTalk. Possible values: [\"SMALLTALK\"]","description_kind":"plain","required":true}},"description":"The field defines whether the fulfillment is enabled for certain features.","description_kind":"plain"}},"generic_web_service":{"nesting_mode":"list","block":{"attributes":{"password":{"type":"string","description":"The password for HTTP Basic authentication.","description_kind":"plain","optional":true},"request_headers":{"type":["map","string"],"description":"The HTTP request headers to send together with fulfillment requests.","description_kind":"plain","optional":true},"uri":{"type":"string","description":"The fulfillment URI for receiving POST requests. It must use https protocol.","description_kind":"plain","required":true},"username":{"type":"string","description":"The user name for HTTP Basic authentication.","description_kind":"plain","optional":true}},"description":"Represents configuration for a generic web service. Dialogflow supports two mechanisms for authentications: - Basic authentication with username and password. - Authentication with additional authentication headers.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dialogflow_intent":{"version":0,"block":{"attributes":{"action":{"type":"string","description":"The name of the action associated with the intent.\nNote: The action name must not contain whitespaces.","description_kind":"plain","optional":true,"computed":true},"default_response_platforms":{"type":["list","string"],"description":"The list of platforms for which the first responses will be copied from the messages in PLATFORM_UNSPECIFIED\n(i.e. default platform). Possible values: [\"FACEBOOK\", \"SLACK\", \"TELEGRAM\", \"KIK\", \"SKYPE\", \"LINE\", \"VIBER\", \"ACTIONS_ON_GOOGLE\", \"GOOGLE_HANGOUTS\"]","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The name of this intent to be displayed on the console.","description_kind":"plain","required":true},"events":{"type":["list","string"],"description":"The collection of event names that trigger the intent. If the collection of input contexts is not empty, all of\nthe contexts must be present in the active user session for an event to trigger this intent. See the \n[events reference](https://cloud.google.com/dialogflow/docs/events-overview) for more details.","description_kind":"plain","optional":true},"followup_intent_info":{"type":["list",["object",{"followup_intent_name":"string","parent_followup_intent_name":"string"}]],"description":"Information about all followup intents that have this intent as a direct or indirect parent. We populate this field\nonly in the output.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"input_context_names":{"type":["list","string"],"description":"The list of context names required for this intent to be triggered.\nFormat: projects/\u003cProject ID\u003e/agent/sessions/-/contexts/\u003cContext ID\u003e.","description_kind":"plain","optional":true},"is_fallback":{"type":"bool","description":"Indicates whether this is a fallback intent.","description_kind":"plain","optional":true,"computed":true},"ml_disabled":{"type":"bool","description":"Indicates whether Machine Learning is disabled for the intent.\nNote: If mlDisabled setting is set to true, then this intent is not taken into account during inference in ML\nONLY match mode. Also, auto-markup in the UI is turned off.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The unique identifier of this intent. \nFormat: projects/\u003cProject ID\u003e/agent/intents/\u003cIntent ID\u003e.","description_kind":"plain","computed":true},"parent_followup_intent_name":{"type":"string","description":"The unique identifier of the parent intent in the chain of followup intents.\nFormat: projects/\u003cProject ID\u003e/agent/intents/\u003cIntent ID\u003e.","description_kind":"plain","optional":true,"computed":true},"priority":{"type":"number","description":"The priority of this intent. Higher numbers represent higher priorities.\n - If the supplied value is unspecified or 0, the service translates the value to 500,000, which corresponds\n to the Normal priority in the console.\n - If the supplied value is negative, the intent is ignored in runtime detect intent requests.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"reset_contexts":{"type":"bool","description":"Indicates whether to delete all contexts in the current session when this intent is matched.","description_kind":"plain","optional":true,"computed":true},"root_followup_intent_name":{"type":"string","description":"The unique identifier of the root intent in the chain of followup intents. It identifies the correct followup\nintents chain for this intent.\nFormat: projects/\u003cProject ID\u003e/agent/intents/\u003cIntent ID\u003e.","description_kind":"plain","computed":true},"webhook_state":{"type":"string","description":"Indicates whether webhooks are enabled for the intent.\n* WEBHOOK_STATE_ENABLED: Webhook is enabled in the agent and in the intent.\n* WEBHOOK_STATE_ENABLED_FOR_SLOT_FILLING: Webhook is enabled in the agent and in the intent. Also, each slot\nfilling prompt is forwarded to the webhook. Possible values: [\"WEBHOOK_STATE_ENABLED\", \"WEBHOOK_STATE_ENABLED_FOR_SLOT_FILLING\"]","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dns_managed_zone":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A textual description field. Defaults to 'Managed by Terraform'.","description_kind":"plain","optional":true},"dns_name":{"type":"string","description":"The DNS name of this managed zone, for instance \"example.com.\".","description_kind":"plain","required":true},"force_destroy":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to this ManagedZone.","description_kind":"plain","optional":true},"name":{"type":"string","description":"User assigned name for this resource.\nMust be unique within the project.","description_kind":"plain","required":true},"name_servers":{"type":["list","string"],"description":"Delegate your managed_zone to these virtual name servers;\ndefined by the server","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"visibility":{"type":"string","description":"The zone's visibility: public zones are exposed to the Internet,\nwhile private zones are visible only to Virtual Private Cloud resources. Default value: \"public\" Possible values: [\"private\", \"public\"]","description_kind":"plain","optional":true}},"block_types":{"dnssec_config":{"nesting_mode":"list","block":{"attributes":{"kind":{"type":"string","description":"Identifies what kind of resource this is","description_kind":"plain","optional":true},"non_existence":{"type":"string","description":"Specifies the mechanism used to provide authenticated denial-of-existence responses.\nnon_existence can only be updated when the state is 'off'. Possible values: [\"nsec\", \"nsec3\"]","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description":"Specifies whether DNSSEC is enabled, and what mode it is in Possible values: [\"off\", \"on\", \"transfer\"]","description_kind":"plain","optional":true}},"block_types":{"default_key_specs":{"nesting_mode":"list","block":{"attributes":{"algorithm":{"type":"string","description":"String mnemonic specifying the DNSSEC algorithm of this key Possible values: [\"ecdsap256sha256\", \"ecdsap384sha384\", \"rsasha1\", \"rsasha256\", \"rsasha512\"]","description_kind":"plain","optional":true},"key_length":{"type":"number","description":"Length of the keys in bits","description_kind":"plain","optional":true},"key_type":{"type":"string","description":"Specifies whether this is a key signing key (KSK) or a zone\nsigning key (ZSK). Key signing keys have the Secure Entry\nPoint flag set and, when active, will only be used to sign\nresource record sets of type DNSKEY. Zone signing keys do\nnot have the Secure Entry Point flag set and will be used\nto sign all other types of resource record sets. Possible values: [\"keySigning\", \"zoneSigning\"]","description_kind":"plain","optional":true},"kind":{"type":"string","description":"Identifies what kind of resource this is","description_kind":"plain","optional":true}},"description":"Specifies parameters that will be used for generating initial DnsKeys\nfor this ManagedZone. If you provide a spec for keySigning or zoneSigning,\nyou must also provide one for the other.\ndefault_key_specs can only be updated when the state is 'off'.","description_kind":"plain"}}},"description":"DNSSEC configuration","description_kind":"plain"},"max_items":1},"forwarding_config":{"nesting_mode":"list","block":{"block_types":{"target_name_servers":{"nesting_mode":"set","block":{"attributes":{"forwarding_path":{"type":"string","description":"Forwarding path for this TargetNameServer. If unset or 'default' Cloud DNS will make forwarding\ndecision based on address ranges, i.e. RFC1918 addresses go to the VPC, Non-RFC1918 addresses go\nto the Internet. When set to 'private', Cloud DNS will always send queries through VPC for this target Possible values: [\"default\", \"private\"]","description_kind":"plain","optional":true},"ipv4_address":{"type":"string","description":"IPv4 address of a target name server.","description_kind":"plain","required":true}},"description":"List of target name servers to forward to. Cloud DNS will\nselect the best available name server if more than\none target is given.","description_kind":"plain"},"min_items":1}},"description":"The presence for this field indicates that outbound forwarding is enabled\nfor this zone. The value of this field contains the set of destinations\nto forward to.","description_kind":"plain"},"max_items":1},"peering_config":{"nesting_mode":"list","block":{"block_types":{"target_network":{"nesting_mode":"list","block":{"attributes":{"network_url":{"type":"string","description":"The id or fully qualified URL of the VPC network to forward queries to.\nThis should be formatted like 'projects/{project}/global/networks/{network}' or\n'https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}'","description_kind":"plain","required":true}},"description":"The network with which to peer.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"The presence of this field indicates that DNS Peering is enabled for this\nzone. The value of this field contains the network to peer with.","description_kind":"plain"},"max_items":1},"private_visibility_config":{"nesting_mode":"list","block":{"block_types":{"networks":{"nesting_mode":"set","block":{"attributes":{"network_url":{"type":"string","description":"The id or fully qualified URL of the VPC network to bind to.\nThis should be formatted like 'projects/{project}/global/networks/{network}' or\n'https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}'","description_kind":"plain","required":true}},"description":"The list of VPC networks that can see this zone. Until the provider updates to use the Terraform 0.12 SDK in a future release, you\nmay experience issues with this resource while updating. If you've defined a 'networks' block and\nadd another 'networks' block while keeping the old block, Terraform will see an incorrect diff\nand apply an incorrect update to the resource. If you encounter this issue, remove all 'networks'\nblocks in an update and then apply another update adding all of them back simultaneously.","description_kind":"plain"},"min_items":1}},"description":"For privately visible zones, the set of Virtual Private Cloud\nresources that the zone is visible from.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dns_policy":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A textual description field. Defaults to 'Managed by Terraform'.","description_kind":"plain","optional":true},"enable_inbound_forwarding":{"type":"bool","description":"Allows networks bound to this policy to receive DNS queries sent\nby VMs or applications over VPN connections. When enabled, a\nvirtual IP address will be allocated from each of the sub-networks\nthat are bound to this policy.","description_kind":"plain","optional":true},"enable_logging":{"type":"bool","description":"Controls whether logging is enabled for the networks bound to this policy.\nDefaults to no logging if not set.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"User assigned name for this policy.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"alternative_name_server_config":{"nesting_mode":"list","block":{"block_types":{"target_name_servers":{"nesting_mode":"set","block":{"attributes":{"forwarding_path":{"type":"string","description":"Forwarding path for this TargetNameServer. If unset or 'default' Cloud DNS will make forwarding\ndecision based on address ranges, i.e. RFC1918 addresses go to the VPC, Non-RFC1918 addresses go\nto the Internet. When set to 'private', Cloud DNS will always send queries through VPC for this target Possible values: [\"default\", \"private\"]","description_kind":"plain","optional":true},"ipv4_address":{"type":"string","description":"IPv4 address to forward to.","description_kind":"plain","required":true}},"description":"Sets an alternative name server for the associated networks. When specified,\nall DNS queries are forwarded to a name server that you choose. Names such as .internal\nare not available when an alternative name server is specified.","description_kind":"plain"},"min_items":1}},"description":"Sets an alternative name server for the associated networks.\nWhen specified, all DNS queries are forwarded to a name server that you choose.\nNames such as .internal are not available when an alternative name server is specified.","description_kind":"plain"},"max_items":1},"networks":{"nesting_mode":"set","block":{"attributes":{"network_url":{"type":"string","description":"The id or fully qualified URL of the VPC network to forward queries to.\nThis should be formatted like 'projects/{project}/global/networks/{network}' or\n'https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}'","description_kind":"plain","required":true}},"description":"List of network names specifying networks to which this policy is applied.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dns_record_set":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"managed_zone":{"type":"string","description":"The name of the zone in which this record set will reside.","description_kind":"plain","required":true},"name":{"type":"string","description":"The DNS name this record set will apply to.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"rrdatas":{"type":["list","string"],"description":"The string data for the records in this record set whose meaning depends on the DNS type. For TXT record, if the string data contains spaces, add surrounding \\\" if you don't want your string to get split on spaces. To specify a single record value longer than 255 characters such as a TXT record for DKIM, add \\\"\\\" inside the Terraform configuration string (e.g. \"first255characters\\\"\\\"morecharacters\").","description_kind":"plain","required":true},"ttl":{"type":"number","description":"The time-to-live of this record set (seconds).","description_kind":"plain","optional":true},"type":{"type":"string","description":"The DNS record set type.","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_endpoints_service":{"version":1,"block":{"attributes":{"apis":{"type":["list",["object",{"methods":["list",["object",{"name":"string","request_type":"string","response_type":"string","syntax":"string"}]],"name":"string","syntax":"string","version":"string"}]],"description":"A list of API objects.","description_kind":"plain","computed":true},"config_id":{"type":"string","description":"The autogenerated ID for the configuration that is rolled out as part of the creation of this resource. Must be provided to compute engine instances as a tag.","description_kind":"plain","computed":true},"dns_address":{"type":"string","description":"The address at which the service can be found - usually the same as the service name.","description_kind":"plain","computed":true},"endpoints":{"type":["list",["object",{"address":"string","name":"string"}]],"description":"A list of Endpoint objects.","description_kind":"plain","computed":true},"grpc_config":{"type":"string","description":"The full text of the Service Config YAML file (Example located here). If provided, must also provide protoc_output_base64. open_api config must not be provided.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"openapi_config":{"type":"string","description":"The full text of the OpenAPI YAML configuration as described here. Either this, or both of grpc_config and protoc_output_base64 must be specified.","description_kind":"plain","optional":true},"project":{"type":"string","description":"The project ID that the service belongs to. If not provided, provider project is used.","description_kind":"plain","optional":true,"computed":true},"protoc_output_base64":{"type":"string","description":"The full contents of the Service Descriptor File generated by protoc. This should be a compiled .pb file, base64-encoded.","description_kind":"plain","optional":true},"service_name":{"type":"string","description":"The name of the service. Usually of the form $apiname.endpoints.$projectid.cloud.goog.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_endpoints_service_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_endpoints_service_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_endpoints_service_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_essential_contacts_contact":{"version":0,"block":{"attributes":{"email":{"type":"string","description":"The email address to send notifications to. This does not need to be a Google account.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"language_tag":{"type":"string","description":"The preferred language for notifications, as a ISO 639-1 language code. See Supported languages for a list of supported languages.","description_kind":"plain","required":true},"name":{"type":"string","description":"The identifier for the contact. Format: {resourceType}/{resource_id}/contacts/{contact_id}","description_kind":"plain","computed":true},"notification_category_subscriptions":{"type":["list","string"],"description":"The categories of notifications that the contact will receive communications for.","description_kind":"plain","required":true},"parent":{"type":"string","description":"The resource to save this contact for. Format: organizations/{organization_id}, folders/{folder_id} or projects/{project_id}","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_eventarc_trigger":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Output only. The creation time.","description_kind":"plain","computed":true},"etag":{"type":"string","description":"Output only. This checksum is computed by the server based on the value of other fields, and may be sent only on create requests to ensure the client has an up-to-date value before proceeding.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Optional. User labels attached to the triggers that can be used to group resources.","description_kind":"plain","optional":true},"location":{"type":"string","description":"The location for the resource","description_kind":"plain","required":true},"name":{"type":"string","description":"Required. The resource name of the trigger. Must be unique within the location on the project and must be in `projects/{project}/locations/{location}/triggers/{trigger}` format.","description_kind":"plain","required":true},"project":{"type":"string","description":"The project for the resource","description_kind":"plain","optional":true,"computed":true},"service_account":{"type":"string","description":"Optional. The IAM service account email associated with the trigger. The service account represents the identity of the trigger. The principal who calls this API must have `iam.serviceAccounts.actAs` permission in the service account. See https://cloud.google.com/iam/docs/understanding-service-accounts?hl=en#sa_common for more information. For Cloud Run destinations, this service account is used to generate identity tokens when invoking the service. See https://cloud.google.com/run/docs/triggering/pubsub-push#create-service-account for information on how to invoke authenticated Cloud Run services. In order to create Audit Log triggers, the service account should also have `roles/eventarc.eventReceiver` IAM role.","description_kind":"plain","optional":true},"uid":{"type":"string","description":"Output only. Server assigned unique identifier for the trigger. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.","description_kind":"plain","computed":true},"update_time":{"type":"string","description":"Output only. The last-modified time.","description_kind":"plain","computed":true}},"block_types":{"destination":{"nesting_mode":"list","block":{"attributes":{"cloud_function":{"type":"string","description":"The Cloud Function resource name. Only Cloud Functions V2 is supported. Format: projects/{project}/locations/{location}/functions/{function}","description_kind":"plain","optional":true}},"block_types":{"cloud_run_service":{"nesting_mode":"list","block":{"attributes":{"path":{"type":"string","description":"Optional. The relative path on the Cloud Run service the events should be sent to. The value must conform to the definition of URI path segment (section 3.3 of RFC2396). Examples: \"/route\", \"route\", \"route/subroute\".","description_kind":"plain","optional":true},"region":{"type":"string","description":"Required. The region the Cloud Run service is deployed in.","description_kind":"plain","optional":true,"computed":true},"service":{"type":"string","description":"Required. The name of the Cloud Run service being addressed. See https://cloud.google.com/run/docs/reference/rest/v1/namespaces.services. Only services located in the same project of the trigger object can be addressed.","description_kind":"plain","required":true}},"description":"Cloud Run fully-managed service that receives the events. The service should be running in the same project of the trigger.","description_kind":"plain"},"max_items":1}},"description":"Required. Destination specifies where the events should be sent to.","description_kind":"plain"},"min_items":1,"max_items":1},"matching_criteria":{"nesting_mode":"set","block":{"attributes":{"attribute":{"type":"string","description":"Required. The name of a CloudEvents attribute. Currently, only a subset of attributes are supported for filtering. All triggers MUST provide a filter for the 'type' attribute.","description_kind":"plain","required":true},"value":{"type":"string","description":"Required. The value for the attribute.","description_kind":"plain","required":true}},"description":"Required. null The list of filters that applies to event attributes. Only events that match all the provided filters will be sent to the destination.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"transport":{"nesting_mode":"list","block":{"block_types":{"pubsub":{"nesting_mode":"list","block":{"attributes":{"subscription":{"type":"string","description":"Output only. The name of the Pub/Sub subscription created and managed by Eventarc system as a transport for the event delivery. Format: `projects/{PROJECT_ID}/subscriptions/{SUBSCRIPTION_NAME}`.","description_kind":"plain","computed":true},"topic":{"type":"string","description":"Optional. The name of the Pub/Sub topic created and managed by Eventarc system as a transport for the event delivery. Format: `projects/{PROJECT_ID}/topics/{TOPIC_NAME You may set an existing topic for triggers of the type google.cloud.pubsub.topic.v1.messagePublished` only. The topic you provide here will not be deleted by Eventarc at trigger deletion.","description_kind":"plain","optional":true}},"description":"The Pub/Sub topic and subscription used by Eventarc as delivery intermediary.","description_kind":"plain"},"max_items":1}},"description":"Optional. In order to deliver messages, Eventarc may use other GCP products as transport intermediary. This field contains a reference to that transport intermediary. This information can be used for debugging purposes.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_filestore_instance":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A description of the instance.","description_kind":"plain","optional":true},"etag":{"type":"string","description":"Server-specified ETag for the instance resource to prevent\nsimultaneous updates from overwriting each other.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Resource labels to represent user-provided metadata.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource name of the instance.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tier":{"type":"string","description":"The service tier of the instance. Possible values: [\"TIER_UNSPECIFIED\", \"STANDARD\", \"PREMIUM\", \"BASIC_HDD\", \"BASIC_SSD\", \"HIGH_SCALE_SSD\"]","description_kind":"plain","required":true},"zone":{"type":"string","description":"The name of the Filestore zone of the instance.","description_kind":"plain","required":true}},"block_types":{"file_shares":{"nesting_mode":"list","block":{"attributes":{"capacity_gb":{"type":"number","description":"File share capacity in GiB. This must be at least 1024 GiB\nfor the standard tier, or 2560 GiB for the premium tier.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the fileshare (16 characters or less)","description_kind":"plain","required":true}},"description":"File system shares on the instance. For this version, only a\nsingle file share is supported.","description_kind":"plain"},"min_items":1,"max_items":1},"networks":{"nesting_mode":"list","block":{"attributes":{"ip_addresses":{"type":["list","string"],"description":"A list of IPv4 or IPv6 addresses.","description_kind":"plain","computed":true},"modes":{"type":["list","string"],"description":"IP versions for which the instance has\nIP addresses assigned. Possible values: [\"ADDRESS_MODE_UNSPECIFIED\", \"MODE_IPV4\", \"MODE_IPV6\"]","description_kind":"plain","required":true},"network":{"type":"string","description":"The name of the GCE VPC network to which the\ninstance is connected.","description_kind":"plain","required":true},"reserved_ip_range":{"type":"string","description":"A /29 CIDR block that identifies the range of IP\naddresses reserved for this instance.","description_kind":"plain","optional":true,"computed":true}},"description":"VPC networks to which the instance is connected. For this version,\nonly a single network is supported.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_firestore_document":{"version":0,"block":{"attributes":{"collection":{"type":"string","description":"The collection ID, relative to database. For example: chatrooms or chatrooms/my-document/private-messages.","description_kind":"plain","required":true},"create_time":{"type":"string","description":"Creation timestamp in RFC3339 format.","description_kind":"plain","computed":true},"database":{"type":"string","description":"The Firestore database id. Defaults to '\"(default)\"'.","description_kind":"plain","optional":true},"document_id":{"type":"string","description":"The client-assigned document ID to use for this document during creation.","description_kind":"plain","required":true},"fields":{"type":"string","description":"The document's [fields](https://cloud.google.com/firestore/docs/reference/rest/v1/projects.databases.documents) formated as a json string.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"A server defined name for this index. Format:\n'projects/{{project_id}}/databases/{{database_id}}/documents/{{path}}/{{document_id}}'","description_kind":"plain","computed":true},"path":{"type":"string","description":"A relative path to the collection this document exists within","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"update_time":{"type":"string","description":"Last update timestamp in RFC3339 format.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_firestore_index":{"version":0,"block":{"attributes":{"collection":{"type":"string","description":"The collection being indexed.","description_kind":"plain","required":true},"database":{"type":"string","description":"The Firestore database id. Defaults to '\"(default)\"'.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"A server defined name for this index. Format:\n'projects/{{project}}/databases/{{database}}/collectionGroups/{{collection}}/indexes/{{server_generated_id}}'","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"query_scope":{"type":"string","description":"The scope at which a query is run. Default value: \"COLLECTION\" Possible values: [\"COLLECTION\", \"COLLECTION_GROUP\"]","description_kind":"plain","optional":true}},"block_types":{"fields":{"nesting_mode":"list","block":{"attributes":{"array_config":{"type":"string","description":"Indicates that this field supports operations on arrayValues. Only one of 'order' and 'arrayConfig' can\nbe specified. Possible values: [\"CONTAINS\"]","description_kind":"plain","optional":true},"field_path":{"type":"string","description":"Name of the field.","description_kind":"plain","optional":true},"order":{"type":"string","description":"Indicates that this field supports ordering by the specified order or comparing using =, \u003c, \u003c=, \u003e, \u003e=.\nOnly one of 'order' and 'arrayConfig' can be specified. Possible values: [\"ASCENDING\", \"DESCENDING\"]","description_kind":"plain","optional":true}},"description":"The fields supported by this index. The last field entry is always for\nthe field path '__name__'. If, on creation, '__name__' was not\nspecified as the last field, it will be added automatically with the\nsame direction as that of the last field defined. If the final field\nin a composite index is not directional, the '__name__' will be\nordered '\"ASCENDING\"' (unless explicitly specified otherwise).","description_kind":"plain"},"min_items":2},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_folder":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Timestamp when the Folder was created. Assigned by the server. A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"The folder's display name. A folder's display name must be unique amongst its siblings, e.g. no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters.","description_kind":"plain","required":true},"folder_id":{"type":"string","description":"The folder id from the name \"folders/{folder_id}\"","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifecycle_state":{"type":"string","description":"The lifecycle state of the folder such as ACTIVE or DELETE_REQUESTED.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The resource name of the Folder. Its format is folders/{folder_id}.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The resource name of the parent Folder or Organization. Must be of the form folders/{folder_id} or organizations/{org_id}.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_folder_access_approval_settings":{"version":0,"block":{"attributes":{"enrolled_ancestor":{"type":"bool","description":"If the field is true, that indicates that at least one service is enrolled for Access Approval in one or more ancestors of the Folder.","description_kind":"plain","computed":true},"folder_id":{"type":"string","description":"ID of the folder of the access approval settings.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of the settings. Format is \"folders/{folder_id}/accessApprovalSettings\"","description_kind":"plain","computed":true},"notification_emails":{"type":["set","string"],"description":"A list of email addresses to which notifications relating to approval requests should be sent.\nNotifications relating to a resource will be sent to all emails in the settings of ancestor\nresources of that resource. A maximum of 50 email addresses are allowed.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"enrolled_services":{"nesting_mode":"set","block":{"attributes":{"cloud_product":{"type":"string","description":"The product for which Access Approval will be enrolled. Allowed values are listed (case-sensitive):\n * all\n * App Engine\n * BigQuery\n * Cloud Bigtable\n * Cloud Key Management Service\n * Compute Engine\n * Cloud Dataflow\n * Cloud Identity and Access Management\n * Cloud Pub/Sub\n * Cloud Storage\n * Persistent Disk\n\nNote: These values are supported as input, but considered a legacy format:\n * all\n * appengine.googleapis.com\n * bigquery.googleapis.com\n * bigtable.googleapis.com\n * cloudkms.googleapis.com\n * compute.googleapis.com\n * dataflow.googleapis.com\n * iam.googleapis.com\n * pubsub.googleapis.com\n * storage.googleapis.com","description_kind":"plain","required":true},"enrollment_level":{"type":"string","description":"The enrollment level of the service. Default value: \"BLOCK_ALL\" Possible values: [\"BLOCK_ALL\"]","description_kind":"plain","optional":true}},"description":"A list of Google Cloud Services for which the given resource has Access Approval enrolled.\nAccess requests for the resource given by name against any of these services contained here will be required\nto have explicit approval. Enrollment can only be done on an all or nothing basis.\n\nA maximum of 10 enrolled services will be enforced, to be expanded as the set of supported services is expanded.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_folder_iam_audit_config":{"version":0,"block":{"attributes":{"etag":{"type":"string","description":"The etag of iam policy","description_kind":"plain","computed":true},"folder":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service":{"type":"string","description":"Service which will be enabled for audit logging. The special value allServices covers all services.","description_kind":"plain","required":true}},"block_types":{"audit_log_config":{"nesting_mode":"set","block":{"attributes":{"exempted_members":{"type":["set","string"],"description":"Identities that do not cause logging for this type of permission. Each entry can have one of the following values:user:{emailid}: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com. serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. domain:{domain}: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.","description_kind":"plain","optional":true},"log_type":{"type":"string","description":"Permission type for which logging is to be configured. Must be one of DATA_READ, DATA_WRITE, or ADMIN_READ.","description_kind":"plain","required":true}},"description":"The configuration for logging of each type of permission. This can be specified multiple times.","description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"google_folder_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"folder":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_folder_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"folder":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_folder_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"folder":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_folder_organization_policy":{"version":0,"block":{"attributes":{"constraint":{"type":"string","description":"The name of the Constraint the Policy is configuring, for example, serviceuser.services.","description_kind":"plain","required":true},"etag":{"type":"string","description":"The etag of the organization policy. etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other.","description_kind":"plain","computed":true},"folder":{"type":"string","description":"The resource name of the folder to set the policy for. Its format is folders/{folder_id}.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"update_time":{"type":"string","description":"The timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds, representing when the variable was last updated. Example: \"2016-10-09T12:33:37.578138407Z\".","description_kind":"plain","computed":true},"version":{"type":"number","description":"Version of the Policy. Default version is 0.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"boolean_policy":{"nesting_mode":"list","block":{"attributes":{"enforced":{"type":"bool","description":"If true, then the Policy is enforced. If false, then any configuration is acceptable.","description_kind":"plain","required":true}},"description":"A boolean policy is a constraint that is either enforced or not.","description_kind":"plain"},"max_items":1},"list_policy":{"nesting_mode":"list","block":{"attributes":{"inherit_from_parent":{"type":"bool","description":"If set to true, the values from the effective Policy of the parent resource are inherited, meaning the values set in this Policy are added to the values inherited up the hierarchy.","description_kind":"plain","optional":true},"suggested_value":{"type":"string","description":"The Google Cloud Console will try to default to a configuration that matches the value specified in this field.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"allow":{"nesting_mode":"list","block":{"attributes":{"all":{"type":"bool","description":"The policy allows or denies all values.","description_kind":"plain","optional":true},"values":{"type":["set","string"],"description":"The policy can define specific values that are allowed or denied.","description_kind":"plain","optional":true}},"description":"One or the other must be set.","description_kind":"plain"},"max_items":1},"deny":{"nesting_mode":"list","block":{"attributes":{"all":{"type":"bool","description":"The policy allows or denies all values.","description_kind":"plain","optional":true},"values":{"type":["set","string"],"description":"The policy can define specific values that are allowed or denied.","description_kind":"plain","optional":true}},"description":"One or the other must be set.","description_kind":"plain"},"max_items":1}},"description":"A policy that can define specific values that are allowed or denied for the given constraint. It can also be used to allow or deny all values. ","description_kind":"plain"},"max_items":1},"restore_policy":{"nesting_mode":"list","block":{"attributes":{"default":{"type":"bool","description":"May only be set to true. If set, then the default Policy is restored.","description_kind":"plain","required":true}},"description":"A restore policy is a constraint to restore the default policy.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_game_services_game_server_cluster":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Required. The resource name of the game server cluster","description_kind":"plain","required":true},"description":{"type":"string","description":"Human readable description of the cluster.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The labels associated with this game server cluster. Each label is a\nkey-value pair.","description_kind":"plain","optional":true},"location":{"type":"string","description":"Location of the Cluster.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource id of the game server cluster, eg:\n\n'projects/{project_id}/locations/{location}/realms/{realm_id}/gameServerClusters/{cluster_id}'.\nFor example,\n\n'projects/my-project/locations/{location}/realms/zanzibar/gameServerClusters/my-onprem-cluster'.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"realm_id":{"type":"string","description":"The realm id of the game server realm.","description_kind":"plain","required":true}},"block_types":{"connection_info":{"nesting_mode":"list","block":{"attributes":{"namespace":{"type":"string","description":"Namespace designated on the game server cluster where the game server\ninstances will be created. The namespace existence will be validated\nduring creation.","description_kind":"plain","required":true}},"block_types":{"gke_cluster_reference":{"nesting_mode":"list","block":{"attributes":{"cluster":{"type":"string","description":"The full or partial name of a GKE cluster, using one of the following\nforms:\n\n* 'projects/{project_id}/locations/{location}/clusters/{cluster_id}'\n* 'locations/{location}/clusters/{cluster_id}'\n* '{cluster_id}'\n\nIf project and location are not specified, the project and location of the\nGameServerCluster resource are used to generate the full name of the\nGKE cluster.","description_kind":"plain","required":true}},"description":"Reference of the GKE cluster where the game servers are installed.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Game server cluster connection information. This information is used to\nmanage game server clusters.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_game_services_game_server_config":{"version":0,"block":{"attributes":{"config_id":{"type":"string","description":"A unique id for the deployment config.","description_kind":"plain","required":true},"deployment_id":{"type":"string","description":"A unique id for the deployment.","description_kind":"plain","required":true},"description":{"type":"string","description":"The description of the game server config.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The labels associated with this game server config. Each label is a\nkey-value pair.","description_kind":"plain","optional":true},"location":{"type":"string","description":"Location of the Deployment.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource name of the game server config, in the form:\n\n'projects/{project_id}/locations/{location}/gameServerDeployments/{deployment_id}/configs/{config_id}'.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"fleet_configs":{"nesting_mode":"list","block":{"attributes":{"fleet_spec":{"type":"string","description":"The fleet spec, which is sent to Agones to configure fleet.\nThe spec can be passed as inline json but it is recommended to use a file reference\ninstead. File references can contain the json or yaml format of the fleet spec. Eg:\n\n* fleet_spec = jsonencode(yamldecode(file(\"fleet_configs.yaml\")))\n* fleet_spec = file(\"fleet_configs.json\")\n\nThe format of the spec can be found :\n'https://agones.dev/site/docs/reference/fleet/'.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the FleetConfig.","description_kind":"plain","optional":true,"computed":true}},"description":"The fleet config contains list of fleet specs. In the Single Cloud, there\nwill be only one.","description_kind":"plain"},"min_items":1},"scaling_configs":{"nesting_mode":"list","block":{"attributes":{"fleet_autoscaler_spec":{"type":"string","description":"Fleet autoscaler spec, which is sent to Agones.\nExample spec can be found :\nhttps://agones.dev/site/docs/reference/fleetautoscaler/","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the ScalingConfig","description_kind":"plain","required":true}},"block_types":{"schedules":{"nesting_mode":"list","block":{"attributes":{"cron_job_duration":{"type":"string","description":"The duration for the cron job event. The duration of the event is effective\nafter the cron job's start time.\n\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true},"cron_spec":{"type":"string","description":"The cron definition of the scheduled event. See\nhttps://en.wikipedia.org/wiki/Cron. Cron spec specifies the local time as\ndefined by the realm.","description_kind":"plain","optional":true},"end_time":{"type":"string","description":"The end time of the event.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","optional":true},"start_time":{"type":"string","description":"The start time of the event.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","optional":true}},"description":"The schedules to which this scaling config applies.","description_kind":"plain"}},"selectors":{"nesting_mode":"list","block":{"attributes":{"labels":{"type":["map","string"],"description":"Set of labels to group by.","description_kind":"plain","optional":true}},"description":"Labels used to identify the clusters to which this scaling config\napplies. A cluster is subject to this scaling config if its labels match\nany of the selector entries.","description_kind":"plain"}}},"description":"Optional. This contains the autoscaling settings.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_game_services_game_server_deployment":{"version":0,"block":{"attributes":{"deployment_id":{"type":"string","description":"A unique id for the deployment.","description_kind":"plain","required":true},"description":{"type":"string","description":"Human readable description of the game server deployment.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The labels associated with this game server deployment. Each label is a\nkey-value pair.","description_kind":"plain","optional":true},"location":{"type":"string","description":"Location of the Deployment.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource id of the game server deployment, eg:\n\n'projects/{project_id}/locations/{location}/gameServerDeployments/{deployment_id}'.\nFor example,\n\n'projects/my-project/locations/{location}/gameServerDeployments/my-deployment'.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_game_services_game_server_deployment_rollout":{"version":0,"block":{"attributes":{"default_game_server_config":{"type":"string","description":"This field points to the game server config that is\napplied by default to all realms and clusters. For example,\n\n'projects/my-project/locations/global/gameServerDeployments/my-game/configs/my-config'.","description_kind":"plain","required":true},"deployment_id":{"type":"string","description":"The deployment to rollout the new config to. Only 1 rollout must be associated with each deployment.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource id of the game server deployment\n\neg: 'projects/my-project/locations/global/gameServerDeployments/my-deployment/rollout'.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"game_server_config_overrides":{"nesting_mode":"list","block":{"attributes":{"config_version":{"type":"string","description":"Version of the configuration.","description_kind":"plain","optional":true}},"block_types":{"realms_selector":{"nesting_mode":"list","block":{"attributes":{"realms":{"type":["list","string"],"description":"List of realms to match against.","description_kind":"plain","optional":true}},"description":"Selection by realms.","description_kind":"plain"},"max_items":1}},"description":"The game_server_config_overrides contains the per game server config\noverrides. The overrides are processed in the order they are listed. As\nsoon as a match is found for a cluster, the rest of the list is not\nprocessed.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_game_services_realm":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Human readable description of the realm.","description_kind":"plain","optional":true},"etag":{"type":"string","description":"ETag of the resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The labels associated with this realm. Each label is a key-value pair.","description_kind":"plain","optional":true},"location":{"type":"string","description":"Location of the Realm.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource id of the realm, of the form:\n'projects/{project_id}/locations/{location}/realms/{realm_id}'. For\nexample, 'projects/my-project/locations/{location}/realms/my-realm'.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"realm_id":{"type":"string","description":"GCP region of the Realm.","description_kind":"plain","required":true},"time_zone":{"type":"string","description":"Required. Time zone where all realm-specific policies are evaluated. The value of\nthis field must be from the IANA time zone database:\nhttps://www.iana.org/time-zones.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_gke_hub_membership":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Labels to apply to this membership.","description_kind":"plain","optional":true},"membership_id":{"type":"string","description":"The client-provided identifier of the membership.","description_kind":"plain","required":true},"name":{"type":"string","description":"The unique identifier of the membership.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"authority":{"nesting_mode":"list","block":{"attributes":{"issuer":{"type":"string","description":"A JSON Web Token (JWT) issuer URI. 'issuer' must start with 'https://' and // be a valid \nwith length \u003c2000 characters. For example: 'https://container.googleapis.com/v1/projects/my-project/locations/us-west1/clusters/my-cluster' (must be 'locations' rather than 'zones'). If the cluster is provisioned with Terraform, this is '\"https://container.googleapis.com/v1/${google_container_cluster.my-cluster.id}\"'.","description_kind":"plain","required":true}},"description":"Authority encodes how Google will recognize identities from this Membership.\nSee the workload identity documentation for more details:\nhttps://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity","description_kind":"plain"},"max_items":1},"endpoint":{"nesting_mode":"list","block":{"block_types":{"gke_cluster":{"nesting_mode":"list","block":{"attributes":{"resource_link":{"type":"string","description":"Self-link of the GCP resource for the GKE cluster.\nFor example: '//container.googleapis.com/projects/my-project/zones/us-west1-a/clusters/my-cluster'.\nIt can be at the most 1000 characters in length. If the cluster is provisioned with Terraform,\nthis can be '\"//container.googleapis.com/${google_container_cluster.my-cluster.id}\"' or\n'google_container_cluster.my-cluster.id'.","description_kind":"plain","required":true}},"description":"If this Membership is a Kubernetes API server hosted on GKE, this is a self link to its GCP resource.","description_kind":"plain"},"max_items":1}},"description":"If this Membership is a Kubernetes API server hosted on GKE, this is a self link to its GCP resource.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_healthcare_consent_store":{"version":0,"block":{"attributes":{"dataset":{"type":"string","description":"Identifies the dataset addressed by this request. Must be in the format\n'projects/{project}/locations/{location}/datasets/{dataset}'","description_kind":"plain","required":true},"default_consent_ttl":{"type":"string","description":"Default time to live for consents in this store. Must be at least 24 hours. Updating this field will not affect the expiration time of existing consents.\n\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true},"enable_consent_create_on_update":{"type":"bool","description":"If true, [consents.patch] [google.cloud.healthcare.v1.consent.UpdateConsent] creates the consent if it does not already exist.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"User-supplied key-value pairs used to organize Consent stores.\n\nLabel keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must\nconform to the following PCRE regular expression: '[\\p{Ll}\\p{Lo}][\\p{Ll}\\p{Lo}\\p{N}_-]{0,62}'\n\nLabel values are optional, must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128\nbytes, and must conform to the following PCRE regular expression: '[\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}'\n\nNo more than 64 labels can be associated with a given store.\n\nAn object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of this ConsentStore, for example:\n\"consent1\"","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_healthcare_consent_store_iam_binding":{"version":0,"block":{"attributes":{"consent_store_id":{"type":"string","description_kind":"plain","required":true},"dataset":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_healthcare_consent_store_iam_member":{"version":0,"block":{"attributes":{"consent_store_id":{"type":"string","description_kind":"plain","required":true},"dataset":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_healthcare_consent_store_iam_policy":{"version":0,"block":{"attributes":{"consent_store_id":{"type":"string","description_kind":"plain","required":true},"dataset":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_healthcare_dataset":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location for the Dataset.","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name for the Dataset.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"The fully qualified name of this dataset","description_kind":"plain","computed":true},"time_zone":{"type":"string","description":"The default timezone used by this dataset. Must be a either a valid IANA time zone name such as\n\"America/New_York\" or empty, which defaults to UTC. This is used for parsing times in resources\n(e.g., HL7 messages) where no explicit timezone is specified.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_healthcare_dataset_iam_binding":{"version":0,"block":{"attributes":{"dataset_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_healthcare_dataset_iam_member":{"version":0,"block":{"attributes":{"dataset_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_healthcare_dataset_iam_policy":{"version":0,"block":{"attributes":{"dataset_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_healthcare_dicom_store":{"version":0,"block":{"attributes":{"dataset":{"type":"string","description":"Identifies the dataset addressed by this request. Must be in the format\n'projects/{project}/locations/{location}/datasets/{dataset}'","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"User-supplied key-value pairs used to organize DICOM stores.\n\nLabel keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must\nconform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}][\\p{Ll}\\p{Lo}\\p{N}_-]{0,62}\n\nLabel values are optional, must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128\nbytes, and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}\n\nNo more than 64 labels can be associated with a given store.\n\nAn object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource name for the DicomStore.\n\n** Changing this property may recreate the Dicom store (removing all data) **","description_kind":"plain","required":true},"self_link":{"type":"string","description":"The fully qualified name of this dataset","description_kind":"plain","computed":true}},"block_types":{"notification_config":{"nesting_mode":"list","block":{"attributes":{"pubsub_topic":{"type":"string","description":"The Cloud Pub/Sub topic that notifications of changes are published on. Supplied by the client.\nPubsubMessage.Data will contain the resource name. PubsubMessage.MessageId is the ID of this message.\nIt is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message\nwas published. Notifications are only sent if the topic is non-empty. Topic names must be scoped to a\nproject. service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com must have publisher permissions on the given\nCloud Pub/Sub topic. Not having adequate permissions will cause the calls that send notifications to fail.","description_kind":"plain","required":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_healthcare_dicom_store_iam_binding":{"version":0,"block":{"attributes":{"dicom_store_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_healthcare_dicom_store_iam_member":{"version":0,"block":{"attributes":{"dicom_store_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_healthcare_dicom_store_iam_policy":{"version":0,"block":{"attributes":{"dicom_store_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_healthcare_fhir_store":{"version":0,"block":{"attributes":{"dataset":{"type":"string","description":"Identifies the dataset addressed by this request. Must be in the format\n'projects/{project}/locations/{location}/datasets/{dataset}'","description_kind":"plain","required":true},"disable_referential_integrity":{"type":"bool","description":"Whether to disable referential integrity in this FHIR store. This field is immutable after FHIR store\ncreation. The default value is false, meaning that the API will enforce referential integrity and fail the\nrequests that will result in inconsistent state in the FHIR store. When this field is set to true, the API\nwill skip referential integrity check. Consequently, operations that rely on references, such as\nPatient.get$everything, will not return all the results if broken references exist.\n\n** Changing this property may recreate the FHIR store (removing all data) **","description_kind":"plain","optional":true},"disable_resource_versioning":{"type":"bool","description":"Whether to disable resource versioning for this FHIR store. This field can not be changed after the creation\nof FHIR store. If set to false, which is the default behavior, all write operations will cause historical\nversions to be recorded automatically. The historical versions can be fetched through the history APIs, but\ncannot be updated. If set to true, no historical versions will be kept. The server will send back errors for\nattempts to read the historical versions.\n\n** Changing this property may recreate the FHIR store (removing all data) **","description_kind":"plain","optional":true},"enable_history_import":{"type":"bool","description":"Whether to allow the bulk import API to accept history bundles and directly insert historical resource\nversions into the FHIR store. Importing resource histories creates resource interactions that appear to have\noccurred in the past, which clients may not want to allow. If set to false, history bundles within an import\nwill fail with an error.\n\n** Changing this property may recreate the FHIR store (removing all data) **\n\n** This property can be changed manually in the Google Cloud Healthcare admin console without recreating the FHIR store **","description_kind":"plain","optional":true},"enable_update_create":{"type":"bool","description":"Whether this FHIR store has the updateCreate capability. This determines if the client can use an Update\noperation to create a new resource with a client-specified ID. If false, all IDs are server-assigned through\nthe Create operation and attempts to Update a non-existent resource will return errors. Please treat the audit\nlogs with appropriate levels of care if client-specified resource IDs contain sensitive data such as patient\nidentifiers, those IDs will be part of the FHIR resource path recorded in Cloud audit logs and Cloud Pub/Sub\nnotifications.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"User-supplied key-value pairs used to organize FHIR stores.\n\nLabel keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must\nconform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}][\\p{Ll}\\p{Lo}\\p{N}_-]{0,62}\n\nLabel values are optional, must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128\nbytes, and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}\n\nNo more than 64 labels can be associated with a given store.\n\nAn object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource name for the FhirStore.\n\n** Changing this property may recreate the FHIR store (removing all data) **","description_kind":"plain","required":true},"self_link":{"type":"string","description":"The fully qualified name of this dataset","description_kind":"plain","computed":true},"version":{"type":"string","description":"The FHIR specification version. Possible values: [\"DSTU2\", \"STU3\", \"R4\"]","description_kind":"plain","required":true}},"block_types":{"notification_config":{"nesting_mode":"list","block":{"attributes":{"pubsub_topic":{"type":"string","description":"The Cloud Pub/Sub topic that notifications of changes are published on. Supplied by the client.\nPubsubMessage.Data will contain the resource name. PubsubMessage.MessageId is the ID of this message.\nIt is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message\nwas published. Notifications are only sent if the topic is non-empty. Topic names must be scoped to a\nproject. service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com must have publisher permissions on the given\nCloud Pub/Sub topic. Not having adequate permissions will cause the calls that send notifications to fail.","description_kind":"plain","required":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"stream_configs":{"nesting_mode":"list","block":{"attributes":{"resource_types":{"type":["list","string"],"description":"Supply a FHIR resource type (such as \"Patient\" or \"Observation\"). See\nhttps://www.hl7.org/fhir/valueset-resource-types.html for a list of all FHIR resource types. The server treats\nan empty list as an intent to stream all the supported resource types in this FHIR store.","description_kind":"plain","optional":true}},"block_types":{"bigquery_destination":{"nesting_mode":"list","block":{"attributes":{"dataset_uri":{"type":"string","description":"BigQuery URI to a dataset, up to 2000 characters long, in the format bq://projectId.bqDatasetId","description_kind":"plain","required":true}},"block_types":{"schema_config":{"nesting_mode":"list","block":{"attributes":{"recursive_structure_depth":{"type":"number","description":"The depth for all recursive structures in the output analytics schema. For example, concept in the CodeSystem\nresource is a recursive structure; when the depth is 2, the CodeSystem table will have a column called\nconcept.concept but not concept.concept.concept. If not specified or set to 0, the server will use the default\nvalue 2. The maximum depth allowed is 5.","description_kind":"plain","required":true},"schema_type":{"type":"string","description":"Specifies the output schema type. Only ANALYTICS is supported at this time.\n * ANALYTICS: Analytics schema defined by the FHIR community.\n See https://github.com/FHIR/sql-on-fhir/blob/master/sql-on-fhir.md. Default value: \"ANALYTICS\" Possible values: [\"ANALYTICS\"]","description_kind":"plain","optional":true}},"description":"The configuration for the exported BigQuery schema.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"The destination BigQuery structure that contains both the dataset location and corresponding schema config.\nThe output is organized in one table per resource type. The server reuses the existing tables (if any) that\nare named after the resource types, e.g. \"Patient\", \"Observation\". When there is no existing table for a given\nresource type, the server attempts to create one.\nSee the [streaming config reference](https://cloud.google.com/healthcare/docs/reference/rest/v1beta1/projects.locations.datasets.fhirStores#streamconfig) for more details.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"A list of streaming configs that configure the destinations of streaming export for every resource mutation in\nthis FHIR store. Each store is allowed to have up to 10 streaming configs. After a new config is added, the next\nresource mutation is streamed to the new location in addition to the existing ones. When a location is removed\nfrom the list, the server stops streaming to that location. Before adding a new config, you must add the required\nbigquery.dataEditor role to your project's Cloud Healthcare Service Agent service account. Some lag (typically on\nthe order of dozens of seconds) is expected before the results show up in the streaming destination.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_healthcare_fhir_store_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"fhir_store_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_healthcare_fhir_store_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"fhir_store_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_healthcare_fhir_store_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"fhir_store_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_healthcare_hl7_v2_store":{"version":0,"block":{"attributes":{"dataset":{"type":"string","description":"Identifies the dataset addressed by this request. Must be in the format\n'projects/{project}/locations/{location}/datasets/{dataset}'","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"User-supplied key-value pairs used to organize HL7v2 stores.\n\nLabel keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must\nconform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}][\\p{Ll}\\p{Lo}\\p{N}_-]{0,62}\n\nLabel values are optional, must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128\nbytes, and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}\n\nNo more than 64 labels can be associated with a given store.\n\nAn object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource name for the Hl7V2Store.\n\n** Changing this property may recreate the Hl7v2 store (removing all data) **","description_kind":"plain","required":true},"self_link":{"type":"string","description":"The fully qualified name of this dataset","description_kind":"plain","computed":true}},"block_types":{"notification_config":{"nesting_mode":"list","block":{"attributes":{"pubsub_topic":{"type":"string","description":"The Cloud Pub/Sub topic that notifications of changes are published on. Supplied by the client.\nPubsubMessage.Data will contain the resource name. PubsubMessage.MessageId is the ID of this message.\nIt is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message\nwas published. Notifications are only sent if the topic is non-empty. Topic names must be scoped to a\nproject. service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com must have publisher permissions on the given\nCloud Pub/Sub topic. Not having adequate permissions will cause the calls that send notifications to fail.","description_kind":"plain","required":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"notification_configs":{"nesting_mode":"list","block":{"attributes":{"filter":{"type":"string","description":"Restricts notifications sent for messages matching a filter. If this is empty, all messages\nare matched. Syntax: https://cloud.google.com/appengine/docs/standard/python/search/query_strings\n\nFields/functions available for filtering are:\n\n* messageType, from the MSH-9.1 field. For example, NOT messageType = \"ADT\".\n* send_date or sendDate, the YYYY-MM-DD date the message was sent in the dataset's timeZone, from the MSH-7 segment. For example, send_date \u003c \"2017-01-02\".\n* sendTime, the timestamp when the message was sent, using the RFC3339 time format for comparisons, from the MSH-7 segment. For example, sendTime \u003c \"2017-01-02T00:00:00-05:00\".\n* sendFacility, the care center that the message came from, from the MSH-4 segment. For example, sendFacility = \"ABC\".\n* PatientId(value, type), which matches if the message lists a patient having an ID of the given value and type in the PID-2, PID-3, or PID-4 segments. For example, PatientId(\"123456\", \"MRN\").\n* labels.x, a string value of the label with key x as set using the Message.labels map. For example, labels.\"priority\"=\"high\". The operator :* can be used to assert the existence of a label. For example, labels.\"priority\":*.","description_kind":"plain","optional":true},"pubsub_topic":{"type":"string","description":"The Cloud Pub/Sub topic that notifications of changes are published on. Supplied by the client.\nPubsubMessage.Data will contain the resource name. PubsubMessage.MessageId is the ID of this message.\nIt is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message\nwas published. Notifications are only sent if the topic is non-empty. Topic names must be scoped to a\nproject. service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com must have publisher permissions on the given\nCloud Pub/Sub topic. Not having adequate permissions will cause the calls that send notifications to fail.\n\nIf a notification cannot be published to Cloud Pub/Sub, errors will be logged to Stackdriver","description_kind":"plain","required":true}},"description":"A list of notification configs. Each configuration uses a filter to determine whether to publish a\nmessage (both Ingest \u0026 Create) on the corresponding notification destination. Only the message name\nis sent as part of the notification. Supplied by the client.","description_kind":"plain"}},"parser_config":{"nesting_mode":"list","block":{"attributes":{"allow_null_header":{"type":"bool","description":"Determines whether messages with no header are allowed.","description_kind":"plain","optional":true},"schema":{"type":"string","description":"JSON encoded string for schemas used to parse messages in this\nstore if schematized parsing is desired.","description_kind":"plain","optional":true},"segment_terminator":{"type":"string","description":"Byte(s) to be used as the segment terminator. If this is unset, '\\r' will be used as segment terminator.\n\nA base64-encoded string.","description_kind":"plain","optional":true},"version":{"type":"string","description":"The version of the unschematized parser to be used when a custom 'schema' is not set. Default value: \"V1\" Possible values: [\"V1\", \"V2\"]","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_healthcare_hl7_v2_store_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"hl7_v2_store_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_healthcare_hl7_v2_store_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"hl7_v2_store_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_healthcare_hl7_v2_store_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"hl7_v2_store_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_iap_app_engine_service_iam_binding":{"version":0,"block":{"attributes":{"app_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_app_engine_service_iam_member":{"version":0,"block":{"attributes":{"app_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_app_engine_service_iam_policy":{"version":0,"block":{"attributes":{"app_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_iap_app_engine_version_iam_binding":{"version":0,"block":{"attributes":{"app_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"service":{"type":"string","description_kind":"plain","required":true},"version_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_app_engine_version_iam_member":{"version":0,"block":{"attributes":{"app_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"service":{"type":"string","description_kind":"plain","required":true},"version_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_app_engine_version_iam_policy":{"version":0,"block":{"attributes":{"app_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service":{"type":"string","description_kind":"plain","required":true},"version_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_iap_brand":{"version":0,"block":{"attributes":{"application_title":{"type":"string","description":"Application name displayed on OAuth consent screen.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Output only. Identifier of the brand, in the format\n'projects/{project_number}/brands/{brand_id}'. NOTE: The brand\nidentification corresponds to the project number as only one\nbrand per project can be created.","description_kind":"plain","computed":true},"org_internal_only":{"type":"bool","description":"Whether the brand is only intended for usage inside the GSuite organization only.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"support_email":{"type":"string","description":"Support email displayed on the OAuth consent screen. Can be either a\nuser or group email. When a user email is specified, the caller must\nbe the user with the associated email address. When a group email is\nspecified, the caller can be either a user or a service account which\nis an owner of the specified group in Cloud Identity.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_iap_client":{"version":0,"block":{"attributes":{"brand":{"type":"string","description":"Identifier of the brand to which this client\nis attached to. The format is\n'projects/{project_number}/brands/{brand_id}/identityAwareProxyClients/{client_id}'.","description_kind":"plain","required":true},"client_id":{"type":"string","description":"Output only. Unique identifier of the OAuth client.","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"Human-friendly name given to the OAuth client.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secret":{"type":"string","description":"Output only. Client secret of the OAuth client.","description_kind":"plain","computed":true,"sensitive":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_iap_tunnel_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_tunnel_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_tunnel_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_iap_tunnel_instance_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_tunnel_instance_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_tunnel_instance_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_iap_web_backend_service_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"web_backend_service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_web_backend_service_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"web_backend_service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_web_backend_service_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"web_backend_service":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_iap_web_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_web_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_web_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_iap_web_type_app_engine_iam_binding":{"version":0,"block":{"attributes":{"app_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_web_type_app_engine_iam_member":{"version":0,"block":{"attributes":{"app_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_web_type_app_engine_iam_policy":{"version":0,"block":{"attributes":{"app_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_iap_web_type_compute_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_web_type_compute_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_web_type_compute_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_identity_platform_default_supported_idp_config":{"version":0,"block":{"attributes":{"client_id":{"type":"string","description":"OAuth client ID","description_kind":"plain","required":true},"client_secret":{"type":"string","description":"OAuth client secret","description_kind":"plain","required":true},"enabled":{"type":"bool","description":"If this IDP allows the user to sign in","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"idp_id":{"type":"string","description":"ID of the IDP. Possible values include:\n\n* 'apple.com'\n\n* 'facebook.com'\n\n* 'gc.apple.com'\n\n* 'github.com'\n\n* 'google.com'\n\n* 'linkedin.com'\n\n* 'microsoft.com'\n\n* 'playgames.google.com'\n\n* 'twitter.com'\n\n* 'yahoo.com'","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the DefaultSupportedIdpConfig resource","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_identity_platform_inbound_saml_config":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Human friendly display name.","description_kind":"plain","required":true},"enabled":{"type":"bool","description":"If this config allows users to sign in with the provider.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the InboundSamlConfig resource. Must start with 'saml.' and can only have alphanumeric characters,\nhyphens, underscores or periods. The part after 'saml.' must also start with a lowercase letter, end with an\nalphanumeric character, and have at least 2 characters.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"idp_config":{"nesting_mode":"list","block":{"attributes":{"idp_entity_id":{"type":"string","description":"Unique identifier for all SAML entities","description_kind":"plain","required":true},"sign_request":{"type":"bool","description":"Indicates if outbounding SAMLRequest should be signed.","description_kind":"plain","optional":true},"sso_url":{"type":"string","description":"URL to send Authentication request to.","description_kind":"plain","required":true}},"block_types":{"idp_certificates":{"nesting_mode":"list","block":{"attributes":{"x509_certificate":{"type":"string","description":"The IdP's x509 certificate.","description_kind":"plain","optional":true}},"description":"The IdP's certificate data to verify the signature in the SAMLResponse issued by the IDP.","description_kind":"plain"},"min_items":1}},"description":"SAML IdP configuration when the project acts as the relying party","description_kind":"plain"},"min_items":1,"max_items":1},"sp_config":{"nesting_mode":"list","block":{"attributes":{"callback_uri":{"type":"string","description":"Callback URI where responses from IDP are handled. Must start with 'https://'.","description_kind":"plain","optional":true},"sp_certificates":{"type":["list",["object",{"x509_certificate":"string"}]],"description":"The IDP's certificate data to verify the signature in the SAMLResponse issued by the IDP.","description_kind":"plain","computed":true},"sp_entity_id":{"type":"string","description":"Unique identifier for all SAML entities.","description_kind":"plain","optional":true}},"description":"SAML SP (Service Provider) configuration when the project acts as the relying party to receive\nand accept an authentication assertion issued by a SAML identity provider.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_identity_platform_oauth_idp_config":{"version":0,"block":{"attributes":{"client_id":{"type":"string","description":"The client id of an OAuth client.","description_kind":"plain","required":true},"client_secret":{"type":"string","description":"The client secret of the OAuth client, to enable OIDC code flow.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"Human friendly display name.","description_kind":"plain","optional":true},"enabled":{"type":"bool","description":"If this config allows users to sign in with the provider.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"issuer":{"type":"string","description":"For OIDC Idps, the issuer identifier.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the OauthIdpConfig. Must start with 'oidc.'.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_identity_platform_tenant":{"version":0,"block":{"attributes":{"allow_password_signup":{"type":"bool","description":"Whether to allow email/password user authentication.","description_kind":"plain","optional":true},"disable_auth":{"type":"bool","description":"Whether authentication is disabled for the tenant. If true, the users under\nthe disabled tenant are not allowed to sign-in. Admins of the disabled tenant\nare not able to manage its users.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"Human friendly display name of the tenant.","description_kind":"plain","required":true},"enable_email_link_signin":{"type":"bool","description":"Whether to enable email link user authentication.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the tenant that is generated by the server","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_identity_platform_tenant_default_supported_idp_config":{"version":0,"block":{"attributes":{"client_id":{"type":"string","description":"OAuth client ID","description_kind":"plain","required":true},"client_secret":{"type":"string","description":"OAuth client secret","description_kind":"plain","required":true},"enabled":{"type":"bool","description":"If this IDP allows the user to sign in","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"idp_id":{"type":"string","description":"ID of the IDP. Possible values include:\n\n* 'apple.com'\n\n* 'facebook.com'\n\n* 'gc.apple.com'\n\n* 'github.com'\n\n* 'google.com'\n\n* 'linkedin.com'\n\n* 'microsoft.com'\n\n* 'playgames.google.com'\n\n* 'twitter.com'\n\n* 'yahoo.com'","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the default supported IDP config resource","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant":{"type":"string","description":"The name of the tenant where this DefaultSupportedIdpConfig resource exists","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_identity_platform_tenant_inbound_saml_config":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Human friendly display name.","description_kind":"plain","required":true},"enabled":{"type":"bool","description":"If this config allows users to sign in with the provider.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the InboundSamlConfig resource. Must start with 'saml.' and can only have alphanumeric characters,\nhyphens, underscores or periods. The part after 'saml.' must also start with a lowercase letter, end with an\nalphanumeric character, and have at least 2 characters.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant":{"type":"string","description":"The name of the tenant where this inbound SAML config resource exists","description_kind":"plain","required":true}},"block_types":{"idp_config":{"nesting_mode":"list","block":{"attributes":{"idp_entity_id":{"type":"string","description":"Unique identifier for all SAML entities","description_kind":"plain","required":true},"sign_request":{"type":"bool","description":"Indicates if outbounding SAMLRequest should be signed.","description_kind":"plain","optional":true},"sso_url":{"type":"string","description":"URL to send Authentication request to.","description_kind":"plain","required":true}},"block_types":{"idp_certificates":{"nesting_mode":"list","block":{"attributes":{"x509_certificate":{"type":"string","description":"The x509 certificate","description_kind":"plain","optional":true}},"description":"The IDP's certificate data to verify the signature in the SAMLResponse issued by the IDP.","description_kind":"plain"},"min_items":1}},"description":"SAML IdP configuration when the project acts as the relying party","description_kind":"plain"},"min_items":1,"max_items":1},"sp_config":{"nesting_mode":"list","block":{"attributes":{"callback_uri":{"type":"string","description":"Callback URI where responses from IDP are handled. Must start with 'https://'.","description_kind":"plain","required":true},"sp_certificates":{"type":["list",["object",{"x509_certificate":"string"}]],"description":"The IDP's certificate data to verify the signature in the SAMLResponse issued by the IDP.","description_kind":"plain","computed":true},"sp_entity_id":{"type":"string","description":"Unique identifier for all SAML entities.","description_kind":"plain","required":true}},"description":"SAML SP (Service Provider) configuration when the project acts as the relying party to receive\nand accept an authentication assertion issued by a SAML identity provider.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_identity_platform_tenant_oauth_idp_config":{"version":0,"block":{"attributes":{"client_id":{"type":"string","description":"The client id of an OAuth client.","description_kind":"plain","required":true},"client_secret":{"type":"string","description":"The client secret of the OAuth client, to enable OIDC code flow.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"Human friendly display name.","description_kind":"plain","required":true},"enabled":{"type":"bool","description":"If this config allows users to sign in with the provider.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"issuer":{"type":"string","description":"For OIDC Idps, the issuer identifier.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the OauthIdpConfig. Must start with 'oidc.'.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant":{"type":"string","description":"The name of the tenant where this OIDC IDP configuration resource exists","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_kms_crypto_key":{"version":1,"block":{"attributes":{"destroy_scheduled_duration":{"type":"string","description":"The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED.\nIf not specified at creation time, the default duration is 24 hours.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"import_only":{"type":"bool","description":"Whether this key may contain imported versions only.","description_kind":"plain","optional":true,"computed":true},"key_ring":{"type":"string","description":"The KeyRing that this key belongs to.\nFormat: ''projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}''.","description_kind":"plain","required":true},"labels":{"type":["map","string"],"description":"Labels with user-defined metadata to apply to this resource.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource name for the CryptoKey.","description_kind":"plain","required":true},"purpose":{"type":"string","description":"The immutable purpose of this CryptoKey. See the\n[purpose reference](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys#CryptoKeyPurpose)\nfor possible inputs. Default value: \"ENCRYPT_DECRYPT\" Possible values: [\"ENCRYPT_DECRYPT\", \"ASYMMETRIC_SIGN\", \"ASYMMETRIC_DECRYPT\"]","description_kind":"plain","optional":true},"rotation_period":{"type":"string","description":"Every time this period passes, generate a new CryptoKeyVersion and set it as the primary.\nThe first rotation will take place after the specified period. The rotation period has\nthe format of a decimal number with up to 9 fractional digits, followed by the\nletter 's' (seconds). It must be greater than a day (ie, 86400).","description_kind":"plain","optional":true},"skip_initial_version_creation":{"type":"bool","description":"If set to true, the request will create a CryptoKey without any CryptoKeyVersions. \nYou must use the 'google_kms_key_ring_import_job' resource to import the CryptoKeyVersion.","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"version_template":{"nesting_mode":"list","block":{"attributes":{"algorithm":{"type":"string","description":"The algorithm to use when creating a version based on this template.\nSee the [algorithm reference](https://cloud.google.com/kms/docs/reference/rest/v1/CryptoKeyVersionAlgorithm) for possible inputs.","description_kind":"plain","required":true},"protection_level":{"type":"string","description":"The protection level to use when creating a version based on this template. Possible values include \"SOFTWARE\", \"HSM\", \"EXTERNAL\". Defaults to \"SOFTWARE\".","description_kind":"plain","optional":true}},"description":"A template describing settings for new crypto key versions.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_kms_crypto_key_iam_binding":{"version":0,"block":{"attributes":{"crypto_key_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_kms_crypto_key_iam_member":{"version":0,"block":{"attributes":{"crypto_key_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_kms_crypto_key_iam_policy":{"version":0,"block":{"attributes":{"crypto_key_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_kms_key_ring":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location for the KeyRing.\nA full list of valid locations can be found by running 'gcloud kms locations list'.","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name for the KeyRing.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_kms_key_ring_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_ring_id":{"type":"string","description_kind":"plain","required":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_kms_key_ring_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_ring_id":{"type":"string","description_kind":"plain","required":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_kms_key_ring_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_ring_id":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_kms_key_ring_import_job":{"version":0,"block":{"attributes":{"attestation":{"type":["list",["object",{"content":"string","format":"string"}]],"description":"Statement that was generated and signed by the key creator (for example, an HSM) at key creation time.\nUse this statement to verify attributes of the key as stored on the HSM, independently of Google.\nOnly present if the chosen ImportMethod is one with a protection level of HSM.","description_kind":"plain","computed":true},"expire_time":{"type":"string","description":"The time at which this resource is scheduled for expiration and can no longer be used.\nThis is in RFC3339 text format.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"import_job_id":{"type":"string","description":"It must be unique within a KeyRing and match the regular expression [a-zA-Z0-9_-]{1,63}","description_kind":"plain","required":true},"import_method":{"type":"string","description":"The wrapping method to be used for incoming key material. Possible values: [\"RSA_OAEP_3072_SHA1_AES_256\", \"RSA_OAEP_4096_SHA1_AES_256\"]","description_kind":"plain","required":true},"key_ring":{"type":"string","description":"The KeyRing that this import job belongs to.\nFormat: ''projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}''.","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name for this ImportJob in the format projects/*/locations/*/keyRings/*/importJobs/*.","description_kind":"plain","computed":true},"protection_level":{"type":"string","description":"The protection level of the ImportJob. This must match the protectionLevel of the\nversionTemplate on the CryptoKey you attempt to import into. Possible values: [\"SOFTWARE\", \"HSM\", \"EXTERNAL\"]","description_kind":"plain","required":true},"public_key":{"type":["list",["object",{"pem":"string"}]],"description":"The public key with which to wrap key material prior to import. Only returned if state is 'ACTIVE'.","description_kind":"plain","computed":true},"state":{"type":"string","description":"The current state of the ImportJob, indicating if it can be used.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_kms_secret_ciphertext":{"version":0,"block":{"attributes":{"additional_authenticated_data":{"type":"string","description":"The additional authenticated data used for integrity checks during encryption and decryption.","description_kind":"plain","optional":true,"sensitive":true},"ciphertext":{"type":"string","description":"Contains the result of encrypting the provided plaintext, encoded in base64.","description_kind":"plain","computed":true},"crypto_key":{"type":"string","description":"The full name of the CryptoKey that will be used to encrypt the provided plaintext.\nFormat: ''projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}/cryptoKeys/{{cryptoKey}}''","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"plaintext":{"type":"string","description":"The plaintext to be encrypted.","description_kind":"plain","required":true,"sensitive":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_logging_billing_account_bucket_config":{"version":0,"block":{"attributes":{"billing_account":{"type":"string","description":"The parent resource that contains the logging bucket.","description_kind":"plain","required":true},"bucket_id":{"type":"string","description":"The name of the logging bucket. Logging automatically creates two log buckets: _Required and _Default.","description_kind":"plain","required":true},"description":{"type":"string","description":"An optional description for this bucket.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifecycle_state":{"type":"string","description":"The bucket's lifecycle such as active or deleted.","description_kind":"plain","computed":true},"location":{"type":"string","description":"The location of the bucket.","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name of the bucket","description_kind":"plain","computed":true},"retention_days":{"type":"number","description":"Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_logging_billing_account_exclusion":{"version":0,"block":{"attributes":{"billing_account":{"type":"string","description_kind":"plain","required":true},"description":{"type":"string","description":"A human-readable description.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"Whether this exclusion rule should be disabled or not. This defaults to false.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"The filter to apply when excluding logs. Only log entries that match the filter are excluded.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the logging exclusion.","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_logging_billing_account_sink":{"version":0,"block":{"attributes":{"billing_account":{"type":"string","description":"The billing account exported to the sink.","description_kind":"plain","required":true},"description":{"type":"string","description":"A description of this sink. The maximum length of the description is 8000 characters.","description_kind":"plain","optional":true},"destination":{"type":"string","description":"The destination of the sink (or, in other words, where logs are written to). Can be a Cloud Storage bucket, a PubSub topic, or a BigQuery dataset. Examples: \"storage.googleapis.com/[GCS_BUCKET]\" \"bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]\" \"pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]\" The writer associated with the sink must have access to write to the above resource.","description_kind":"plain","required":true},"disabled":{"type":"bool","description":"If set to True, then this sink is disabled and it does not export any log entries.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"The filter to apply when exporting logs. Only log entries that match the filter are exported.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the logging sink.","description_kind":"plain","required":true},"writer_identity":{"type":"string","description":"The identity associated with this sink. This identity must be granted write access to the configured destination.","description_kind":"plain","computed":true}},"block_types":{"bigquery_options":{"nesting_mode":"list","block":{"attributes":{"use_partitioned_tables":{"type":"bool","description":"Whether to use BigQuery's partition tables. By default, Logging creates dated tables based on the log entries' timestamps, e.g. syslog_20170523. With partitioned tables the date suffix is no longer present and special query syntax has to be used instead. In both cases, tables are sharded based on UTC timezone.","description_kind":"plain","required":true}},"description":"Options that affect sinks exporting data to BigQuery.","description_kind":"plain"},"max_items":1},"exclusions":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"A description of this exclusion.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If set to True, then this exclusion is disabled and it does not exclude any log entries","description_kind":"plain","optional":true},"filter":{"type":"string","description":"An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries","description_kind":"plain","required":true},"name":{"type":"string","description":"A client-assigned identifier, such as \"load-balancer-exclusion\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.","description_kind":"plain","required":true}},"description":"Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both filter and one of exclusion_filters it will not be exported.","description_kind":"plain"}}},"description_kind":"plain"}},"google_logging_folder_bucket_config":{"version":0,"block":{"attributes":{"bucket_id":{"type":"string","description":"The name of the logging bucket. Logging automatically creates two log buckets: _Required and _Default.","description_kind":"plain","required":true},"description":{"type":"string","description":"An optional description for this bucket.","description_kind":"plain","optional":true,"computed":true},"folder":{"type":"string","description":"The parent resource that contains the logging bucket.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifecycle_state":{"type":"string","description":"The bucket's lifecycle such as active or deleted.","description_kind":"plain","computed":true},"location":{"type":"string","description":"The location of the bucket.","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name of the bucket","description_kind":"plain","computed":true},"retention_days":{"type":"number","description":"Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_logging_folder_exclusion":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A human-readable description.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"Whether this exclusion rule should be disabled or not. This defaults to false.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"The filter to apply when excluding logs. Only log entries that match the filter are excluded.","description_kind":"plain","required":true},"folder":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the logging exclusion.","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_logging_folder_sink":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A description of this sink. The maximum length of the description is 8000 characters.","description_kind":"plain","optional":true},"destination":{"type":"string","description":"The destination of the sink (or, in other words, where logs are written to). Can be a Cloud Storage bucket, a PubSub topic, or a BigQuery dataset. Examples: \"storage.googleapis.com/[GCS_BUCKET]\" \"bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]\" \"pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]\" The writer associated with the sink must have access to write to the above resource.","description_kind":"plain","required":true},"disabled":{"type":"bool","description":"If set to True, then this sink is disabled and it does not export any log entries.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"The filter to apply when exporting logs. Only log entries that match the filter are exported.","description_kind":"plain","optional":true},"folder":{"type":"string","description":"The folder to be exported to the sink. Note that either [FOLDER_ID] or \"folders/[FOLDER_ID]\" is accepted.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"include_children":{"type":"bool","description":"Whether or not to include children folders in the sink export. If true, logs associated with child projects are also exported; otherwise only logs relating to the provided folder are included.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the logging sink.","description_kind":"plain","required":true},"writer_identity":{"type":"string","description":"The identity associated with this sink. This identity must be granted write access to the configured destination.","description_kind":"plain","computed":true}},"block_types":{"bigquery_options":{"nesting_mode":"list","block":{"attributes":{"use_partitioned_tables":{"type":"bool","description":"Whether to use BigQuery's partition tables. By default, Logging creates dated tables based on the log entries' timestamps, e.g. syslog_20170523. With partitioned tables the date suffix is no longer present and special query syntax has to be used instead. In both cases, tables are sharded based on UTC timezone.","description_kind":"plain","required":true}},"description":"Options that affect sinks exporting data to BigQuery.","description_kind":"plain"},"max_items":1},"exclusions":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"A description of this exclusion.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If set to True, then this exclusion is disabled and it does not exclude any log entries","description_kind":"plain","optional":true},"filter":{"type":"string","description":"An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries","description_kind":"plain","required":true},"name":{"type":"string","description":"A client-assigned identifier, such as \"load-balancer-exclusion\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.","description_kind":"plain","required":true}},"description":"Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both filter and one of exclusion_filters it will not be exported.","description_kind":"plain"}}},"description_kind":"plain"}},"google_logging_metric":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A description of this metric, which is used in documentation. The maximum length of the\ndescription is 8000 characters.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"An advanced logs filter (https://cloud.google.com/logging/docs/view/advanced-filters) which\nis used to match log entries.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label_extractors":{"type":["map","string"],"description":"A map from a label key string to an extractor expression which is used to extract data from a log\nentry field and assign as the label value. Each label key specified in the LabelDescriptor must\nhave an associated extractor expression in this map. The syntax of the extractor expression is\nthe same as for the valueExtractor field.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The client-assigned metric identifier. Examples - \"error_count\", \"nginx/requests\".\nMetric identifiers are limited to 100 characters and can include only the following\ncharacters A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash\ncharacter (/) denotes a hierarchy of name pieces, and it cannot be the first character\nof the name.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_extractor":{"type":"string","description":"A valueExtractor is required when using a distribution logs-based metric to extract the values to\nrecord from a log entry. Two functions are supported for value extraction - EXTRACT(field) or\nREGEXP_EXTRACT(field, regex). The argument are 1. field - The name of the log entry field from which\nthe value is to be extracted. 2. regex - A regular expression using the Google RE2 syntax\n(https://github.com/google/re2/wiki/Syntax) with a single capture group to extract data from the specified\nlog entry field. The value of the field is converted to a string before applying the regex. It is an\nerror to specify a regex that does not include exactly one capture group.","description_kind":"plain","optional":true}},"block_types":{"bucket_options":{"nesting_mode":"list","block":{"block_types":{"explicit_buckets":{"nesting_mode":"list","block":{"attributes":{"bounds":{"type":["list","number"],"description":"The values must be monotonically increasing.","description_kind":"plain","required":true}},"description":"Specifies a set of buckets with arbitrary widths.","description_kind":"plain"},"max_items":1},"exponential_buckets":{"nesting_mode":"list","block":{"attributes":{"growth_factor":{"type":"number","description":"Must be greater than 1.","description_kind":"plain","optional":true},"num_finite_buckets":{"type":"number","description":"Must be greater than 0.","description_kind":"plain","optional":true},"scale":{"type":"number","description":"Must be greater than 0.","description_kind":"plain","optional":true}},"description":"Specifies an exponential sequence of buckets that have a width that is proportional to the value of\nthe lower bound. Each bucket represents a constant relative uncertainty on a specific value in the bucket.","description_kind":"plain"},"max_items":1},"linear_buckets":{"nesting_mode":"list","block":{"attributes":{"num_finite_buckets":{"type":"number","description":"Must be greater than 0.","description_kind":"plain","optional":true},"offset":{"type":"number","description":"Lower bound of the first bucket.","description_kind":"plain","optional":true},"width":{"type":"number","description":"Must be greater than 0.","description_kind":"plain","optional":true}},"description":"Specifies a linear sequence of buckets that all have the same width (except overflow and underflow).\nEach bucket represents a constant absolute uncertainty on the specific value in the bucket.","description_kind":"plain"},"max_items":1}},"description":"The bucketOptions are required when the logs-based metric is using a DISTRIBUTION value type and it\ndescribes the bucket boundaries used to create a histogram of the extracted values.","description_kind":"plain"},"max_items":1},"metric_descriptor":{"nesting_mode":"list","block":{"attributes":{"display_name":{"type":"string","description":"A concise name for the metric, which can be displayed in user interfaces. Use sentence case \nwithout an ending period, for example \"Request count\". This field is optional but it is \nrecommended to be set for any metrics associated with user-visible concepts, such as Quota.","description_kind":"plain","optional":true},"metric_kind":{"type":"string","description":"Whether the metric records instantaneous values, changes to a value, etc.\nSome combinations of metricKind and valueType might not be supported.\nFor counter metrics, set this to DELTA. Possible values: [\"DELTA\", \"GAUGE\", \"CUMULATIVE\"]","description_kind":"plain","required":true},"unit":{"type":"string","description":"The unit in which the metric value is reported. It is only applicable if the valueType is\n'INT64', 'DOUBLE', or 'DISTRIBUTION'. The supported units are a subset of\n[The Unified Code for Units of Measure](http://unitsofmeasure.org/ucum.html) standard","description_kind":"plain","optional":true},"value_type":{"type":"string","description":"Whether the measurement is an integer, a floating-point number, etc.\nSome combinations of metricKind and valueType might not be supported.\nFor counter metrics, set this to INT64. Possible values: [\"BOOL\", \"INT64\", \"DOUBLE\", \"STRING\", \"DISTRIBUTION\", \"MONEY\"]","description_kind":"plain","required":true}},"block_types":{"labels":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"A human-readable description for the label.","description_kind":"plain","optional":true},"key":{"type":"string","description":"The label key.","description_kind":"plain","required":true},"value_type":{"type":"string","description":"The type of data that can be assigned to the label. Default value: \"STRING\" Possible values: [\"BOOL\", \"INT64\", \"STRING\"]","description_kind":"plain","optional":true}},"description":"The set of labels that can be used to describe a specific instance of this metric type. For\nexample, the appengine.googleapis.com/http/server/response_latencies metric type has a label\nfor the HTTP response code, response_code, so you can look at latencies for successful responses\nor just for responses that failed.","description_kind":"plain"}}},"description":"The metric descriptor associated with the logs-based metric.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_logging_organization_bucket_config":{"version":0,"block":{"attributes":{"bucket_id":{"type":"string","description":"The name of the logging bucket. Logging automatically creates two log buckets: _Required and _Default.","description_kind":"plain","required":true},"description":{"type":"string","description":"An optional description for this bucket.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifecycle_state":{"type":"string","description":"The bucket's lifecycle such as active or deleted.","description_kind":"plain","computed":true},"location":{"type":"string","description":"The location of the bucket.","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name of the bucket","description_kind":"plain","computed":true},"organization":{"type":"string","description":"The parent resource that contains the logging bucket.","description_kind":"plain","required":true},"retention_days":{"type":"number","description":"Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_logging_organization_exclusion":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A human-readable description.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"Whether this exclusion rule should be disabled or not. This defaults to false.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"The filter to apply when excluding logs. Only log entries that match the filter are excluded.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the logging exclusion.","description_kind":"plain","required":true},"org_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_logging_organization_sink":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A description of this sink. The maximum length of the description is 8000 characters.","description_kind":"plain","optional":true},"destination":{"type":"string","description":"The destination of the sink (or, in other words, where logs are written to). Can be a Cloud Storage bucket, a PubSub topic, or a BigQuery dataset. Examples: \"storage.googleapis.com/[GCS_BUCKET]\" \"bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]\" \"pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]\" The writer associated with the sink must have access to write to the above resource.","description_kind":"plain","required":true},"disabled":{"type":"bool","description":"If set to True, then this sink is disabled and it does not export any log entries.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"The filter to apply when exporting logs. Only log entries that match the filter are exported.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"include_children":{"type":"bool","description":"Whether or not to include children organizations in the sink export. If true, logs associated with child projects are also exported; otherwise only logs relating to the provided organization are included.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the logging sink.","description_kind":"plain","required":true},"org_id":{"type":"string","description":"The numeric ID of the organization to be exported to the sink.","description_kind":"plain","required":true},"writer_identity":{"type":"string","description":"The identity associated with this sink. This identity must be granted write access to the configured destination.","description_kind":"plain","computed":true}},"block_types":{"bigquery_options":{"nesting_mode":"list","block":{"attributes":{"use_partitioned_tables":{"type":"bool","description":"Whether to use BigQuery's partition tables. By default, Logging creates dated tables based on the log entries' timestamps, e.g. syslog_20170523. With partitioned tables the date suffix is no longer present and special query syntax has to be used instead. In both cases, tables are sharded based on UTC timezone.","description_kind":"plain","required":true}},"description":"Options that affect sinks exporting data to BigQuery.","description_kind":"plain"},"max_items":1},"exclusions":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"A description of this exclusion.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If set to True, then this exclusion is disabled and it does not exclude any log entries","description_kind":"plain","optional":true},"filter":{"type":"string","description":"An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries","description_kind":"plain","required":true},"name":{"type":"string","description":"A client-assigned identifier, such as \"load-balancer-exclusion\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.","description_kind":"plain","required":true}},"description":"Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both filter and one of exclusion_filters it will not be exported.","description_kind":"plain"}}},"description_kind":"plain"}},"google_logging_project_bucket_config":{"version":0,"block":{"attributes":{"bucket_id":{"type":"string","description":"The name of the logging bucket. Logging automatically creates two log buckets: _Required and _Default.","description_kind":"plain","required":true},"description":{"type":"string","description":"An optional description for this bucket.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifecycle_state":{"type":"string","description":"The bucket's lifecycle such as active or deleted.","description_kind":"plain","computed":true},"location":{"type":"string","description":"The location of the bucket.","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name of the bucket","description_kind":"plain","computed":true},"project":{"type":"string","description":"The parent project that contains the logging bucket.","description_kind":"plain","required":true},"retention_days":{"type":"number","description":"Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_logging_project_exclusion":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A human-readable description.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"Whether this exclusion rule should be disabled or not. This defaults to false.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"The filter to apply when excluding logs. Only log entries that match the filter are excluded.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the logging exclusion.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_logging_project_sink":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A description of this sink. The maximum length of the description is 8000 characters.","description_kind":"plain","optional":true},"destination":{"type":"string","description":"The destination of the sink (or, in other words, where logs are written to). Can be a Cloud Storage bucket, a PubSub topic, or a BigQuery dataset. Examples: \"storage.googleapis.com/[GCS_BUCKET]\" \"bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]\" \"pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]\" The writer associated with the sink must have access to write to the above resource.","description_kind":"plain","required":true},"disabled":{"type":"bool","description":"If set to True, then this sink is disabled and it does not export any log entries.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"The filter to apply when exporting logs. Only log entries that match the filter are exported.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the logging sink.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project to create the sink in. If omitted, the project associated with the provider is used.","description_kind":"plain","optional":true,"computed":true},"unique_writer_identity":{"type":"bool","description":"Whether or not to create a unique identity associated with this sink. If false (the default), then the writer_identity used is serviceAccount:cloud-logs@system.gserviceaccount.com. If true, then a unique service account is created and used for this sink. If you wish to publish logs across projects, you must set unique_writer_identity to true.","description_kind":"plain","optional":true},"writer_identity":{"type":"string","description":"The identity associated with this sink. This identity must be granted write access to the configured destination.","description_kind":"plain","computed":true}},"block_types":{"bigquery_options":{"nesting_mode":"list","block":{"attributes":{"use_partitioned_tables":{"type":"bool","description":"Whether to use BigQuery's partition tables. By default, Logging creates dated tables based on the log entries' timestamps, e.g. syslog_20170523. With partitioned tables the date suffix is no longer present and special query syntax has to be used instead. In both cases, tables are sharded based on UTC timezone.","description_kind":"plain","required":true}},"description":"Options that affect sinks exporting data to BigQuery.","description_kind":"plain"},"max_items":1},"exclusions":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"A description of this exclusion.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If set to True, then this exclusion is disabled and it does not exclude any log entries","description_kind":"plain","optional":true},"filter":{"type":"string","description":"An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries","description_kind":"plain","required":true},"name":{"type":"string","description":"A client-assigned identifier, such as \"load-balancer-exclusion\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.","description_kind":"plain","required":true}},"description":"Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both filter and one of exclusion_filters it will not be exported.","description_kind":"plain"}}},"description_kind":"plain"}},"google_memcache_instance":{"version":0,"block":{"attributes":{"authorized_network":{"type":"string","description":"The full name of the GCE network to connect the instance to. If not provided,\n'default' will be used.","description_kind":"plain","optional":true,"computed":true},"create_time":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"discovery_endpoint":{"type":"string","description":"Endpoint for Discovery API","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"A user-visible name for the instance.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Resource labels to represent user-provided metadata.","description_kind":"plain","optional":true},"memcache_full_version":{"type":"string","description":"The full version of memcached server running on this instance.","description_kind":"plain","computed":true},"memcache_nodes":{"type":["list",["object",{"host":"string","node_id":"string","port":"number","state":"string","zone":"string"}]],"description":"Additional information about the instance state, if available.","description_kind":"plain","computed":true},"memcache_version":{"type":"string","description":"The major version of Memcached software. If not provided, latest supported version will be used.\nCurrently the latest supported major version is MEMCACHE_1_5. The minor version will be automatically\ndetermined by our system based on the latest supported minor version. Default value: \"MEMCACHE_1_5\" Possible values: [\"MEMCACHE_1_5\"]","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource name of the instance.","description_kind":"plain","required":true},"node_count":{"type":"number","description":"Number of nodes in the memcache instance.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region of the Memcache instance. If it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"zones":{"type":["set","string"],"description":"Zones where memcache nodes should be provisioned. If not\nprovided, all zones will be used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"memcache_parameters":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description":"This is a unique ID associated with this set of parameters.","description_kind":"plain","computed":true},"params":{"type":["map","string"],"description":"User-defined set of parameters to use in the memcache process.","description_kind":"plain","optional":true}},"description":"User-specified parameters for this memcache instance.","description_kind":"plain"},"max_items":1},"node_config":{"nesting_mode":"list","block":{"attributes":{"cpu_count":{"type":"number","description":"Number of CPUs per node.","description_kind":"plain","required":true},"memory_size_mb":{"type":"number","description":"Memory size in Mebibytes for each memcache node.","description_kind":"plain","required":true}},"description":"Configuration for memcache nodes.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_ml_engine_model":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description specified for the model when it was created.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"One or more labels that you can add, to organize your models.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name specified for the model.","description_kind":"plain","required":true},"online_prediction_console_logging":{"type":"bool","description":"If true, online prediction nodes send stderr and stdout streams to Stackdriver Logging","description_kind":"plain","optional":true},"online_prediction_logging":{"type":"bool","description":"If true, online prediction access logs are sent to StackDriver Logging.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"regions":{"type":["list","string"],"description":"The list of regions where the model is going to be deployed.\nCurrently only one region per model is supported","description_kind":"plain","optional":true}},"block_types":{"default_version":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"The name specified for the version when it was created.","description_kind":"plain","required":true}},"description":"The default version of the model. This version will be used to handle\nprediction requests that do not specify a version.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_monitoring_alert_policy":{"version":0,"block":{"attributes":{"combiner":{"type":"string","description":"How to combine the results of multiple conditions to\ndetermine if an incident should be opened. Possible values: [\"AND\", \"OR\", \"AND_WITH_MATCHING_RESOURCE\"]","description_kind":"plain","required":true},"creation_record":{"type":["list",["object",{"mutate_time":"string","mutated_by":"string"}]],"description":"A read-only record of the creation of the alerting policy.\nIf provided in a call to create or update, this field will\nbe ignored.","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"A short name or phrase used to identify the policy in\ndashboards, notifications, and incidents. To avoid confusion, don't use\nthe same display name for multiple policies in the same project. The\nname is limited to 512 Unicode characters.","description_kind":"plain","required":true},"enabled":{"type":"bool","description":"Whether or not the policy is enabled. The default is true.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The unique resource name for this policy.\nIts syntax is: projects/[PROJECT_ID]/alertPolicies/[ALERT_POLICY_ID]","description_kind":"plain","computed":true},"notification_channels":{"type":["list","string"],"description":"Identifies the notification channels to which notifications should be\nsent when incidents are opened or closed or when new violations occur\non an already opened incident. Each element of this array corresponds\nto the name field in each of the NotificationChannel objects that are\nreturned from the notificationChannels.list method. The syntax of the\nentries in this field is\n'projects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]'","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"user_labels":{"type":["map","string"],"description":"This field is intended to be used for organizing and identifying the AlertPolicy\nobjects.The field can contain up to 64 entries. Each key and value is limited\nto 63 Unicode characters or 128 bytes, whichever is smaller. Labels and values\ncan contain only lowercase letters, numerals, underscores, and dashes. Keys\nmust begin with a letter.","description_kind":"plain","optional":true}},"block_types":{"conditions":{"nesting_mode":"list","block":{"attributes":{"display_name":{"type":"string","description":"A short name or phrase used to identify the\ncondition in dashboards, notifications, and\nincidents. To avoid confusion, don't use the same\ndisplay name for multiple conditions in the same\npolicy.","description_kind":"plain","required":true},"name":{"type":"string","description":"The unique resource name for this condition.\nIts syntax is:\nprojects/[PROJECT_ID]/alertPolicies/[POLICY_ID]/conditions/[CONDITION_ID]\n[CONDITION_ID] is assigned by Stackdriver Monitoring when\nthe condition is created as part of a new or updated alerting\npolicy.","description_kind":"plain","computed":true}},"block_types":{"condition_absent":{"nesting_mode":"list","block":{"attributes":{"duration":{"type":"string","description":"The amount of time that a time series must\nfail to report new data to be considered\nfailing. Currently, only values that are a\nmultiple of a minute--e.g. 60s, 120s, or 300s\n--are supported.","description_kind":"plain","required":true},"filter":{"type":"string","description":"A filter that identifies which time series\nshould be compared with the threshold.The\nfilter is similar to the one that is\nspecified in the\nMetricService.ListTimeSeries request (that\ncall is useful to verify the time series\nthat will be retrieved / processed) and must\nspecify the metric type and optionally may\ncontain restrictions on resource type,\nresource labels, and metric labels. This\nfield may not exceed 2048 Unicode characters\nin length.","description_kind":"plain","optional":true}},"block_types":{"aggregations":{"nesting_mode":"list","block":{"attributes":{"alignment_period":{"type":"string","description":"The alignment period for per-time\nseries alignment. If present,\nalignmentPeriod must be at least\n60 seconds. After per-time series\nalignment, each time series will\ncontain data points only on the\nperiod boundaries. If\nperSeriesAligner is not specified\nor equals ALIGN_NONE, then this\nfield is ignored. If\nperSeriesAligner is specified and\ndoes not equal ALIGN_NONE, then\nthis field must be defined;\notherwise an error is returned.","description_kind":"plain","optional":true},"cross_series_reducer":{"type":"string","description":"The approach to be used to combine\ntime series. Not all reducer\nfunctions may be applied to all\ntime series, depending on the\nmetric type and the value type of\nthe original time series.\nReduction may change the metric\ntype of value type of the time\nseries.Time series data must be\naligned in order to perform cross-\ntime series reduction. If\ncrossSeriesReducer is specified,\nthen perSeriesAligner must be\nspecified and not equal ALIGN_NONE\nand alignmentPeriod must be\nspecified; otherwise, an error is\nreturned. Possible values: [\"REDUCE_NONE\", \"REDUCE_MEAN\", \"REDUCE_MIN\", \"REDUCE_MAX\", \"REDUCE_SUM\", \"REDUCE_STDDEV\", \"REDUCE_COUNT\", \"REDUCE_COUNT_TRUE\", \"REDUCE_COUNT_FALSE\", \"REDUCE_FRACTION_TRUE\", \"REDUCE_PERCENTILE_99\", \"REDUCE_PERCENTILE_95\", \"REDUCE_PERCENTILE_50\", \"REDUCE_PERCENTILE_05\"]","description_kind":"plain","optional":true},"group_by_fields":{"type":["list","string"],"description":"The set of fields to preserve when\ncrossSeriesReducer is specified.\nThe groupByFields determine how\nthe time series are partitioned\ninto subsets prior to applying the\naggregation function. Each subset\ncontains time series that have the\nsame value for each of the\ngrouping fields. Each individual\ntime series is a member of exactly\none subset. The crossSeriesReducer\nis applied to each subset of time\nseries. It is not possible to\nreduce across different resource\ntypes, so this field implicitly\ncontains resource.type. Fields not\nspecified in groupByFields are\naggregated away. If groupByFields\nis not specified and all the time\nseries have the same resource\ntype, then the time series are\naggregated into a single output\ntime series. If crossSeriesReducer\nis not defined, this field is\nignored.","description_kind":"plain","optional":true},"per_series_aligner":{"type":"string","description":"The approach to be used to align\nindividual time series. Not all\nalignment functions may be applied\nto all time series, depending on\nthe metric type and value type of\nthe original time series.\nAlignment may change the metric\ntype or the value type of the time\nseries.Time series data must be\naligned in order to perform cross-\ntime series reduction. If\ncrossSeriesReducer is specified,\nthen perSeriesAligner must be\nspecified and not equal ALIGN_NONE\nand alignmentPeriod must be\nspecified; otherwise, an error is\nreturned. Possible values: [\"ALIGN_NONE\", \"ALIGN_DELTA\", \"ALIGN_RATE\", \"ALIGN_INTERPOLATE\", \"ALIGN_NEXT_OLDER\", \"ALIGN_MIN\", \"ALIGN_MAX\", \"ALIGN_MEAN\", \"ALIGN_COUNT\", \"ALIGN_SUM\", \"ALIGN_STDDEV\", \"ALIGN_COUNT_TRUE\", \"ALIGN_COUNT_FALSE\", \"ALIGN_FRACTION_TRUE\", \"ALIGN_PERCENTILE_99\", \"ALIGN_PERCENTILE_95\", \"ALIGN_PERCENTILE_50\", \"ALIGN_PERCENTILE_05\", \"ALIGN_PERCENT_CHANGE\"]","description_kind":"plain","optional":true}},"description":"Specifies the alignment of data points in\nindividual time series as well as how to\ncombine the retrieved time series together\n(such as when aggregating multiple streams\non each resource to a single stream for each\nresource or when aggregating streams across\nall members of a group of resources).\nMultiple aggregations are applied in the\norder specified.","description_kind":"plain"}},"trigger":{"nesting_mode":"list","block":{"attributes":{"count":{"type":"number","description":"The absolute number of time series\nthat must fail the predicate for the\ncondition to be triggered.","description_kind":"plain","optional":true},"percent":{"type":"number","description":"The percentage of time series that\nmust fail the predicate for the\ncondition to be triggered.","description_kind":"plain","optional":true}},"description":"The number/percent of time series for which\nthe comparison must hold in order for the\ncondition to trigger. If unspecified, then\nthe condition will trigger if the comparison\nis true for any of the time series that have\nbeen identified by filter and aggregations.","description_kind":"plain"},"max_items":1}},"description":"A condition that checks that a time series\ncontinues to receive new data points.","description_kind":"plain"},"max_items":1},"condition_monitoring_query_language":{"nesting_mode":"list","block":{"attributes":{"duration":{"type":"string","description":"The amount of time that a time series must\nviolate the threshold to be considered\nfailing. Currently, only values that are a\nmultiple of a minute--e.g., 0, 60, 120, or\n300 seconds--are supported. If an invalid\nvalue is given, an error will be returned.\nWhen choosing a duration, it is useful to\nkeep in mind the frequency of the underlying\ntime series data (which may also be affected\nby any alignments specified in the\naggregations field); a good duration is long\nenough so that a single outlier does not\ngenerate spurious alerts, but short enough\nthat unhealthy states are detected and\nalerted on quickly.","description_kind":"plain","required":true},"query":{"type":"string","description":"Monitoring Query Language query that outputs a boolean stream.","description_kind":"plain","required":true}},"block_types":{"trigger":{"nesting_mode":"list","block":{"attributes":{"count":{"type":"number","description":"The absolute number of time series\nthat must fail the predicate for the\ncondition to be triggered.","description_kind":"plain","optional":true},"percent":{"type":"number","description":"The percentage of time series that\nmust fail the predicate for the\ncondition to be triggered.","description_kind":"plain","optional":true}},"description":"The number/percent of time series for which\nthe comparison must hold in order for the\ncondition to trigger. If unspecified, then\nthe condition will trigger if the comparison\nis true for any of the time series that have\nbeen identified by filter and aggregations,\nor by the ratio, if denominator_filter and\ndenominator_aggregations are specified.","description_kind":"plain"},"max_items":1}},"description":"A Monitoring Query Language query that outputs a boolean stream","description_kind":"plain"},"max_items":1},"condition_threshold":{"nesting_mode":"list","block":{"attributes":{"comparison":{"type":"string","description":"The comparison to apply between the time\nseries (indicated by filter and aggregation)\nand the threshold (indicated by\nthreshold_value). The comparison is applied\non each time series, with the time series on\nthe left-hand side and the threshold on the\nright-hand side. Only COMPARISON_LT and\nCOMPARISON_GT are supported currently. Possible values: [\"COMPARISON_GT\", \"COMPARISON_GE\", \"COMPARISON_LT\", \"COMPARISON_LE\", \"COMPARISON_EQ\", \"COMPARISON_NE\"]","description_kind":"plain","required":true},"denominator_filter":{"type":"string","description":"A filter that identifies a time series that\nshould be used as the denominator of a ratio\nthat will be compared with the threshold. If\na denominator_filter is specified, the time\nseries specified by the filter field will be\nused as the numerator.The filter is similar\nto the one that is specified in the\nMetricService.ListTimeSeries request (that\ncall is useful to verify the time series\nthat will be retrieved / processed) and must\nspecify the metric type and optionally may\ncontain restrictions on resource type,\nresource labels, and metric labels. This\nfield may not exceed 2048 Unicode characters\nin length.","description_kind":"plain","optional":true},"duration":{"type":"string","description":"The amount of time that a time series must\nviolate the threshold to be considered\nfailing. Currently, only values that are a\nmultiple of a minute--e.g., 0, 60, 120, or\n300 seconds--are supported. If an invalid\nvalue is given, an error will be returned.\nWhen choosing a duration, it is useful to\nkeep in mind the frequency of the underlying\ntime series data (which may also be affected\nby any alignments specified in the\naggregations field); a good duration is long\nenough so that a single outlier does not\ngenerate spurious alerts, but short enough\nthat unhealthy states are detected and\nalerted on quickly.","description_kind":"plain","required":true},"filter":{"type":"string","description":"A filter that identifies which time series\nshould be compared with the threshold.The\nfilter is similar to the one that is\nspecified in the\nMetricService.ListTimeSeries request (that\ncall is useful to verify the time series\nthat will be retrieved / processed) and must\nspecify the metric type and optionally may\ncontain restrictions on resource type,\nresource labels, and metric labels. This\nfield may not exceed 2048 Unicode characters\nin length.","description_kind":"plain","optional":true},"threshold_value":{"type":"number","description":"A value against which to compare the time\nseries.","description_kind":"plain","optional":true}},"block_types":{"aggregations":{"nesting_mode":"list","block":{"attributes":{"alignment_period":{"type":"string","description":"The alignment period for per-time\nseries alignment. If present,\nalignmentPeriod must be at least\n60 seconds. After per-time series\nalignment, each time series will\ncontain data points only on the\nperiod boundaries. If\nperSeriesAligner is not specified\nor equals ALIGN_NONE, then this\nfield is ignored. If\nperSeriesAligner is specified and\ndoes not equal ALIGN_NONE, then\nthis field must be defined;\notherwise an error is returned.","description_kind":"plain","optional":true},"cross_series_reducer":{"type":"string","description":"The approach to be used to combine\ntime series. Not all reducer\nfunctions may be applied to all\ntime series, depending on the\nmetric type and the value type of\nthe original time series.\nReduction may change the metric\ntype of value type of the time\nseries.Time series data must be\naligned in order to perform cross-\ntime series reduction. If\ncrossSeriesReducer is specified,\nthen perSeriesAligner must be\nspecified and not equal ALIGN_NONE\nand alignmentPeriod must be\nspecified; otherwise, an error is\nreturned. Possible values: [\"REDUCE_NONE\", \"REDUCE_MEAN\", \"REDUCE_MIN\", \"REDUCE_MAX\", \"REDUCE_SUM\", \"REDUCE_STDDEV\", \"REDUCE_COUNT\", \"REDUCE_COUNT_TRUE\", \"REDUCE_COUNT_FALSE\", \"REDUCE_FRACTION_TRUE\", \"REDUCE_PERCENTILE_99\", \"REDUCE_PERCENTILE_95\", \"REDUCE_PERCENTILE_50\", \"REDUCE_PERCENTILE_05\"]","description_kind":"plain","optional":true},"group_by_fields":{"type":["list","string"],"description":"The set of fields to preserve when\ncrossSeriesReducer is specified.\nThe groupByFields determine how\nthe time series are partitioned\ninto subsets prior to applying the\naggregation function. Each subset\ncontains time series that have the\nsame value for each of the\ngrouping fields. Each individual\ntime series is a member of exactly\none subset. The crossSeriesReducer\nis applied to each subset of time\nseries. It is not possible to\nreduce across different resource\ntypes, so this field implicitly\ncontains resource.type. Fields not\nspecified in groupByFields are\naggregated away. If groupByFields\nis not specified and all the time\nseries have the same resource\ntype, then the time series are\naggregated into a single output\ntime series. If crossSeriesReducer\nis not defined, this field is\nignored.","description_kind":"plain","optional":true},"per_series_aligner":{"type":"string","description":"The approach to be used to align\nindividual time series. Not all\nalignment functions may be applied\nto all time series, depending on\nthe metric type and value type of\nthe original time series.\nAlignment may change the metric\ntype or the value type of the time\nseries.Time series data must be\naligned in order to perform cross-\ntime series reduction. If\ncrossSeriesReducer is specified,\nthen perSeriesAligner must be\nspecified and not equal ALIGN_NONE\nand alignmentPeriod must be\nspecified; otherwise, an error is\nreturned. Possible values: [\"ALIGN_NONE\", \"ALIGN_DELTA\", \"ALIGN_RATE\", \"ALIGN_INTERPOLATE\", \"ALIGN_NEXT_OLDER\", \"ALIGN_MIN\", \"ALIGN_MAX\", \"ALIGN_MEAN\", \"ALIGN_COUNT\", \"ALIGN_SUM\", \"ALIGN_STDDEV\", \"ALIGN_COUNT_TRUE\", \"ALIGN_COUNT_FALSE\", \"ALIGN_FRACTION_TRUE\", \"ALIGN_PERCENTILE_99\", \"ALIGN_PERCENTILE_95\", \"ALIGN_PERCENTILE_50\", \"ALIGN_PERCENTILE_05\", \"ALIGN_PERCENT_CHANGE\"]","description_kind":"plain","optional":true}},"description":"Specifies the alignment of data points in\nindividual time series as well as how to\ncombine the retrieved time series together\n(such as when aggregating multiple streams\non each resource to a single stream for each\nresource or when aggregating streams across\nall members of a group of resources).\nMultiple aggregations are applied in the\norder specified.This field is similar to the\none in the MetricService.ListTimeSeries\nrequest. It is advisable to use the\nListTimeSeries method when debugging this\nfield.","description_kind":"plain"}},"denominator_aggregations":{"nesting_mode":"list","block":{"attributes":{"alignment_period":{"type":"string","description":"The alignment period for per-time\nseries alignment. If present,\nalignmentPeriod must be at least\n60 seconds. After per-time series\nalignment, each time series will\ncontain data points only on the\nperiod boundaries. If\nperSeriesAligner is not specified\nor equals ALIGN_NONE, then this\nfield is ignored. If\nperSeriesAligner is specified and\ndoes not equal ALIGN_NONE, then\nthis field must be defined;\notherwise an error is returned.","description_kind":"plain","optional":true},"cross_series_reducer":{"type":"string","description":"The approach to be used to combine\ntime series. Not all reducer\nfunctions may be applied to all\ntime series, depending on the\nmetric type and the value type of\nthe original time series.\nReduction may change the metric\ntype of value type of the time\nseries.Time series data must be\naligned in order to perform cross-\ntime series reduction. If\ncrossSeriesReducer is specified,\nthen perSeriesAligner must be\nspecified and not equal ALIGN_NONE\nand alignmentPeriod must be\nspecified; otherwise, an error is\nreturned. Possible values: [\"REDUCE_NONE\", \"REDUCE_MEAN\", \"REDUCE_MIN\", \"REDUCE_MAX\", \"REDUCE_SUM\", \"REDUCE_STDDEV\", \"REDUCE_COUNT\", \"REDUCE_COUNT_TRUE\", \"REDUCE_COUNT_FALSE\", \"REDUCE_FRACTION_TRUE\", \"REDUCE_PERCENTILE_99\", \"REDUCE_PERCENTILE_95\", \"REDUCE_PERCENTILE_50\", \"REDUCE_PERCENTILE_05\"]","description_kind":"plain","optional":true},"group_by_fields":{"type":["list","string"],"description":"The set of fields to preserve when\ncrossSeriesReducer is specified.\nThe groupByFields determine how\nthe time series are partitioned\ninto subsets prior to applying the\naggregation function. Each subset\ncontains time series that have the\nsame value for each of the\ngrouping fields. Each individual\ntime series is a member of exactly\none subset. The crossSeriesReducer\nis applied to each subset of time\nseries. It is not possible to\nreduce across different resource\ntypes, so this field implicitly\ncontains resource.type. Fields not\nspecified in groupByFields are\naggregated away. If groupByFields\nis not specified and all the time\nseries have the same resource\ntype, then the time series are\naggregated into a single output\ntime series. If crossSeriesReducer\nis not defined, this field is\nignored.","description_kind":"plain","optional":true},"per_series_aligner":{"type":"string","description":"The approach to be used to align\nindividual time series. Not all\nalignment functions may be applied\nto all time series, depending on\nthe metric type and value type of\nthe original time series.\nAlignment may change the metric\ntype or the value type of the time\nseries.Time series data must be\naligned in order to perform cross-\ntime series reduction. If\ncrossSeriesReducer is specified,\nthen perSeriesAligner must be\nspecified and not equal ALIGN_NONE\nand alignmentPeriod must be\nspecified; otherwise, an error is\nreturned. Possible values: [\"ALIGN_NONE\", \"ALIGN_DELTA\", \"ALIGN_RATE\", \"ALIGN_INTERPOLATE\", \"ALIGN_NEXT_OLDER\", \"ALIGN_MIN\", \"ALIGN_MAX\", \"ALIGN_MEAN\", \"ALIGN_COUNT\", \"ALIGN_SUM\", \"ALIGN_STDDEV\", \"ALIGN_COUNT_TRUE\", \"ALIGN_COUNT_FALSE\", \"ALIGN_FRACTION_TRUE\", \"ALIGN_PERCENTILE_99\", \"ALIGN_PERCENTILE_95\", \"ALIGN_PERCENTILE_50\", \"ALIGN_PERCENTILE_05\", \"ALIGN_PERCENT_CHANGE\"]","description_kind":"plain","optional":true}},"description":"Specifies the alignment of data points in\nindividual time series selected by\ndenominatorFilter as well as how to combine\nthe retrieved time series together (such as\nwhen aggregating multiple streams on each\nresource to a single stream for each\nresource or when aggregating streams across\nall members of a group of resources).When\ncomputing ratios, the aggregations and\ndenominator_aggregations fields must use the\nsame alignment period and produce time\nseries that have the same periodicity and\nlabels.This field is similar to the one in\nthe MetricService.ListTimeSeries request. It\nis advisable to use the ListTimeSeries\nmethod when debugging this field.","description_kind":"plain"}},"trigger":{"nesting_mode":"list","block":{"attributes":{"count":{"type":"number","description":"The absolute number of time series\nthat must fail the predicate for the\ncondition to be triggered.","description_kind":"plain","optional":true},"percent":{"type":"number","description":"The percentage of time series that\nmust fail the predicate for the\ncondition to be triggered.","description_kind":"plain","optional":true}},"description":"The number/percent of time series for which\nthe comparison must hold in order for the\ncondition to trigger. If unspecified, then\nthe condition will trigger if the comparison\nis true for any of the time series that have\nbeen identified by filter and aggregations,\nor by the ratio, if denominator_filter and\ndenominator_aggregations are specified.","description_kind":"plain"},"max_items":1}},"description":"A condition that compares a time series against a\nthreshold.","description_kind":"plain"},"max_items":1}},"description":"A list of conditions for the policy. The conditions are combined by\nAND or OR according to the combiner field. If the combined conditions\nevaluate to true, then an incident is created. A policy can have from\none to six conditions.","description_kind":"plain"},"min_items":1},"documentation":{"nesting_mode":"list","block":{"attributes":{"content":{"type":"string","description":"The text of the documentation, interpreted according to mimeType.\nThe content may not exceed 8,192 Unicode characters and may not\nexceed more than 10,240 bytes when encoded in UTF-8 format,\nwhichever is smaller.","description_kind":"plain","optional":true},"mime_type":{"type":"string","description":"The format of the content field. Presently, only the value\n\"text/markdown\" is supported.","description_kind":"plain","optional":true}},"description":"Documentation that is included with notifications and incidents related\nto this policy. Best practice is for the documentation to include information\nto help responders understand, mitigate, escalate, and correct the underlying\nproblems detected by the alerting policy. Notification channels that have\nlimited capacity might not show this documentation.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_monitoring_custom_service":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Name used for UI elements listing this Service.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The full resource name for this service. The syntax is:\nprojects/[PROJECT_ID]/services/[SERVICE_ID].","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_id":{"type":"string","description":"An optional service ID to use. If not given, the server will generate a\nservice ID.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"telemetry":{"nesting_mode":"list","block":{"attributes":{"resource_name":{"type":"string","description":"The full name of the resource that defines this service.\nFormatted as described in\nhttps://cloud.google.com/apis/design/resource_names.","description_kind":"plain","optional":true}},"description":"Configuration for how to query telemetry on a Service.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_monitoring_dashboard":{"version":0,"block":{"attributes":{"dashboard_json":{"type":"string","description":"The JSON representation of a dashboard, following the format at https://cloud.google.com/monitoring/api/ref_v3/rest/v1/projects.dashboards.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_monitoring_group":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"A user-assigned name for this group, used only for display\npurposes.","description_kind":"plain","required":true},"filter":{"type":"string","description":"The filter used to determine which monitored resources\nbelong to this group.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_cluster":{"type":"bool","description":"If true, the members of this group are considered to be a\ncluster. The system can perform additional analysis on\ngroups that are clusters.","description_kind":"plain","optional":true},"name":{"type":"string","description":"A unique identifier for this group. The format is\n\"projects/{project_id_or_number}/groups/{group_id}\".","description_kind":"plain","computed":true},"parent_name":{"type":"string","description":"The name of the group's parent, if it has one. The format is\n\"projects/{project_id_or_number}/groups/{group_id}\". For\ngroups with no parent, parentName is the empty string, \"\".","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_monitoring_metric_descriptor":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A detailed description of the metric, which can be used in documentation.","description_kind":"plain","required":true},"display_name":{"type":"string","description":"A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example \"Request count\".","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"launch_stage":{"type":"string","description":"The launch stage of the metric definition. Possible values: [\"LAUNCH_STAGE_UNSPECIFIED\", \"UNIMPLEMENTED\", \"PRELAUNCH\", \"EARLY_ACCESS\", \"ALPHA\", \"BETA\", \"GA\", \"DEPRECATED\"]","description_kind":"plain","optional":true},"metric_kind":{"type":"string","description":"Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported. Possible values: [\"METRIC_KIND_UNSPECIFIED\", \"GAUGE\", \"DELTA\", \"CUMULATIVE\"]","description_kind":"plain","required":true},"monitored_resource_types":{"type":["list","string"],"description":"If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that is associated with this metric type can only be associated with one of the monitored resource types listed here. This field allows time series to be associated with the intersection of this metric type and the monitored resource types in this list.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The resource name of the metric descriptor.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"The metric type, including its DNS name prefix. The type is not URL-encoded. All service defined metrics must be prefixed with the service name, in the format of {service name}/{relative metric name}, such as cloudsql.googleapis.com/database/cpu/utilization. The relative metric name must have only upper and lower-case letters, digits, '/' and underscores '_' are allowed. Additionally, the maximum number of characters allowed for the relative_metric_name is 100. All user-defined metric types have the DNS name custom.googleapis.com, external.googleapis.com, or logging.googleapis.com/user/.","description_kind":"plain","required":true},"unit":{"type":"string","description":"The units in which the metric value is reported. It is only applicable if the\nvalueType is INT64, DOUBLE, or DISTRIBUTION. The unit defines the representation of\nthe stored metric values.\n\nDifferent systems may scale the values to be more easily displayed (so a value of\n0.02KBy might be displayed as 20By, and a value of 3523KBy might be displayed as\n3.5MBy). However, if the unit is KBy, then the value of the metric is always in\nthousands of bytes, no matter how it may be displayed.\n\nIf you want a custom metric to record the exact number of CPU-seconds used by a job,\nyou can create an INT64 CUMULATIVE metric whose unit is s{CPU} (or equivalently\n1s{CPU} or just s). If the job uses 12,005 CPU-seconds, then the value is written as\n12005.\n\nAlternatively, if you want a custom metric to record data in a more granular way, you\ncan create a DOUBLE CUMULATIVE metric whose unit is ks{CPU}, and then write the value\n12.005 (which is 12005/1000), or use Kis{CPU} and write 11.723 (which is 12005/1024).\nThe supported units are a subset of The Unified Code for Units of Measure standard.\nMore info can be found in the API documentation\n(https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors).","description_kind":"plain","optional":true},"value_type":{"type":"string","description":"Whether the measurement is an integer, a floating-point number, etc. Some combinations of metricKind and valueType might not be supported. Possible values: [\"BOOL\", \"INT64\", \"DOUBLE\", \"STRING\", \"DISTRIBUTION\"]","description_kind":"plain","required":true}},"block_types":{"labels":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"A human-readable description for the label.","description_kind":"plain","optional":true},"key":{"type":"string","description":"The key for this label. The key must not exceed 100 characters. The first character of the key must be an upper- or lower-case letter, the remaining characters must be letters, digits or underscores, and the key must match the regular expression [a-zA-Z][a-zA-Z0-9_]*","description_kind":"plain","required":true},"value_type":{"type":"string","description":"The type of data that can be assigned to the label. Default value: \"STRING\" Possible values: [\"STRING\", \"BOOL\", \"INT64\"]","description_kind":"plain","optional":true}},"description":"The set of labels that can be used to describe a specific instance of this metric type. In order to delete a label, the entire resource must be deleted, then created with the desired labels.","description_kind":"plain"}},"metadata":{"nesting_mode":"list","block":{"attributes":{"ingest_delay":{"type":"string","description":"The delay of data points caused by ingestion. Data points older than this age are guaranteed to be ingested and available to be read, excluding data loss due to errors. In '[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?\u0026_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)'.","description_kind":"plain","optional":true},"sample_period":{"type":"string","description":"The sampling period of metric data points. For metrics which are written periodically, consecutive data points are stored at this time interval, excluding data loss due to errors. Metrics with a higher granularity have a smaller sampling period. In '[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?\u0026_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)'.","description_kind":"plain","optional":true}},"description":"Metadata which can be used to guide usage of the metric.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_monitoring_notification_channel":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional human-readable description of this notification channel. This description may provide additional details, beyond the display name, for the channel. This may not exceed 1024 Unicode characters.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"An optional human-readable name for this notification channel. It is recommended that you specify a non-empty and unique name in order to make it easier to identify the channels in your project, though this is not enforced. The display name is limited to 512 Unicode characters.","description_kind":"plain","optional":true},"enabled":{"type":"bool","description":"Whether notifications are forwarded to the described channel. This makes it possible to disable delivery of notifications to a particular channel without removing the channel from all alerting policies that reference the channel. This is a more convenient approach when the change is temporary and you want to receive notifications from the same set of alerting policies on the channel at some point in the future.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Configuration fields that define the channel and its behavior. The\npermissible and required labels are specified in the\nNotificationChannelDescriptor corresponding to the type field.\n\nLabels with sensitive data are obfuscated by the API and therefore Terraform cannot\ndetermine if there are upstream changes to these fields. They can also be configured via\nthe sensitive_labels block, but cannot be configured in both places.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The full REST resource name for this channel. The syntax is:\nprojects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]\nThe [CHANNEL_ID] is automatically assigned by the server on creation.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"The type of the notification channel. This field matches the value of the NotificationChannelDescriptor.type field. See https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.notificationChannelDescriptors/list to get the list of valid values such as \"email\", \"slack\", etc...","description_kind":"plain","required":true},"user_labels":{"type":["map","string"],"description":"User-supplied key/value data that does not need to conform to the corresponding NotificationChannelDescriptor's schema, unlike the labels field. This field is intended to be used for organizing and identifying the NotificationChannel objects.The field can contain up to 64 entries. Each key and value is limited to 63 Unicode characters or 128 bytes, whichever is smaller. Labels and values can contain only lowercase letters, numerals, underscores, and dashes. Keys must begin with a letter.","description_kind":"plain","optional":true},"verification_status":{"type":"string","description":"Indicates whether this channel has been verified or not. On a ListNotificationChannels or GetNotificationChannel operation, this field is expected to be populated.If the value is UNVERIFIED, then it indicates that the channel is non-functioning (it both requires verification and lacks verification); otherwise, it is assumed that the channel works.If the channel is neither VERIFIED nor UNVERIFIED, it implies that the channel is of a type that does not require verification or that this specific channel has been exempted from verification because it was created prior to verification being required for channels of this type.This field cannot be modified using a standard UpdateNotificationChannel operation. To change the value of this field, you must call VerifyNotificationChannel.","description_kind":"plain","computed":true}},"block_types":{"sensitive_labels":{"nesting_mode":"list","block":{"attributes":{"auth_token":{"type":"string","description":"An authorization token for a notification channel. Channel types that support this field include: slack","description_kind":"plain","optional":true,"sensitive":true},"password":{"type":"string","description":"An password for a notification channel. Channel types that support this field include: webhook_basicauth","description_kind":"plain","optional":true,"sensitive":true},"service_key":{"type":"string","description":"An servicekey token for a notification channel. Channel types that support this field include: pagerduty","description_kind":"plain","optional":true,"sensitive":true}},"description":"Different notification type behaviors are configured primarily using the the 'labels' field on this\nresource. This block contains the labels which contain secrets or passwords so that they can be marked\nsensitive and hidden from plan output. The name of the field, eg: password, will be the key\nin the 'labels' map in the api request.\n\nCredentials may not be specified in both locations and will cause an error. Changing from one location\nto a different credential configuration in the config will require an apply to update state.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_monitoring_slo":{"version":0,"block":{"attributes":{"calendar_period":{"type":"string","description":"A calendar period, semantically \"since the start of the current\n\u003ccalendarPeriod\u003e\". Possible values: [\"DAY\", \"WEEK\", \"FORTNIGHT\", \"MONTH\"]","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"Name used for UI elements listing this SLO.","description_kind":"plain","optional":true},"goal":{"type":"number","description":"The fraction of service that must be good in order for this objective\nto be met. 0 \u003c goal \u003c= 0.999","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The full resource name for this service. The syntax is:\nprojects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_NAME]","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"rolling_period_days":{"type":"number","description":"A rolling time period, semantically \"in the past X days\".\nMust be between 1 to 30 days, inclusive.","description_kind":"plain","optional":true},"service":{"type":"string","description":"ID of the service to which this SLO belongs.","description_kind":"plain","required":true},"slo_id":{"type":"string","description":"The id to use for this ServiceLevelObjective. If omitted, an id will be generated instead.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"basic_sli":{"nesting_mode":"list","block":{"attributes":{"location":{"type":["set","string"],"description":"An optional set of locations to which this SLI is relevant.\nTelemetry from other locations will not be used to calculate\nperformance for this SLI. If omitted, this SLI applies to all\nlocations in which the Service has activity. For service types\nthat don't support breaking down by location, setting this\nfield will result in an error.","description_kind":"plain","optional":true},"method":{"type":["set","string"],"description":"An optional set of RPCs to which this SLI is relevant.\nTelemetry from other methods will not be used to calculate\nperformance for this SLI. If omitted, this SLI applies to all\nthe Service's methods. For service types that don't support\nbreaking down by method, setting this field will result in an\nerror.","description_kind":"plain","optional":true},"version":{"type":["set","string"],"description":"The set of API versions to which this SLI is relevant.\nTelemetry from other API versions will not be used to\ncalculate performance for this SLI. If omitted,\nthis SLI applies to all API versions. For service types\nthat don't support breaking down by version, setting this\nfield will result in an error.","description_kind":"plain","optional":true}},"block_types":{"availability":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Whether an availability SLI is enabled or not. Must be set to true. Defaults to 'true'.","description_kind":"plain","optional":true}},"description":"Availability based SLI, dervied from count of requests made to this service that return successfully.","description_kind":"plain"},"max_items":1},"latency":{"nesting_mode":"list","block":{"attributes":{"threshold":{"type":"string","description":"A duration string, e.g. 10s.\nGood service is defined to be the count of requests made to\nthis service that return in no more than threshold.","description_kind":"plain","required":true}},"description":"Parameters for a latency threshold SLI.","description_kind":"plain"},"max_items":1}},"description":"Basic Service-Level Indicator (SLI) on a well-known service type.\nPerformance will be computed on the basis of pre-defined metrics.\n\nSLIs are used to measure and calculate the quality of the Service's\nperformance with respect to a single aspect of service quality.\n\nExactly one of the following must be set:\n'basic_sli', 'request_based_sli', 'windows_based_sli'","description_kind":"plain"},"max_items":1},"request_based_sli":{"nesting_mode":"list","block":{"block_types":{"distribution_cut":{"nesting_mode":"list","block":{"attributes":{"distribution_filter":{"type":"string","description":"A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\naggregating values to quantify the good service provided.\n\nMust have ValueType = DISTRIBUTION and\nMetricKind = DELTA or MetricKind = CUMULATIVE.","description_kind":"plain","required":true}},"block_types":{"range":{"nesting_mode":"list","block":{"attributes":{"max":{"type":"number","description":"max value for the range (inclusive). If not given,\nwill be set to \"infinity\", defining an open range\n\"\u003e= range.min\"","description_kind":"plain","optional":true},"min":{"type":"number","description":"Min value for the range (inclusive). If not given,\nwill be set to \"-infinity\", defining an open range\n\"\u003c range.max\"","description_kind":"plain","optional":true}},"description":"Range of numerical values. The computed good_service\nwill be the count of values x in the Distribution such\nthat range.min \u003c= x \u003c= range.max. inclusive of min and\nmax. Open ranges can be defined by setting\njust one of min or max.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Used when good_service is defined by a count of values aggregated in a\nDistribution that fall into a good range. The total_service is the\ntotal count of all values aggregated in the Distribution.\nDefines a distribution TimeSeries filter and thresholds used for\nmeasuring good service and total service.\n\nExactly one of 'distribution_cut' or 'good_total_ratio' can be set.","description_kind":"plain"},"max_items":1},"good_total_ratio":{"nesting_mode":"list","block":{"attributes":{"bad_service_filter":{"type":"string","description":"A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nquantifying bad service provided, either demanded service that\nwas not provided or demanded service that was of inadequate\nquality.\n\nMust have ValueType = DOUBLE or ValueType = INT64 and\nmust have MetricKind = DELTA or MetricKind = CUMULATIVE.\n\nExactly two of 'good_service_filter','bad_service_filter','total_service_filter'\nmust be set (good + bad = total is assumed).","description_kind":"plain","optional":true},"good_service_filter":{"type":"string","description":"A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nquantifying good service provided.\nMust have ValueType = DOUBLE or ValueType = INT64 and\nmust have MetricKind = DELTA or MetricKind = CUMULATIVE.\n\nExactly two of 'good_service_filter','bad_service_filter','total_service_filter'\nmust be set (good + bad = total is assumed).","description_kind":"plain","optional":true},"total_service_filter":{"type":"string","description":"A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nquantifying total demanded service.\n\nMust have ValueType = DOUBLE or ValueType = INT64 and\nmust have MetricKind = DELTA or MetricKind = CUMULATIVE.\n\nExactly two of 'good_service_filter','bad_service_filter','total_service_filter'\nmust be set (good + bad = total is assumed).","description_kind":"plain","optional":true}},"description":"A means to compute a ratio of 'good_service' to 'total_service'.\nDefines computing this ratio with two TimeSeries [monitoring filters](https://cloud.google.com/monitoring/api/v3/filters)\nMust specify exactly two of good, bad, and total service filters.\nThe relationship good_service + bad_service = total_service\nwill be assumed.\n\nExactly one of 'distribution_cut' or 'good_total_ratio' can be set.","description_kind":"plain"},"max_items":1}},"description":"A request-based SLI defines a SLI for which atomic units of\nservice are counted directly.\n\nA SLI describes a good service.\nIt is used to measure and calculate the quality of the Service's\nperformance with respect to a single aspect of service quality.\nExactly one of the following must be set:\n'basic_sli', 'request_based_sli', 'windows_based_sli'","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"windows_based_sli":{"nesting_mode":"list","block":{"attributes":{"good_bad_metric_filter":{"type":"string","description":"A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nwith ValueType = BOOL. The window is good if any true values\nappear in the window. One of 'good_bad_metric_filter',\n'good_total_ratio_threshold', 'metric_mean_in_range',\n'metric_sum_in_range' must be set for 'windows_based_sli'.","description_kind":"plain","optional":true},"window_period":{"type":"string","description":"Duration over which window quality is evaluated, given as a\nduration string \"{X}s\" representing X seconds. Must be an\ninteger fraction of a day and at least 60s.","description_kind":"plain","optional":true}},"block_types":{"good_total_ratio_threshold":{"nesting_mode":"list","block":{"attributes":{"threshold":{"type":"number","description":"If window performance \u003e= threshold, the window is counted\nas good.","description_kind":"plain","optional":true}},"block_types":{"basic_sli_performance":{"nesting_mode":"list","block":{"attributes":{"location":{"type":["set","string"],"description":"An optional set of locations to which this SLI is relevant.\nTelemetry from other locations will not be used to calculate\nperformance for this SLI. If omitted, this SLI applies to all\nlocations in which the Service has activity. For service types\nthat don't support breaking down by location, setting this\nfield will result in an error.","description_kind":"plain","optional":true},"method":{"type":["set","string"],"description":"An optional set of RPCs to which this SLI is relevant.\nTelemetry from other methods will not be used to calculate\nperformance for this SLI. If omitted, this SLI applies to all\nthe Service's methods. For service types that don't support\nbreaking down by method, setting this field will result in an\nerror.","description_kind":"plain","optional":true},"version":{"type":["set","string"],"description":"The set of API versions to which this SLI is relevant.\nTelemetry from other API versions will not be used to\ncalculate performance for this SLI. If omitted,\nthis SLI applies to all API versions. For service types\nthat don't support breaking down by version, setting this\nfield will result in an error.","description_kind":"plain","optional":true}},"block_types":{"availability":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Whether an availability SLI is enabled or not. Must be set to 'true. Defaults to 'true'.","description_kind":"plain","optional":true}},"description":"Availability based SLI, dervied from count of requests made to this service that return successfully.","description_kind":"plain"},"max_items":1},"latency":{"nesting_mode":"list","block":{"attributes":{"threshold":{"type":"string","description":"A duration string, e.g. 10s.\nGood service is defined to be the count of requests made to\nthis service that return in no more than threshold.","description_kind":"plain","required":true}},"description":"Parameters for a latency threshold SLI.","description_kind":"plain"},"max_items":1}},"description":"Basic SLI to evaluate to judge window quality.","description_kind":"plain"},"max_items":1},"performance":{"nesting_mode":"list","block":{"block_types":{"distribution_cut":{"nesting_mode":"list","block":{"attributes":{"distribution_filter":{"type":"string","description":"A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\naggregating values to quantify the good service provided.\n\nMust have ValueType = DISTRIBUTION and\nMetricKind = DELTA or MetricKind = CUMULATIVE.","description_kind":"plain","required":true}},"block_types":{"range":{"nesting_mode":"list","block":{"attributes":{"max":{"type":"number","description":"max value for the range (inclusive). If not given,\nwill be set to \"infinity\", defining an open range\n\"\u003e= range.min\"","description_kind":"plain","optional":true},"min":{"type":"number","description":"Min value for the range (inclusive). If not given,\nwill be set to \"-infinity\", defining an open range\n\"\u003c range.max\"","description_kind":"plain","optional":true}},"description":"Range of numerical values. The computed good_service\nwill be the count of values x in the Distribution such\nthat range.min \u003c= x \u003c= range.max. inclusive of min and\nmax. Open ranges can be defined by setting\njust one of min or max.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Used when good_service is defined by a count of values aggregated in a\nDistribution that fall into a good range. The total_service is the\ntotal count of all values aggregated in the Distribution.\nDefines a distribution TimeSeries filter and thresholds used for\nmeasuring good service and total service.","description_kind":"plain"},"max_items":1},"good_total_ratio":{"nesting_mode":"list","block":{"attributes":{"bad_service_filter":{"type":"string","description":"A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nquantifying bad service provided, either demanded service that\nwas not provided or demanded service that was of inadequate\nquality. Exactly two of\ngood, bad, or total service filter must be defined (where\ngood + bad = total is assumed)\n\nMust have ValueType = DOUBLE or ValueType = INT64 and\nmust have MetricKind = DELTA or MetricKind = CUMULATIVE.","description_kind":"plain","optional":true},"good_service_filter":{"type":"string","description":"A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nquantifying good service provided. Exactly two of\ngood, bad, or total service filter must be defined (where\ngood + bad = total is assumed)\n\nMust have ValueType = DOUBLE or ValueType = INT64 and\nmust have MetricKind = DELTA or MetricKind = CUMULATIVE.","description_kind":"plain","optional":true},"total_service_filter":{"type":"string","description":"A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nquantifying total demanded service. Exactly two of\ngood, bad, or total service filter must be defined (where\ngood + bad = total is assumed)\n\nMust have ValueType = DOUBLE or ValueType = INT64 and\nmust have MetricKind = DELTA or MetricKind = CUMULATIVE.","description_kind":"plain","optional":true}},"description":"A means to compute a ratio of 'good_service' to 'total_service'.\nDefines computing this ratio with two TimeSeries [monitoring filters](https://cloud.google.com/monitoring/api/v3/filters)\nMust specify exactly two of good, bad, and total service filters.\nThe relationship good_service + bad_service = total_service\nwill be assumed.","description_kind":"plain"},"max_items":1}},"description":"Request-based SLI to evaluate to judge window quality.","description_kind":"plain"},"max_items":1}},"description":"Criterion that describes a window as good if its performance is\nhigh enough. One of 'good_bad_metric_filter',\n'good_total_ratio_threshold', 'metric_mean_in_range',\n'metric_sum_in_range' must be set for 'windows_based_sli'.","description_kind":"plain"},"max_items":1},"metric_mean_in_range":{"nesting_mode":"list","block":{"attributes":{"time_series":{"type":"string","description":"A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nspecifying the TimeSeries to use for evaluating window\nThe provided TimeSeries must have ValueType = INT64 or\nValueType = DOUBLE and MetricKind = GAUGE. Mean value 'X'\nshould satisfy 'range.min \u003c= X \u003c= range.max'\nunder good service.","description_kind":"plain","required":true}},"block_types":{"range":{"nesting_mode":"list","block":{"attributes":{"max":{"type":"number","description":"max value for the range (inclusive). If not given,\nwill be set to \"infinity\", defining an open range\n\"\u003e= range.min\"","description_kind":"plain","optional":true},"min":{"type":"number","description":"Min value for the range (inclusive). If not given,\nwill be set to \"-infinity\", defining an open range\n\"\u003c range.max\"","description_kind":"plain","optional":true}},"description":"Range of numerical values. The computed good_service\nwill be the count of values x in the Distribution such\nthat range.min \u003c= x \u003c= range.max. inclusive of min and\nmax. Open ranges can be defined by setting\njust one of min or max. Mean value 'X' of 'time_series'\nvalues should satisfy 'range.min \u003c= X \u003c= range.max' for a\ngood service.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Criterion that describes a window as good if the metric's value\nis in a good range, *averaged* across returned streams.\nOne of 'good_bad_metric_filter',\n\n'good_total_ratio_threshold', 'metric_mean_in_range',\n'metric_sum_in_range' must be set for 'windows_based_sli'.\nAverage value X of 'time_series' should satisfy\n'range.min \u003c= X \u003c= range.max' for a good window.","description_kind":"plain"},"max_items":1},"metric_sum_in_range":{"nesting_mode":"list","block":{"attributes":{"time_series":{"type":"string","description":"A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nspecifying the TimeSeries to use for evaluating window\nquality. The provided TimeSeries must have\nValueType = INT64 or ValueType = DOUBLE and\nMetricKind = GAUGE.\n\nSummed value 'X' should satisfy\n'range.min \u003c= X \u003c= range.max' for a good window.","description_kind":"plain","required":true}},"block_types":{"range":{"nesting_mode":"list","block":{"attributes":{"max":{"type":"number","description":"max value for the range (inclusive). If not given,\nwill be set to \"infinity\", defining an open range\n\"\u003e= range.min\"","description_kind":"plain","optional":true},"min":{"type":"number","description":"Min value for the range (inclusive). If not given,\nwill be set to \"-infinity\", defining an open range\n\"\u003c range.max\"","description_kind":"plain","optional":true}},"description":"Range of numerical values. The computed good_service\nwill be the count of values x in the Distribution such\nthat range.min \u003c= x \u003c= range.max. inclusive of min and\nmax. Open ranges can be defined by setting\njust one of min or max. Summed value 'X' should satisfy\n'range.min \u003c= X \u003c= range.max' for a good window.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Criterion that describes a window as good if the metric's value\nis in a good range, *summed* across returned streams.\nSummed value 'X' of 'time_series' should satisfy\n'range.min \u003c= X \u003c= range.max' for a good window.\n\nOne of 'good_bad_metric_filter',\n'good_total_ratio_threshold', 'metric_mean_in_range',\n'metric_sum_in_range' must be set for 'windows_based_sli'.","description_kind":"plain"},"max_items":1}},"description":"A windows-based SLI defines the criteria for time windows.\ngood_service is defined based off the count of these time windows\nfor which the provided service was of good quality.\n\nA SLI describes a good service. It is used to measure and calculate\nthe quality of the Service's performance with respect to a single\naspect of service quality.\n\nExactly one of the following must be set:\n'basic_sli', 'request_based_sli', 'windows_based_sli'","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_monitoring_uptime_check_config":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"A human-friendly name for the uptime check configuration. The display name should be unique within a Stackdriver Workspace in order to make it easier to identify; however, uniqueness is not enforced.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"A unique resource name for this UptimeCheckConfig. The format is projects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID].","description_kind":"plain","computed":true},"period":{"type":"string","description":"How often, in seconds, the uptime check is performed. Currently, the only supported values are 60s (1 minute), 300s (5 minutes), 600s (10 minutes), and 900s (15 minutes). Optional, defaults to 300s.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"selected_regions":{"type":["list","string"],"description":"The list of regions from which the check will be run. Some regions contain one location, and others contain more than one. If this field is specified, enough regions to include a minimum of 3 locations must be provided, or an error message is returned. Not specifying this field will result in uptime checks running from all regions.","description_kind":"plain","optional":true},"timeout":{"type":"string","description":"The maximum amount of time to wait for the request to complete (must be between 1 and 60 seconds). Accepted formats https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration","description_kind":"plain","required":true},"uptime_check_id":{"type":"string","description":"The id of the uptime check","description_kind":"plain","computed":true}},"block_types":{"content_matchers":{"nesting_mode":"list","block":{"attributes":{"content":{"type":"string","description":"String or regex content to match (max 1024 bytes)","description_kind":"plain","required":true},"matcher":{"type":"string","description":"The type of content matcher that will be applied to the server output, compared to the content string when the check is run. Default value: \"CONTAINS_STRING\" Possible values: [\"CONTAINS_STRING\", \"NOT_CONTAINS_STRING\", \"MATCHES_REGEX\", \"NOT_MATCHES_REGEX\"]","description_kind":"plain","optional":true}},"description":"The expected content on the page the check is run against. Currently, only the first entry in the list is supported, and other entries will be ignored. The server will look for an exact match of the string in the page response's content. This field is optional and should only be specified if a content match is required.","description_kind":"plain"}},"http_check":{"nesting_mode":"list","block":{"attributes":{"body":{"type":"string","description":"The request body associated with the HTTP POST request. If contentType is URL_ENCODED, the body passed in must be URL-encoded. Users can provide a Content-Length header via the headers field or the API will do so. If the requestMethod is GET and body is not empty, the API will return an error. The maximum byte size is 1 megabyte. Note - As with all bytes fields JSON representations are base64 encoded. e.g. \"foo=bar\" in URL-encoded form is \"foo%3Dbar\" and in base64 encoding is \"Zm9vJTI1M0RiYXI=\".","description_kind":"plain","optional":true},"content_type":{"type":"string","description":"The content type to use for the check. Possible values: [\"TYPE_UNSPECIFIED\", \"URL_ENCODED\"]","description_kind":"plain","optional":true},"headers":{"type":["map","string"],"description":"The list of headers to send as part of the uptime check request. If two headers have the same key and different values, they should be entered as a single header, with the value being a comma-separated list of all the desired values as described at https://www.w3.org/Protocols/rfc2616/rfc2616.txt (page 31). Entering two separate headers with the same key in a Create call will cause the first to be overwritten by the second. The maximum number of headers allowed is 100.","description_kind":"plain","optional":true,"computed":true},"mask_headers":{"type":"bool","description":"Boolean specifying whether to encrypt the header information. Encryption should be specified for any headers related to authentication that you do not wish to be seen when retrieving the configuration. The server will be responsible for encrypting the headers. On Get/List calls, if mask_headers is set to True then the headers will be obscured with ******.","description_kind":"plain","optional":true},"path":{"type":"string","description":"The path to the page to run the check against. Will be combined with the host (specified within the MonitoredResource) and port to construct the full URL. Optional (defaults to \"/\").","description_kind":"plain","optional":true},"port":{"type":"number","description":"The port to the page to run the check against. Will be combined with host (specified within the MonitoredResource) and path to construct the full URL. Optional (defaults to 80 without SSL, or 443 with SSL).","description_kind":"plain","optional":true,"computed":true},"request_method":{"type":"string","description":"The HTTP request method to use for the check. If set to METHOD_UNSPECIFIED then requestMethod defaults to GET. Default value: \"GET\" Possible values: [\"METHOD_UNSPECIFIED\", \"GET\", \"POST\"]","description_kind":"plain","optional":true},"use_ssl":{"type":"bool","description":"If true, use HTTPS instead of HTTP to run the check.","description_kind":"plain","optional":true},"validate_ssl":{"type":"bool","description":"Boolean specifying whether to include SSL certificate validation as a part of the Uptime check. Only applies to checks where monitoredResource is set to uptime_url. If useSsl is false, setting validateSsl to true has no effect.","description_kind":"plain","optional":true}},"block_types":{"auth_info":{"nesting_mode":"list","block":{"attributes":{"password":{"type":"string","description":"The password to authenticate.","description_kind":"plain","required":true,"sensitive":true},"username":{"type":"string","description":"The username to authenticate.","description_kind":"plain","required":true}},"description":"The authentication information. Optional when creating an HTTP check; defaults to empty.","description_kind":"plain"},"max_items":1}},"description":"Contains information needed to make an HTTP or HTTPS check.","description_kind":"plain"},"max_items":1},"monitored_resource":{"nesting_mode":"list","block":{"attributes":{"labels":{"type":["map","string"],"description":"Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels \"project_id\", \"instance_id\", and \"zone\".","description_kind":"plain","required":true},"type":{"type":"string","description":"The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.monitoredResourceDescriptors#MonitoredResourceDescriptor) object. For example, the type of a Compute Engine VM instance is gce_instance. For a list of types, see Monitoring resource types (https://cloud.google.com/monitoring/api/resources) and Logging resource types (https://cloud.google.com/logging/docs/api/v2/resource-list).","description_kind":"plain","required":true}},"description":"The monitored resource (https://cloud.google.com/monitoring/api/resources) associated with the configuration. The following monitored resource types are supported for uptime checks: uptime_url gce_instance gae_app aws_ec2_instance aws_elb_load_balancer","description_kind":"plain"},"max_items":1},"resource_group":{"nesting_mode":"list","block":{"attributes":{"group_id":{"type":"string","description":"The group of resources being monitored. Should be the 'name' of a group","description_kind":"plain","optional":true},"resource_type":{"type":"string","description":"The resource type of the group members. Possible values: [\"RESOURCE_TYPE_UNSPECIFIED\", \"INSTANCE\", \"AWS_ELB_LOAD_BALANCER\"]","description_kind":"plain","optional":true}},"description":"The group resource associated with the configuration.","description_kind":"plain"},"max_items":1},"tcp_check":{"nesting_mode":"list","block":{"attributes":{"port":{"type":"number","description":"The port to the page to run the check against. Will be combined with host (specified within the MonitoredResource) to construct the full URL.","description_kind":"plain","required":true}},"description":"Contains information needed to make a TCP check.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_network_management_connectivity_test":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The user-supplied description of the Connectivity Test.\nMaximum of 512 characters.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Resource labels to represent user-provided metadata.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Unique name for the connectivity test.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description":"IP Protocol of the test. When not provided, \"TCP\" is assumed.","description_kind":"plain","optional":true},"related_projects":{"type":["list","string"],"description":"Other projects that may be relevant for reachability analysis.\nThis is applicable to scenarios where a test can cross project\nboundaries.","description_kind":"plain","optional":true}},"block_types":{"destination":{"nesting_mode":"list","block":{"attributes":{"instance":{"type":"string","description":"A Compute Engine instance URI.","description_kind":"plain","optional":true},"ip_address":{"type":"string","description":"The IP address of the endpoint, which can be an external or\ninternal IP. An IPv6 address is only allowed when the test's\ndestination is a global load balancer VIP.","description_kind":"plain","optional":true},"network":{"type":"string","description":"A Compute Engine network URI.","description_kind":"plain","optional":true},"port":{"type":"number","description":"The IP protocol port of the endpoint. Only applicable when\nprotocol is TCP or UDP.","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"Project ID where the endpoint is located. The Project ID can be\nderived from the URI if you provide a VM instance or network URI.\nThe following are two cases where you must provide the project ID:\n1. Only the IP address is specified, and the IP address is within\na GCP project. 2. When you are using Shared VPC and the IP address\nthat you provide is from the service project. In this case, the\nnetwork that the IP address resides in is defined in the host\nproject.","description_kind":"plain","optional":true}},"description":"Required. Destination specification of the Connectivity Test.\n\nYou can use a combination of destination IP address, Compute\nEngine VM instance, or VPC network to uniquely identify the\ndestination location.\n\nEven if the destination IP address is not unique, the source IP\nlocation is unique. Usually, the analysis can infer the destination\nendpoint from route information.\n\nIf the destination you specify is a VM instance and the instance has\nmultiple network interfaces, then you must also specify either a\ndestination IP address or VPC network to identify the destination\ninterface.\n\nA reachability analysis proceeds even if the destination location\nis ambiguous. However, the result can include endpoints that you\ndon't intend to test.","description_kind":"plain"},"min_items":1,"max_items":1},"source":{"nesting_mode":"list","block":{"attributes":{"instance":{"type":"string","description":"A Compute Engine instance URI.","description_kind":"plain","optional":true},"ip_address":{"type":"string","description":"The IP address of the endpoint, which can be an external or\ninternal IP. An IPv6 address is only allowed when the test's\ndestination is a global load balancer VIP.","description_kind":"plain","optional":true},"network":{"type":"string","description":"A Compute Engine network URI.","description_kind":"plain","optional":true},"network_type":{"type":"string","description":"Type of the network where the endpoint is located. Possible values: [\"GCP_NETWORK\", \"NON_GCP_NETWORK\"]","description_kind":"plain","optional":true},"port":{"type":"number","description":"The IP protocol port of the endpoint. Only applicable when\nprotocol is TCP or UDP.","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"Project ID where the endpoint is located. The Project ID can be\nderived from the URI if you provide a VM instance or network URI.\nThe following are two cases where you must provide the project ID:\n\n1. Only the IP address is specified, and the IP address is\n within a GCP project.\n2. When you are using Shared VPC and the IP address\n that you provide is from the service project. In this case,\n the network that the IP address resides in is defined in the\n host project.","description_kind":"plain","optional":true}},"description":"Required. Source specification of the Connectivity Test.\n\nYou can use a combination of source IP address, virtual machine\n(VM) instance, or Compute Engine network to uniquely identify the\nsource location.\n\nExamples: If the source IP address is an internal IP address within\na Google Cloud Virtual Private Cloud (VPC) network, then you must\nalso specify the VPC network. Otherwise, specify the VM instance,\nwhich already contains its internal IP address and VPC network\ninformation.\n\nIf the source of the test is within an on-premises network, then\nyou must provide the destination VPC network.\n\nIf the source endpoint is a Compute Engine VM instance with multiple\nnetwork interfaces, the instance itself is not sufficient to\nidentify the endpoint. So, you must also specify the source IP\naddress or VPC network.\n\nA reachability analysis proceeds even if the source location is\nambiguous. However, the test result may include endpoints that\nyou don't intend to test.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_network_services_edge_cache_keyset":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A human-readable description of the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Set of label tags associated with the EdgeCache resource.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is created.\nThe name must be 1-64 characters long, and match the regular expression [a-zA-Z][a-zA-Z0-9_-]* which means the first character must be a letter,\nand all following characters must be a dash, underscore, letter or digit.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"public_key":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description":"The ID of the public key. The ID must be 1-63 characters long, and comply with RFC1035.\nThe name must be 1-64 characters long, and match the regular expression [a-zA-Z][a-zA-Z0-9_-]*\nwhich means the first character must be a letter, and all following characters must be a dash, underscore, letter or digit.","description_kind":"plain","required":true},"value":{"type":"string","description":"The base64-encoded value of the Ed25519 public key. The base64 encoding can be padded (44 bytes) or unpadded (43 bytes).\nRepresentations or encodings of the public key other than this will be rejected with an error.","description_kind":"plain","required":true,"sensitive":true}},"description":"An ordered list of Ed25519 public keys to use for validating signed requests.\nYou must specify at least one (1) key, and may have up to three (3) keys.\n\nEd25519 public keys are not secret, and only allow Google to validate a request was signed by your corresponding private key.\nYou should ensure that the private key is kept secret, and that only authorized users can add public keys to a keyset.","description_kind":"plain"},"min_items":1,"max_items":3},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_network_services_edge_cache_origin":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A human-readable description of the resource.","description_kind":"plain","optional":true},"failover_origin":{"type":"string","description":"The Origin resource to try when the current origin cannot be reached.\nAfter maxAttempts is reached, the configured failoverOrigin will be used to fulfil the request.\n\nThe value of timeout.maxAttemptsTimeout dictates the timeout across all origins.\nA reference to a Topic resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Set of label tags associated with the EdgeCache resource.","description_kind":"plain","optional":true},"max_attempts":{"type":"number","description":"The maximum number of attempts to cache fill from this origin. Another attempt is made when a cache fill fails with one of the retryConditions.\n\nOnce maxAttempts to this origin have failed the failoverOrigin will be used, if one is specified. That failoverOrigin may specify its own maxAttempts,\nretryConditions and failoverOrigin to control its own cache fill failures.\n\nThe total number of allowed attempts to cache fill across this and failover origins is limited to four.\nThe total time allowed for cache fill attempts across this and failover origins can be controlled with maxAttemptsTimeout.\n\nThe last valid response from an origin will be returned to the client.\nIf no origin returns a valid response, an HTTP 503 will be returned to the client.\n\nDefaults to 1. Must be a value greater than 0 and less than 4.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is created.\nThe name must be 1-64 characters long, and match the regular expression [a-zA-Z][a-zA-Z0-9_-]* which means the first character must be a letter,\nand all following characters must be a dash, underscore, letter or digit.","description_kind":"plain","required":true},"origin_address":{"type":"string","description":"A fully qualified domain name (FQDN) or IP address reachable over the public Internet, or the address of a Google Cloud Storage bucket.\n\nThis address will be used as the origin for cache requests - e.g. FQDN: media-backend.example.com IPv4:35.218.1.1 IPv6:[2607:f8b0:4012:809::200e] Cloud Storage: gs://bucketname\n\nWhen providing an FQDN (hostname), it must be publicly resolvable (e.g. via Google public DNS) and IP addresses must be publicly routable.\nIf a Cloud Storage bucket is provided, it must be in the canonical \"gs://bucketname\" format. Other forms, such as \"storage.googleapis.com\", will be rejected.","description_kind":"plain","required":true},"port":{"type":"number","description":"The port to connect to the origin on.\nDefaults to port 443 for HTTP2 and HTTPS protocols, and port 80 for HTTP.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description":"The protocol to use to connect to the configured origin. Defaults to HTTP2, and it is strongly recommended that users use HTTP2 for both security \u0026 performance.\n\nWhen using HTTP2 or HTTPS as the protocol, a valid, publicly-signed, unexpired TLS (SSL) certificate must be presented by the origin server. Possible values: [\"HTTP2\", \"HTTPS\", \"HTTP\"]","description_kind":"plain","optional":true,"computed":true},"retry_conditions":{"type":["list","string"],"description":"Specifies one or more retry conditions for the configured origin.\n\nIf the failure mode during a connection attempt to the origin matches the configured retryCondition(s),\nthe origin request will be retried up to maxAttempts times. The failoverOrigin, if configured, will then be used to satisfy the request.\n\nThe default retryCondition is \"CONNECT_FAILURE\".\n\nretryConditions apply to this origin, and not subsequent failoverOrigin(s),\nwhich may specify their own retryConditions and maxAttempts.\n\nValid values are:\n\n- CONNECT_FAILURE: Retry on failures connecting to origins, for example due to connection timeouts.\n- HTTP_5XX: Retry if the origin responds with any 5xx response code, or if the origin does not respond at all, example: disconnects, reset, read timeout, connection failure, and refused streams.\n- GATEWAY_ERROR: Similar to 5xx, but only applies to response codes 502, 503 or 504.\n- RETRIABLE_4XX: Retry for retriable 4xx response codes, which include HTTP 409 (Conflict) and HTTP 429 (Too Many Requests)\n- NOT_FOUND: Retry if the origin returns a HTTP 404 (Not Found). This can be useful when generating video content, and the segment is not available yet. Possible values: [\"CONNECT_FAILURE\", \"HTTP_5XX\", \"GATEWAY_ERROR\", \"RETRIABLE_4XX\", \"NOT_FOUND\"]","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeout":{"nesting_mode":"list","block":{"attributes":{"connect_timeout":{"type":"string","description":"The maximum duration to wait for the origin connection to be established, including DNS lookup, TLS handshake and TCP/QUIC connection establishment.\n\nDefaults to 5 seconds. The timeout must be a value between 1s and 15s.","description_kind":"plain","optional":true},"max_attempts_timeout":{"type":"string","description":"The maximum time across all connection attempts to the origin, including failover origins, before returning an error to the client. A HTTP 503 will be returned if the timeout is reached before a response is returned.\n\nDefaults to 5 seconds. The timeout must be a value between 1s and 15s.","description_kind":"plain","optional":true},"response_timeout":{"type":"string","description":"The maximum duration to wait for data to arrive when reading from the HTTP connection/stream.\n\nDefaults to 5 seconds. The timeout must be a value between 1s and 30s.","description_kind":"plain","optional":true}},"description":"The connection and HTTP timeout configuration for this origin.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_network_services_edge_cache_service":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A human-readable description of the resource.","description_kind":"plain","optional":true},"disable_quic":{"type":"bool","description":"HTTP/3 (IETF QUIC) and Google QUIC are enabled by default.","description_kind":"plain","optional":true,"computed":true},"edge_security_policy":{"type":"string","description":"Resource URL that points at the Cloud Armor edge security policy that is applied on each request against the EdgeCacheService.","description_kind":"plain","optional":true},"edge_ssl_certificates":{"type":["list","string"],"description":"URLs to sslCertificate resources that are used to authenticate connections between users and the EdgeCacheService.\n\nNote that only \"global\" certificates with a \"scope\" of \"EDGE_CACHE\" can be attached to an EdgeCacheService.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipv4_addresses":{"type":["list","string"],"description":"The IPv4 addresses associated with this service. Addresses are static for the lifetime of the service.","description_kind":"plain","computed":true},"ipv6_addresses":{"type":["list","string"],"description":"The IPv6 addresses associated with this service. Addresses are static for the lifetime of the service.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Set of label tags associated with the EdgeCache resource.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is created.\nThe name must be 1-64 characters long, and match the regular expression [a-zA-Z][a-zA-Z0-9_-]* which means the first character must be a letter,\nand all following characters must be a dash, underscore, letter or digit.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"require_tls":{"type":"bool","description":"Require TLS (HTTPS) for all clients connecting to this service.\n\nClients who connect over HTTP (port 80) will receive a HTTP 301 to the same URL over HTTPS (port 443).\nYou must have at least one (1) edgeSslCertificate specified to enable this.","description_kind":"plain","optional":true,"computed":true},"ssl_policy":{"type":"string","description":"URL of the SslPolicy resource that will be associated with the EdgeCacheService.\n\nIf not set, the EdgeCacheService has no SSL policy configured, and will default to the \"COMPATIBLE\" policy.","description_kind":"plain","optional":true}},"block_types":{"log_config":{"nesting_mode":"list","block":{"attributes":{"enable":{"type":"bool","description":"Specifies whether to enable logging for traffic served by this service.","description_kind":"plain","optional":true,"computed":true},"sample_rate":{"type":"number","description":"Configures the sampling rate of requests, where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. The default value is 1.0, and the value of the field must be in [0, 1].\n\nThis field can only be specified if logging is enabled for this service.","description_kind":"plain","optional":true}},"description":"Specifies the logging options for the traffic served by this service. If logging is enabled, logs will be exported to Cloud Logging.","description_kind":"plain"},"max_items":1},"routing":{"nesting_mode":"list","block":{"block_types":{"host_rule":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"A human-readable description of the hostRule.","description_kind":"plain","optional":true},"hosts":{"type":["list","string"],"description":"The list of host patterns to match.\n\nHost patterns must be valid hostnames with optional port numbers in the format host:port. * matches any string of ([a-z0-9-.]*).\nThe only accepted ports are :80 and :443.\n\nHosts are matched against the HTTP Host header, or for HTTP/2 and HTTP/3, the \":authority\" header, from the incoming request.","description_kind":"plain","required":true},"path_matcher":{"type":"string","description":"The name of the pathMatcher associated with this hostRule.","description_kind":"plain","required":true}},"description":"The list of hostRules to match against. These rules define which hostnames the EdgeCacheService will match against, and which route configurations apply.","description_kind":"plain"},"min_items":1,"max_items":5},"path_matcher":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"A human-readable description of the resource.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name to which this PathMatcher is referred by the HostRule.","description_kind":"plain","required":true}},"block_types":{"route_rule":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"A human-readable description of the routeRule.","description_kind":"plain","optional":true},"origin":{"type":"string","description":"The Origin resource that requests to this route should fetch from when a matching response is not in cache. Origins can be defined as short names (\"my-origin\") or fully-qualified resource URLs - e.g. \"networkservices.googleapis.com/projects/my-project/global/edgecacheorigins/my-origin\"\n\nOnly one of origin or urlRedirect can be set.","description_kind":"plain","optional":true},"priority":{"type":"string","description":"The priority of this route rule, where 1 is the highest priority.\n\nYou cannot configure two or more routeRules with the same priority. Priority for each rule must be set to a number between 1 and 999 inclusive.\n\nPriority numbers can have gaps, which enable you to add or remove rules in the future without affecting the rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers\nto which you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the future without any impact on existing rules.","description_kind":"plain","required":true}},"block_types":{"header_action":{"nesting_mode":"list","block":{"block_types":{"request_header_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header to add.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"Whether to replace all existing headers with the same name.","description_kind":"plain","optional":true,"computed":true}},"description":"Describes a header to add.","description_kind":"plain"},"max_items":5},"request_header_to_remove":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header to remove.","description_kind":"plain","required":true}},"description":"A list of header names for headers that need to be removed from the request prior to forwarding the request to the origin.","description_kind":"plain"},"max_items":10},"response_header_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header to add.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"Whether to replace all existing headers with the same name.","description_kind":"plain","optional":true,"computed":true}},"description":"Headers to add to the response prior to sending it back to the client.\n\nResponse headers are only sent to the client, and do not have an effect on the cache serving the response.","description_kind":"plain"},"max_items":5},"response_header_to_remove":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"Headers to remove from the response prior to sending it back to the client.\n\nResponse headers are only sent to the client, and do not have an effect on the cache serving the response.","description_kind":"plain","required":true}},"description":"A list of header names for headers that need to be removed from the request prior to forwarding the request to the origin.","description_kind":"plain"},"max_items":10}},"description":"The header actions, including adding \u0026 removing headers, for requests that match this route.","description_kind":"plain"},"max_items":1},"match_rule":{"nesting_mode":"list","block":{"attributes":{"full_path_match":{"type":"string","description":"For satisfying the matchRule condition, the path of the request must exactly match the value specified in fullPathMatch after removing any query parameters and anchor that may be part of the original URL.","description_kind":"plain","optional":true},"ignore_case":{"type":"bool","description":"Specifies that prefixMatch and fullPathMatch matches are case sensitive.","description_kind":"plain","optional":true,"computed":true},"path_template_match":{"type":"string","description":"For satisfying the matchRule condition, the path of the request\nmust match the wildcard pattern specified in pathTemplateMatch\nafter removing any query parameters and anchor that may be part\nof the original URL.\n\npathTemplateMatch must be between 1 and 255 characters\n(inclusive). The pattern specified by pathTemplateMatch may\nhave at most 5 wildcard operators and at most 5 variable\ncaptures in total.","description_kind":"plain","optional":true},"prefix_match":{"type":"string","description":"For satisfying the matchRule condition, the request's path must begin with the specified prefixMatch. prefixMatch must begin with a /.","description_kind":"plain","optional":true}},"block_types":{"header_match":{"nesting_mode":"list","block":{"attributes":{"exact_match":{"type":"string","description":"The value of the header should exactly match contents of exactMatch.","description_kind":"plain","optional":true},"header_name":{"type":"string","description":"The header name to match on.","description_kind":"plain","required":true},"invert_match":{"type":"bool","description":"If set to false (default), the headerMatch is considered a match if the match criteria above are met.\nIf set to true, the headerMatch is considered a match if the match criteria above are NOT met.","description_kind":"plain","optional":true,"computed":true},"prefix_match":{"type":"string","description":"The value of the header must start with the contents of prefixMatch.","description_kind":"plain","optional":true},"present_match":{"type":"bool","description":"A header with the contents of headerName must exist. The match takes place whether or not the request's header has a value.","description_kind":"plain","optional":true},"suffix_match":{"type":"string","description":"The value of the header must end with the contents of suffixMatch.","description_kind":"plain","optional":true}},"description":"Specifies a list of header match criteria, all of which must match corresponding headers in the request.","description_kind":"plain"},"max_items":3},"query_parameter_match":{"nesting_mode":"list","block":{"attributes":{"exact_match":{"type":"string","description":"The queryParameterMatch matches if the value of the parameter exactly matches the contents of exactMatch.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the query parameter to match. The query parameter must exist in the request, in the absence of which the request match fails.","description_kind":"plain","required":true},"present_match":{"type":"bool","description":"Specifies that the queryParameterMatch matches if the request contains the query parameter, irrespective of whether the parameter has a value or not.","description_kind":"plain","optional":true}},"description":"Specifies a list of query parameter match criteria, all of which must match corresponding query parameters in the request.","description_kind":"plain"},"max_items":5}},"description":"The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates\nwithin a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.","description_kind":"plain"},"min_items":1,"max_items":5},"route_action":{"nesting_mode":"list","block":{"block_types":{"cdn_policy":{"nesting_mode":"list","block":{"attributes":{"cache_mode":{"type":"string","description":"Cache modes allow users to control the behaviour of the cache, what content it should cache automatically, whether to respect origin headers, or whether to unconditionally cache all responses.\n\nFor all cache modes, Cache-Control headers will be passed to the client. Use clientTtl to override what is sent to the client. Possible values: [\"CACHE_ALL_STATIC\", \"USE_ORIGIN_HEADERS\", \"FORCE_CACHE_ALL\", \"BYPASS_CACHE\"]","description_kind":"plain","optional":true,"computed":true},"client_ttl":{"type":"string","description":"Specifies a separate client (e.g. browser client) TTL, separate from the TTL used by the edge caches. Leaving this empty will use the same cache TTL for both the CDN and the client-facing response.\n\n- The TTL must be \u003e 0 and \u003c= 86400s (1 day)\n- The clientTtl cannot be larger than the defaultTtl (if set)\n- Fractions of a second are not allowed.\n- Omit this field to use the defaultTtl, or the max-age set by the origin, as the client-facing TTL.\n\nWhen the cache mode is set to \"USE_ORIGIN_HEADERS\" or \"BYPASS_CACHE\", you must omit this field.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true},"default_ttl":{"type":"string","description":"Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age).\n\nDefaults to 3600s (1 hour).\n\n- The TTL must be \u003e= 0 and \u003c= 2592000s (1 month)\n- Setting a TTL of \"0\" means \"always revalidate\" (equivalent to must-revalidate)\n- The value of defaultTTL cannot be set to a value greater than that of maxTTL.\n- Fractions of a second are not allowed.\n- When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses.\n\nNote that infrequently accessed objects may be evicted from the cache before the defined TTL. Objects that expire will be revalidated with the origin.\n\nWhen the cache mode is set to \"USE_ORIGIN_HEADERS\" or \"BYPASS_CACHE\", you must omit this field.\n\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true,"computed":true},"max_ttl":{"type":"string","description":"Specifies the maximum allowed TTL for cached content served by this origin.\n\nDefaults to 86400s (1 day).\n\nCache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTtl seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive.\n\n- The TTL must be \u003e= 0 and \u003c= 2592000s (1 month)\n- Setting a TTL of \"0\" means \"always revalidate\"\n- The value of maxTtl must be equal to or greater than defaultTtl.\n- Fractions of a second are not allowed.\n- When the cache mode is set to \"USE_ORIGIN_HEADERS\", \"FORCE_CACHE_ALL\", or \"BYPASS_CACHE\", you must omit this field.\n\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true,"computed":true},"negative_caching":{"type":"bool","description":"Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency.\n\nBy default, the CDNPolicy will apply the following default TTLs to these status codes:\n\n- HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m\n- HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s\n- HTTP 405 (Method Not Found), 414 (URI Too Long), 501 (Not Implemented): 60s\n\nThese defaults can be overridden in negativeCachingPolicy","description_kind":"plain","optional":true},"negative_caching_policy":{"type":["map","string"],"description":"Sets a cache TTL for the specified HTTP status code. negativeCaching must be enabled to configure negativeCachingPolicy.\n\n- Omitting the policy and leaving negativeCaching enabled will use the default TTLs for each status code, defined in negativeCaching.\n- TTLs must be \u003e= 0 (where 0 is \"always revalidate\") and \u003c= 86400s (1 day)\n\nNote that when specifying an explicit negativeCachingPolicy, you should take care to specify a cache TTL for all response codes that you wish to cache. The CDNPolicy will not apply any default negative caching when a policy exists.","description_kind":"plain","optional":true},"signed_request_keyset":{"type":"string","description":"The EdgeCacheKeyset containing the set of public keys used to validate signed requests at the edge.","description_kind":"plain","optional":true,"computed":true},"signed_request_mode":{"type":"string","description":"Whether to enforce signed requests. The default value is DISABLED, which means all content is public, and does not authorize access.\n\nYou must also set a signedRequestKeyset to enable signed requests.\n\nWhen set to REQUIRE_SIGNATURES, all matching requests will have their signature validated. Requests that were not signed with the corresponding private key, or that are otherwise invalid (expired, do not match the signature, IP address, or header) will be rejected with a HTTP 403 and (if enabled) logged. Possible values: [\"DISABLED\", \"REQUIRE_SIGNATURES\"]","description_kind":"plain","optional":true,"computed":true}},"block_types":{"cache_key_policy":{"nesting_mode":"list","block":{"attributes":{"exclude_host":{"type":"bool","description":"If true, requests to different hosts will be cached separately.\n\nNote: this should only be enabled if hosts share the same origin and content Removing the host from the cache key may inadvertently result in different objects being cached than intended, depending on which route the first user matched.","description_kind":"plain","optional":true,"computed":true},"exclude_query_string":{"type":"bool","description":"If true, exclude query string parameters from the cache key\n\nIf false (the default), include the query string parameters in\nthe cache key according to includeQueryParameters and\nexcludeQueryParameters. If neither includeQueryParameters nor\nexcludeQueryParameters is set, the entire query string will be\nincluded.","description_kind":"plain","optional":true},"excluded_query_parameters":{"type":["list","string"],"description":"Names of query string parameters to exclude from cache keys. All other parameters will be included.\n\nEither specify includedQueryParameters or excludedQueryParameters, not both. '\u0026' and '=' will be percent encoded and not treated as delimiters.","description_kind":"plain","optional":true},"include_protocol":{"type":"bool","description":"If true, http and https requests will be cached separately.","description_kind":"plain","optional":true,"computed":true},"included_header_names":{"type":["list","string"],"description":"Names of HTTP request headers to include in cache keys. The value of the header field will be used as part of the cache key.\n\n- Header names must be valid HTTP RFC 7230 header field values.\n- Header field names are case insensitive\n- To include the HTTP method, use \":method\"\n\nNote that specifying several headers, and/or headers that have a large range of values (e.g. per-user) will dramatically impact the cache hit rate, and may result in a higher eviction rate and reduced performance.","description_kind":"plain","optional":true},"included_query_parameters":{"type":["list","string"],"description":"Names of query string parameters to include in cache keys. All other parameters will be excluded.\n\nEither specify includedQueryParameters or excludedQueryParameters, not both. '\u0026' and '=' will be percent encoded and not treated as delimiters.","description_kind":"plain","optional":true}},"description":"Defines the request parameters that contribute to the cache key.","description_kind":"plain"},"max_items":1}},"description":"The policy to use for defining caching and signed request behaviour for requests that match this route.","description_kind":"plain"},"max_items":1},"cors_policy":{"nesting_mode":"list","block":{"attributes":{"allow_credentials":{"type":"bool","description":"In response to a preflight request, setting this to true indicates that the actual request can include user credentials.\n\nThis translates to the Access-Control-Allow-Credentials response header.","description_kind":"plain","optional":true},"allow_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Headers response header.","description_kind":"plain","optional":true},"allow_methods":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Methods response header.","description_kind":"plain","optional":true},"allow_origins":{"type":["list","string"],"description":"Specifies the list of origins that will be allowed to do CORS requests.\n\nThis translates to the Access-Control-Allow-Origin response header.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect.","description_kind":"plain","optional":true},"expose_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Headers response header.","description_kind":"plain","optional":true},"max_age":{"type":"string","description":"Specifies how long results of a preflight request can be cached by a client in seconds. Note that many browser clients enforce a maximum TTL of 600s (10 minutes).\n\n- Setting the value to -1 forces a pre-flight check for all requests (not recommended)\n- A maximum TTL of 86400s can be set, but note that (as above) some clients may force pre-flight checks at a more regular interval.\n- This translates to the Access-Control-Max-Age header.\n\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","required":true}},"description":"CORSPolicy defines Cross-Origin-Resource-Sharing configuration, including which CORS response headers will be set.","description_kind":"plain"},"max_items":1},"url_rewrite":{"nesting_mode":"list","block":{"attributes":{"host_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected origin, the request's host header is replaced with contents of hostRewrite.","description_kind":"plain","optional":true},"path_prefix_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected origin, the matching portion of the request's path is replaced by pathPrefixRewrite.","description_kind":"plain","optional":true},"path_template_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected origin, if the\nrequest matched a pathTemplateMatch, the matching portion of the\nrequest's path is replaced re-written using the pattern specified\nby pathTemplateRewrite.\n\npathTemplateRewrite must be between 1 and 255 characters\n(inclusive), must start with a '/', and must only use variables\ncaptured by the route's pathTemplate matchers.\n\npathTemplateRewrite may only be used when all of a route's\nMatchRules specify pathTemplate.\n\nOnly one of pathPrefixRewrite and pathTemplateRewrite may be\nspecified.","description_kind":"plain","optional":true}},"description":"The URL rewrite configuration for requests that match this route.","description_kind":"plain"},"max_items":1}},"description":"In response to a matching path, the routeAction performs advanced routing actions like URL rewrites, header transformations, etc. prior to forwarding the request to the selected origin.","description_kind":"plain"},"max_items":1},"url_redirect":{"nesting_mode":"list","block":{"attributes":{"host_redirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one that was supplied in the request.","description_kind":"plain","optional":true},"https_redirect":{"type":"bool","description":"If set to true, the URL scheme in the redirected request is set to https. If set to false, the URL scheme of the redirected request will remain the same as that of the request.\n\nThis can only be set if there is at least one (1) edgeSslCertificate set on the service.","description_kind":"plain","optional":true,"computed":true},"path_redirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one that was supplied in the request.\n\npathRedirect cannot be supplied together with prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the original request will be used for the redirect.\n\nThe path value must be between 1 and 1024 characters.","description_kind":"plain","optional":true},"prefix_redirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the routeRule, retaining the remaining portion of the URL before redirecting the request.\n\nprefixRedirect cannot be supplied together with pathRedirect. Supply one alone or neither. If neither is supplied, the path of the original request will be used for the redirect.","description_kind":"plain","optional":true},"redirect_response_code":{"type":"string","description":"The HTTP Status code to use for this RedirectAction.\n\nThe supported values are:\n\n- 'MOVED_PERMANENTLY_DEFAULT', which is the default value and corresponds to 301.\n- 'FOUND', which corresponds to 302.\n- 'SEE_OTHER' which corresponds to 303.\n- 'TEMPORARY_REDIRECT', which corresponds to 307. in this case, the request method will be retained.\n- 'PERMANENT_REDIRECT', which corresponds to 308. in this case, the request method will be retained. Possible values: [\"MOVED_PERMANENTLY_DEFAULT\", \"FOUND\", \"SEE_OTHER\", \"TEMPORARY_REDIRECT\", \"PERMANENT_REDIRECT\"]","description_kind":"plain","optional":true,"computed":true},"strip_query":{"type":"bool","description":"If set to true, any accompanying query portion of the original URL is removed prior to redirecting the request. If set to false, the query portion of the original URL is retained.","description_kind":"plain","optional":true,"computed":true}},"description":"The URL redirect configuration for requests that match this route.","description_kind":"plain"},"max_items":1}},"description":"The routeRules to match against. routeRules support advanced routing behaviour, and can match on paths, headers and query parameters, as well as status codes and HTTP methods.","description_kind":"plain"},"min_items":1,"max_items":64}},"description":"The list of pathMatchers referenced via name by hostRules. PathMatcher is used to match the path portion of the URL when a HostRule matches the URL's host portion.","description_kind":"plain"},"min_items":1,"max_items":10}},"description":"Defines how requests are routed, modified, cached and/or which origin content is filled from.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_notebooks_environment":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Instance creation time","description_kind":"plain","computed":true},"description":{"type":"string","description":"A brief description of this environment.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"Display name of this environment for the UI.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"A reference to the zone where the machine resides.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name specified for the Environment instance.\nFormat: projects/{project_id}/locations/{location}/environments/{environmentId}","description_kind":"plain","required":true},"post_startup_script":{"type":"string","description":"Path to a Bash script that automatically runs after a notebook instance fully boots up.\nThe path must be a URL or Cloud Storage path. Example: \"gs://path-to-file/file-name\"","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"container_image":{"nesting_mode":"list","block":{"attributes":{"repository":{"type":"string","description":"The path to the container image repository.\nFor example: gcr.io/{project_id}/{imageName}","description_kind":"plain","required":true},"tag":{"type":"string","description":"The tag of the container image. If not specified, this defaults to the latest tag.","description_kind":"plain","optional":true}},"description":"Use a container image to start the notebook instance.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"vm_image":{"nesting_mode":"list","block":{"attributes":{"image_family":{"type":"string","description":"Use this VM image family to find the image; the newest image in this family will be used.","description_kind":"plain","optional":true},"image_name":{"type":"string","description":"Use VM image name to find the image.","description_kind":"plain","optional":true},"project":{"type":"string","description":"The name of the Google Cloud project that this VM image belongs to.\nFormat: projects/{project_id}","description_kind":"plain","required":true}},"description":"Use a Compute Engine VM image to start the notebook instance.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_notebooks_instance":{"version":0,"block":{"attributes":{"boot_disk_size_gb":{"type":"number","description":"The size of the boot disk in GB attached to this instance,\nup to a maximum of 64000 GB (64 TB). The minimum recommended value is 100 GB.\nIf not specified, this defaults to 100.","description_kind":"plain","optional":true},"boot_disk_type":{"type":"string","description":"Possible disk types for notebook instances. Possible values: [\"DISK_TYPE_UNSPECIFIED\", \"PD_STANDARD\", \"PD_SSD\", \"PD_BALANCED\"]","description_kind":"plain","optional":true},"create_time":{"type":"string","description":"Instance creation time","description_kind":"plain","optional":true,"computed":true},"custom_gpu_driver_path":{"type":"string","description":"Specify a custom Cloud Storage path where the GPU driver is stored.\nIf not specified, we'll automatically choose from official GPU drivers.","description_kind":"plain","optional":true},"data_disk_size_gb":{"type":"number","description":"The size of the data disk in GB attached to this instance,\nup to a maximum of 64000 GB (64 TB).\nYou can choose the size of the data disk based on how big your notebooks and data are.\nIf not specified, this defaults to 100.","description_kind":"plain","optional":true},"data_disk_type":{"type":"string","description":"Possible disk types for notebook instances. Possible values: [\"DISK_TYPE_UNSPECIFIED\", \"PD_STANDARD\", \"PD_SSD\", \"PD_BALANCED\"]","description_kind":"plain","optional":true},"disk_encryption":{"type":"string","description":"Disk encryption method used on the boot and data disks, defaults to GMEK. Possible values: [\"DISK_ENCRYPTION_UNSPECIFIED\", \"GMEK\", \"CMEK\"]","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"install_gpu_driver":{"type":"bool","description":"Whether the end user authorizes Google Cloud to install GPU driver\non this instance. If this field is empty or set to false, the GPU driver\nwon't be installed. Only applicable to instances with GPUs.","description_kind":"plain","optional":true},"instance_owners":{"type":["list","string"],"description":"The list of owners of this instance after creation.\nFormat: alias@example.com.\nCurrently supports one owner only.\nIf not specified, all of the service account users of\nyour VM instance's service account can use the instance.","description_kind":"plain","optional":true},"kms_key":{"type":"string","description":"The KMS key used to encrypt the disks, only applicable if diskEncryption is CMEK.\nFormat: projects/{project_id}/locations/{location}/keyRings/{key_ring_id}/cryptoKeys/{key_id}","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"Labels to apply to this instance. These can be later modified by the setLabels method.\nAn object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"A reference to the zone where the machine resides.","description_kind":"plain","required":true},"machine_type":{"type":"string","description":"A reference to a machine type which defines VM kind.","description_kind":"plain","required":true},"metadata":{"type":["map","string"],"description":"Custom metadata to apply to this instance.\nAn object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name specified for the Notebook instance.","description_kind":"plain","required":true},"network":{"type":"string","description":"The name of the VPC that this instance is in.\nFormat: projects/{project_id}/global/networks/{network_id}","description_kind":"plain","optional":true,"computed":true},"no_proxy_access":{"type":"bool","description":"The notebook instance will not register with the proxy..","description_kind":"plain","optional":true},"no_public_ip":{"type":"bool","description":"No public IP will be assigned to this instance.","description_kind":"plain","optional":true},"no_remove_data_disk":{"type":"bool","description":"If true, the data disk will not be auto deleted when deleting the instance.","description_kind":"plain","optional":true},"post_startup_script":{"type":"string","description":"Path to a Bash script that automatically runs after a\nnotebook instance fully boots up. The path must be a URL\nor Cloud Storage path (gs://path-to-file/file-name).","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"proxy_uri":{"type":"string","description":"The proxy endpoint that is used to access the Jupyter notebook.","description_kind":"plain","computed":true},"service_account":{"type":"string","description":"The service account on this instance, giving access to other\nGoogle Cloud services. You can use any service account within\nthe same project, but you must have the service account user\npermission to use the instance. If not specified,\nthe Compute Engine default service account is used.","description_kind":"plain","optional":true,"computed":true},"service_account_scopes":{"type":["list","string"],"description":"Optional. The URIs of service account scopes to be included in Compute Engine instances.\nIf not specified, the following scopes are defined:\n- https://www.googleapis.com/auth/cloud-platform\n- https://www.googleapis.com/auth/userinfo.email","description_kind":"plain","optional":true},"state":{"type":"string","description":"The state of this instance.","description_kind":"plain","computed":true},"subnet":{"type":"string","description":"The name of the subnet that this instance is in.\nFormat: projects/{project_id}/regions/{region}/subnetworks/{subnetwork_id}","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The Compute Engine tags to add to runtime.","description_kind":"plain","optional":true},"update_time":{"type":"string","description":"Instance update time.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"accelerator_config":{"nesting_mode":"list","block":{"attributes":{"core_count":{"type":"number","description":"Count of cores of this accelerator.","description_kind":"plain","required":true},"type":{"type":"string","description":"Type of this accelerator. Possible values: [\"ACCELERATOR_TYPE_UNSPECIFIED\", \"NVIDIA_TESLA_K80\", \"NVIDIA_TESLA_P100\", \"NVIDIA_TESLA_V100\", \"NVIDIA_TESLA_P4\", \"NVIDIA_TESLA_T4\", \"NVIDIA_TESLA_T4_VWS\", \"NVIDIA_TESLA_P100_VWS\", \"NVIDIA_TESLA_P4_VWS\", \"NVIDIA_TESLA_A100\", \"TPU_V2\", \"TPU_V3\"]","description_kind":"plain","required":true}},"description":"The hardware accelerator used on this instance. If you use accelerators,\nmake sure that your configuration has enough vCPUs and memory to support the\nmachineType you have selected.","description_kind":"plain"},"max_items":1},"container_image":{"nesting_mode":"list","block":{"attributes":{"repository":{"type":"string","description":"The path to the container image repository.\nFor example: gcr.io/{project_id}/{imageName}","description_kind":"plain","required":true},"tag":{"type":"string","description":"The tag of the container image. If not specified, this defaults to the latest tag.","description_kind":"plain","optional":true}},"description":"Use a container image to start the notebook instance.","description_kind":"plain"},"max_items":1},"shielded_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description":"Defines whether the instance has integrity monitoring enabled. Enables monitoring and attestation of the\nboot integrity of the instance. The attestation is performed against the integrity policy baseline.\nThis baseline is initially derived from the implicitly trusted boot image when the instance is created.\nEnabled by default.","description_kind":"plain","optional":true},"enable_secure_boot":{"type":"bool","description":"Defines whether the instance has Secure Boot enabled. Secure Boot helps ensure that the system only runs\nauthentic software by verifying the digital signature of all boot components, and halting the boot process\nif signature verification fails.\nDisabled by default.","description_kind":"plain","optional":true},"enable_vtpm":{"type":"bool","description":"Defines whether the instance has the vTPM enabled.\nEnabled by default.","description_kind":"plain","optional":true}},"description":"A set of Shielded Instance options. Check [Images using supported Shielded VM features]\nNot all combinations are valid","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"vm_image":{"nesting_mode":"list","block":{"attributes":{"image_family":{"type":"string","description":"Use this VM image family to find the image; the newest image in this family will be used.","description_kind":"plain","optional":true},"image_name":{"type":"string","description":"Use VM image name to find the image.","description_kind":"plain","optional":true},"project":{"type":"string","description":"The name of the Google Cloud project that this VM image belongs to.\nFormat: projects/{project_id}","description_kind":"plain","required":true}},"description":"Use a Compute Engine VM image to start the notebook instance.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_notebooks_instance_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_name":{"type":"string","description_kind":"plain","required":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_notebooks_instance_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_name":{"type":"string","description_kind":"plain","required":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_notebooks_instance_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_name":{"type":"string","description_kind":"plain","required":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_notebooks_location":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the Location resource.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_org_policy_policy":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, \"projects/123/policies/compute.disableSerialPortAccess\". Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.","description_kind":"plain","required":true},"parent":{"type":"string","description":"The parent of the resource.","description_kind":"plain","required":true}},"block_types":{"spec":{"nesting_mode":"list","block":{"attributes":{"etag":{"type":"string","description":"An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.","description_kind":"plain","computed":true},"inherit_from_parent":{"type":"bool","description":"Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.","description_kind":"plain","optional":true},"reset":{"type":"bool","description":"Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.","description_kind":"plain","optional":true},"update_time":{"type":"string","description":"Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.","description_kind":"plain","computed":true}},"block_types":{"rules":{"nesting_mode":"list","block":{"attributes":{"allow_all":{"type":"string","description":"Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.","description_kind":"plain","optional":true},"deny_all":{"type":"string","description":"Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.","description_kind":"plain","optional":true},"enforce":{"type":"string","description":"If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.","description_kind":"plain","optional":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.","description_kind":"plain","optional":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.","description_kind":"plain","optional":true},"location":{"type":"string","description":"Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.","description_kind":"plain","optional":true},"title":{"type":"string","description":"Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.","description_kind":"plain","optional":true}},"description":"A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr' must include from 1 to 10 subexpressions, joined by the \"||\" or \"\u0026\u0026\" operators. Each subexpression must be of the form \"resource.matchTag('/tag_key_short_name, 'tag_value_short_name')\". or \"resource.matchTagId('tagKeys/key_id', 'tagValues/value_id')\". where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: \"resource.matchTag('123456789/environment, 'prod')\". or \"resource.matchTagId('tagKeys/123', 'tagValues/456')\".","description_kind":"plain"},"max_items":1},"values":{"nesting_mode":"list","block":{"attributes":{"allowed_values":{"type":["list","string"],"description":"List of values allowed at this resource.","description_kind":"plain","optional":true},"denied_values":{"type":["list","string"],"description":"List of values denied at this resource.","description_kind":"plain","optional":true}},"description":"List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.","description_kind":"plain"},"max_items":1}},"description":"Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.","description_kind":"plain"}}},"description":"Basic information about the Organization Policy.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_organization_access_approval_settings":{"version":0,"block":{"attributes":{"enrolled_ancestor":{"type":"bool","description":"This field will always be unset for the organization since organizations do not have ancestors.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of the settings. Format is \"organizations/{organization_id}/accessApprovalSettings\"","description_kind":"plain","computed":true},"notification_emails":{"type":["set","string"],"description":"A list of email addresses to which notifications relating to approval requests should be sent.\nNotifications relating to a resource will be sent to all emails in the settings of ancestor\nresources of that resource. A maximum of 50 email addresses are allowed.","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"ID of the organization of the access approval settings.","description_kind":"plain","required":true}},"block_types":{"enrolled_services":{"nesting_mode":"set","block":{"attributes":{"cloud_product":{"type":"string","description":"The product for which Access Approval will be enrolled. Allowed values are listed (case-sensitive):\n all\n appengine.googleapis.com\n bigquery.googleapis.com\n bigtable.googleapis.com\n cloudkms.googleapis.com\n compute.googleapis.com\n dataflow.googleapis.com\n iam.googleapis.com\n pubsub.googleapis.com\n storage.googleapis.com","description_kind":"plain","required":true},"enrollment_level":{"type":"string","description":"The enrollment level of the service. Default value: \"BLOCK_ALL\" Possible values: [\"BLOCK_ALL\"]","description_kind":"plain","optional":true}},"description":"A list of Google Cloud Services for which the given resource has Access Approval enrolled.\nAccess requests for the resource given by name against any of these services contained here will be required\nto have explicit approval. Enrollment can be done for individual services.\n\nA maximum of 10 enrolled services will be enforced, to be expanded as the set of supported services is expanded.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_organization_iam_audit_config":{"version":0,"block":{"attributes":{"etag":{"type":"string","description":"The etag of iam policy","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"org_id":{"type":"string","description":"The numeric ID of the organization in which you want to manage the audit logging config.","description_kind":"plain","required":true},"service":{"type":"string","description":"Service which will be enabled for audit logging. The special value allServices covers all services.","description_kind":"plain","required":true}},"block_types":{"audit_log_config":{"nesting_mode":"set","block":{"attributes":{"exempted_members":{"type":["set","string"],"description":"Identities that do not cause logging for this type of permission. Each entry can have one of the following values:user:{emailid}: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com. serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. domain:{domain}: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.","description_kind":"plain","optional":true},"log_type":{"type":"string","description":"Permission type for which logging is to be configured. Must be one of DATA_READ, DATA_WRITE, or ADMIN_READ.","description_kind":"plain","required":true}},"description":"The configuration for logging of each type of permission. This can be specified multiple times.","description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"google_organization_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"org_id":{"type":"string","description":"The numeric ID of the organization in which you want to manage the audit logging config.","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_organization_iam_custom_role":{"version":0,"block":{"attributes":{"deleted":{"type":"bool","description":"The current deleted state of the role.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A human-readable description for the role.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the role in the format organizations/{{org_id}}/roles/{{role_id}}. Like id, this field can be used as a reference in other resources such as IAM role bindings.","description_kind":"plain","computed":true},"org_id":{"type":"string","description":"The numeric ID of the organization in which you want to create a custom role.","description_kind":"plain","required":true},"permissions":{"type":["set","string"],"description":"The names of the permissions this role grants when bound in an IAM policy. At least one permission must be specified.","description_kind":"plain","required":true},"role_id":{"type":"string","description":"The role id to use for this role.","description_kind":"plain","required":true},"stage":{"type":"string","description":"The current launch stage of the role. Defaults to GA.","description_kind":"plain","optional":true},"title":{"type":"string","description":"A human-readable title for the role.","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_organization_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"org_id":{"type":"string","description":"The numeric ID of the organization in which you want to manage the audit logging config.","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_organization_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"org_id":{"type":"string","description":"The numeric ID of the organization in which you want to manage the audit logging config.","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_organization_policy":{"version":0,"block":{"attributes":{"constraint":{"type":"string","description":"The name of the Constraint the Policy is configuring, for example, serviceuser.services.","description_kind":"plain","required":true},"etag":{"type":"string","description":"The etag of the organization policy. etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"org_id":{"type":"string","description_kind":"plain","required":true},"update_time":{"type":"string","description":"The timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds, representing when the variable was last updated. Example: \"2016-10-09T12:33:37.578138407Z\".","description_kind":"plain","computed":true},"version":{"type":"number","description":"Version of the Policy. Default version is 0.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"boolean_policy":{"nesting_mode":"list","block":{"attributes":{"enforced":{"type":"bool","description":"If true, then the Policy is enforced. If false, then any configuration is acceptable.","description_kind":"plain","required":true}},"description":"A boolean policy is a constraint that is either enforced or not.","description_kind":"plain"},"max_items":1},"list_policy":{"nesting_mode":"list","block":{"attributes":{"inherit_from_parent":{"type":"bool","description":"If set to true, the values from the effective Policy of the parent resource are inherited, meaning the values set in this Policy are added to the values inherited up the hierarchy.","description_kind":"plain","optional":true},"suggested_value":{"type":"string","description":"The Google Cloud Console will try to default to a configuration that matches the value specified in this field.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"allow":{"nesting_mode":"list","block":{"attributes":{"all":{"type":"bool","description":"The policy allows or denies all values.","description_kind":"plain","optional":true},"values":{"type":["set","string"],"description":"The policy can define specific values that are allowed or denied.","description_kind":"plain","optional":true}},"description":"One or the other must be set.","description_kind":"plain"},"max_items":1},"deny":{"nesting_mode":"list","block":{"attributes":{"all":{"type":"bool","description":"The policy allows or denies all values.","description_kind":"plain","optional":true},"values":{"type":["set","string"],"description":"The policy can define specific values that are allowed or denied.","description_kind":"plain","optional":true}},"description":"One or the other must be set.","description_kind":"plain"},"max_items":1}},"description":"A policy that can define specific values that are allowed or denied for the given constraint. It can also be used to allow or deny all values. ","description_kind":"plain"},"max_items":1},"restore_policy":{"nesting_mode":"list","block":{"attributes":{"default":{"type":"bool","description":"May only be set to true. If set, then the default Policy is restored.","description_kind":"plain","required":true}},"description":"A restore policy is a constraint to restore the default policy.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_os_config_patch_deployment":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Time the patch deployment was created. Timestamp is in RFC3339 text format.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the patch deployment. Length of the description is limited to 1024 characters.","description_kind":"plain","optional":true},"duration":{"type":"string","description":"Duration of the patch. After the duration ends, the patch times out.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\"","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_execute_time":{"type":"string","description":"The last time a patch job was started by this deployment. Timestamp is in RFC3339 text format.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"name":{"type":"string","description":"Unique name for the patch deployment resource in a project.\nThe patch deployment name is in the form: projects/{project_id}/patchDeployments/{patchDeploymentId}.","description_kind":"plain","computed":true},"patch_deployment_id":{"type":"string","description":"A name for the patch deployment in the project. When creating a name the following rules apply:\n* Must contain only lowercase letters, numbers, and hyphens.\n* Must start with a letter.\n* Must be between 1-63 characters.\n* Must end with a number or a letter.\n* Must be unique within the project.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"update_time":{"type":"string","description":"Time the patch deployment was last updated. Timestamp is in RFC3339 text format.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true}},"block_types":{"instance_filter":{"nesting_mode":"list","block":{"attributes":{"all":{"type":"bool","description":"Target all VM instances in the project. If true, no other criteria is permitted.","description_kind":"plain","optional":true},"instance_name_prefixes":{"type":["list","string"],"description":"Targets VMs whose name starts with one of these prefixes. Similar to labels, this is another way to group\nVMs when targeting configs, for example prefix=\"prod-\".","description_kind":"plain","optional":true},"instances":{"type":["list","string"],"description":"Targets any of the VM instances specified. Instances are specified by their URI in the 'form zones/{{zone}}/instances/{{instance_name}}',\n'projects/{{project_id}}/zones/{{zone}}/instances/{{instance_name}}', or\n'https://www.googleapis.com/compute/v1/projects/{{project_id}}/zones/{{zone}}/instances/{{instance_name}}'","description_kind":"plain","optional":true},"zones":{"type":["list","string"],"description":"Targets VM instances in ANY of these zones. Leave empty to target VM instances in any zone.","description_kind":"plain","optional":true}},"block_types":{"group_labels":{"nesting_mode":"list","block":{"attributes":{"labels":{"type":["map","string"],"description":"Compute Engine instance labels that must be present for a VM instance to be targeted by this filter","description_kind":"plain","required":true}},"description":"Targets VM instances matching ANY of these GroupLabels. This allows targeting of disparate groups of VM instances.","description_kind":"plain"}}},"description":"VM instances to patch.","description_kind":"plain"},"min_items":1,"max_items":1},"one_time_schedule":{"nesting_mode":"list","block":{"attributes":{"execute_time":{"type":"string","description":"The desired patch job execution time. A timestamp in RFC3339 UTC \"Zulu\" format,\naccurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","required":true}},"description":"Schedule a one-time execution.","description_kind":"plain"},"max_items":1},"patch_config":{"nesting_mode":"list","block":{"attributes":{"reboot_config":{"type":"string","description":"Post-patch reboot settings. Possible values: [\"DEFAULT\", \"ALWAYS\", \"NEVER\"]","description_kind":"plain","optional":true}},"block_types":{"apt":{"nesting_mode":"list","block":{"attributes":{"excludes":{"type":["list","string"],"description":"List of packages to exclude from update. These packages will be excluded.","description_kind":"plain","optional":true},"exclusive_packages":{"type":["list","string"],"description":"An exclusive list of packages to be updated. These are the only packages that will be updated.\nIf these packages are not installed, they will be ignored. This field cannot be specified with\nany other patch configuration fields.","description_kind":"plain","optional":true},"type":{"type":"string","description":"By changing the type to DIST, the patching is performed using apt-get dist-upgrade instead. Possible values: [\"DIST\", \"UPGRADE\"]","description_kind":"plain","optional":true}},"description":"Apt update settings. Use this setting to override the default apt patch rules.","description_kind":"plain"},"max_items":1},"goo":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"goo update settings. Use this setting to override the default goo patch rules.","description_kind":"plain","required":true}},"description":"goo update settings. Use this setting to override the default goo patch rules.","description_kind":"plain"},"max_items":1},"post_step":{"nesting_mode":"list","block":{"block_types":{"linux_exec_step_config":{"nesting_mode":"list","block":{"attributes":{"allowed_success_codes":{"type":["list","number"],"description":"Defaults to [0]. A list of possible return values that the execution can return to indicate a success.","description_kind":"plain","optional":true},"interpreter":{"type":"string","description":"The script interpreter to use to run the script. If no interpreter is specified the script will\nbe executed directly, which will likely only succeed for scripts with shebang lines. Possible values: [\"SHELL\", \"POWERSHELL\"]","description_kind":"plain","optional":true},"local_path":{"type":"string","description":"An absolute path to the executable on the VM.","description_kind":"plain","optional":true}},"block_types":{"gcs_object":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description":"Bucket of the Cloud Storage object.","description_kind":"plain","required":true},"generation_number":{"type":"string","description":"Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.","description_kind":"plain","required":true},"object":{"type":"string","description":"Name of the Cloud Storage object.","description_kind":"plain","required":true}},"description":"A Cloud Storage object containing the executable.","description_kind":"plain"},"max_items":1}},"description":"The ExecStepConfig for all Linux VMs targeted by the PatchJob.","description_kind":"plain"},"max_items":1},"windows_exec_step_config":{"nesting_mode":"list","block":{"attributes":{"allowed_success_codes":{"type":["list","number"],"description":"Defaults to [0]. A list of possible return values that the execution can return to indicate a success.","description_kind":"plain","optional":true},"interpreter":{"type":"string","description":"The script interpreter to use to run the script. If no interpreter is specified the script will\nbe executed directly, which will likely only succeed for scripts with shebang lines. Possible values: [\"SHELL\", \"POWERSHELL\"]","description_kind":"plain","optional":true},"local_path":{"type":"string","description":"An absolute path to the executable on the VM.","description_kind":"plain","optional":true}},"block_types":{"gcs_object":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description":"Bucket of the Cloud Storage object.","description_kind":"plain","required":true},"generation_number":{"type":"string","description":"Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.","description_kind":"plain","required":true},"object":{"type":"string","description":"Name of the Cloud Storage object.","description_kind":"plain","required":true}},"description":"A Cloud Storage object containing the executable.","description_kind":"plain"},"max_items":1}},"description":"The ExecStepConfig for all Windows VMs targeted by the PatchJob.","description_kind":"plain"},"max_items":1}},"description":"The ExecStep to run after the patch update.","description_kind":"plain"},"max_items":1},"pre_step":{"nesting_mode":"list","block":{"block_types":{"linux_exec_step_config":{"nesting_mode":"list","block":{"attributes":{"allowed_success_codes":{"type":["list","number"],"description":"Defaults to [0]. A list of possible return values that the execution can return to indicate a success.","description_kind":"plain","optional":true},"interpreter":{"type":"string","description":"The script interpreter to use to run the script. If no interpreter is specified the script will\nbe executed directly, which will likely only succeed for scripts with shebang lines. Possible values: [\"SHELL\", \"POWERSHELL\"]","description_kind":"plain","optional":true},"local_path":{"type":"string","description":"An absolute path to the executable on the VM.","description_kind":"plain","optional":true}},"block_types":{"gcs_object":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description":"Bucket of the Cloud Storage object.","description_kind":"plain","required":true},"generation_number":{"type":"string","description":"Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.","description_kind":"plain","required":true},"object":{"type":"string","description":"Name of the Cloud Storage object.","description_kind":"plain","required":true}},"description":"A Cloud Storage object containing the executable.","description_kind":"plain"},"max_items":1}},"description":"The ExecStepConfig for all Linux VMs targeted by the PatchJob.","description_kind":"plain"},"max_items":1},"windows_exec_step_config":{"nesting_mode":"list","block":{"attributes":{"allowed_success_codes":{"type":["list","number"],"description":"Defaults to [0]. A list of possible return values that the execution can return to indicate a success.","description_kind":"plain","optional":true},"interpreter":{"type":"string","description":"The script interpreter to use to run the script. If no interpreter is specified the script will\nbe executed directly, which will likely only succeed for scripts with shebang lines. Possible values: [\"SHELL\", \"POWERSHELL\"]","description_kind":"plain","optional":true},"local_path":{"type":"string","description":"An absolute path to the executable on the VM.","description_kind":"plain","optional":true}},"block_types":{"gcs_object":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description":"Bucket of the Cloud Storage object.","description_kind":"plain","required":true},"generation_number":{"type":"string","description":"Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.","description_kind":"plain","required":true},"object":{"type":"string","description":"Name of the Cloud Storage object.","description_kind":"plain","required":true}},"description":"A Cloud Storage object containing the executable.","description_kind":"plain"},"max_items":1}},"description":"The ExecStepConfig for all Windows VMs targeted by the PatchJob.","description_kind":"plain"},"max_items":1}},"description":"The ExecStep to run before the patch update.","description_kind":"plain"},"max_items":1},"windows_update":{"nesting_mode":"list","block":{"attributes":{"classifications":{"type":["list","string"],"description":"Only apply updates of these windows update classifications. If empty, all updates are applied. Possible values: [\"CRITICAL\", \"SECURITY\", \"DEFINITION\", \"DRIVER\", \"FEATURE_PACK\", \"SERVICE_PACK\", \"TOOL\", \"UPDATE_ROLLUP\", \"UPDATE\"]","description_kind":"plain","optional":true},"excludes":{"type":["list","string"],"description":"List of KBs to exclude from update.","description_kind":"plain","optional":true},"exclusive_patches":{"type":["list","string"],"description":"An exclusive list of kbs to be updated. These are the only patches that will be updated.\nThis field must not be used with other patch configurations.","description_kind":"plain","optional":true}},"description":"Windows update settings. Use this setting to override the default Windows patch rules.","description_kind":"plain"},"max_items":1},"yum":{"nesting_mode":"list","block":{"attributes":{"excludes":{"type":["list","string"],"description":"List of packages to exclude from update. These packages will be excluded.","description_kind":"plain","optional":true},"exclusive_packages":{"type":["list","string"],"description":"An exclusive list of packages to be updated. These are the only packages that will be updated.\nIf these packages are not installed, they will be ignored. This field cannot be specified with\nany other patch configuration fields.","description_kind":"plain","optional":true},"minimal":{"type":"bool","description":"Will cause patch to run yum update-minimal instead.","description_kind":"plain","optional":true},"security":{"type":"bool","description":"Adds the --security flag to yum update. Not supported on all platforms.","description_kind":"plain","optional":true}},"description":"Yum update settings. Use this setting to override the default yum patch rules.","description_kind":"plain"},"max_items":1},"zypper":{"nesting_mode":"list","block":{"attributes":{"categories":{"type":["list","string"],"description":"Install only patches with these categories. Common categories include security, recommended, and feature.","description_kind":"plain","optional":true},"excludes":{"type":["list","string"],"description":"List of packages to exclude from update.","description_kind":"plain","optional":true},"exclusive_patches":{"type":["list","string"],"description":"An exclusive list of patches to be updated. These are the only patches that will be installed using 'zypper patch patch:' command.\nThis field must not be used with any other patch configuration fields.","description_kind":"plain","optional":true},"severities":{"type":["list","string"],"description":"Install only patches with these severities. Common severities include critical, important, moderate, and low.","description_kind":"plain","optional":true},"with_optional":{"type":"bool","description":"Adds the --with-optional flag to zypper patch.","description_kind":"plain","optional":true},"with_update":{"type":"bool","description":"Adds the --with-update flag, to zypper patch.","description_kind":"plain","optional":true}},"description":"zypper update settings. Use this setting to override the default zypper patch rules.","description_kind":"plain"},"max_items":1}},"description":"Patch configuration that is applied.","description_kind":"plain"},"max_items":1},"recurring_schedule":{"nesting_mode":"list","block":{"attributes":{"end_time":{"type":"string","description":"The end time at which a recurring patch deployment schedule is no longer active.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","optional":true},"last_execute_time":{"type":"string","description":"The time the last patch job ran successfully.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"next_execute_time":{"type":"string","description":"The time the next patch job is scheduled to run.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"start_time":{"type":"string","description":"The time that the recurring schedule becomes effective. Defaults to createTime of the patch deployment.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","optional":true}},"block_types":{"monthly":{"nesting_mode":"list","block":{"attributes":{"month_day":{"type":"number","description":"One day of the month. 1-31 indicates the 1st to the 31st day. -1 indicates the last day of the month.\nMonths without the target day will be skipped. For example, a schedule to run \"every month on the 31st\"\nwill not run in February, April, June, etc.","description_kind":"plain","optional":true}},"block_types":{"week_day_of_month":{"nesting_mode":"list","block":{"attributes":{"day_of_week":{"type":"string","description":"A day of the week. Possible values: [\"MONDAY\", \"TUESDAY\", \"WEDNESDAY\", \"THURSDAY\", \"FRIDAY\", \"SATURDAY\", \"SUNDAY\"]","description_kind":"plain","required":true},"week_ordinal":{"type":"number","description":"Week number in a month. 1-4 indicates the 1st to 4th week of the month. -1 indicates the last week of the month.","description_kind":"plain","required":true}},"description":"Week day in a month.","description_kind":"plain"},"max_items":1}},"description":"Schedule with monthly executions.","description_kind":"plain"},"max_items":1},"time_of_day":{"nesting_mode":"list","block":{"attributes":{"hours":{"type":"number","description":"Hours of day in 24 hour format. Should be from 0 to 23.\nAn API may choose to allow the value \"24:00:00\" for scenarios like business closing time.","description_kind":"plain","optional":true},"minutes":{"type":"number","description":"Minutes of hour of day. Must be from 0 to 59.","description_kind":"plain","optional":true},"nanos":{"type":"number","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.","description_kind":"plain","optional":true},"seconds":{"type":"number","description":"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.","description_kind":"plain","optional":true}},"description":"Time of the day to run a recurring deployment.","description_kind":"plain"},"min_items":1,"max_items":1},"time_zone":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description":"IANA Time Zone Database time zone, e.g. \"America/New_York\".","description_kind":"plain","required":true},"version":{"type":"string","description":"IANA Time Zone Database version number, e.g. \"2019a\".","description_kind":"plain","optional":true}},"description":"Defines the time zone that timeOfDay is relative to. The rules for daylight saving time are\ndetermined by the chosen time zone.","description_kind":"plain"},"min_items":1,"max_items":1},"weekly":{"nesting_mode":"list","block":{"attributes":{"day_of_week":{"type":"string","description":"IANA Time Zone Database time zone, e.g. \"America/New_York\". Possible values: [\"MONDAY\", \"TUESDAY\", \"WEDNESDAY\", \"THURSDAY\", \"FRIDAY\", \"SATURDAY\", \"SUNDAY\"]","description_kind":"plain","required":true}},"description":"Schedule with weekly executions.","description_kind":"plain"},"max_items":1}},"description":"Schedule recurring executions.","description_kind":"plain"},"max_items":1},"rollout":{"nesting_mode":"list","block":{"attributes":{"mode":{"type":"string","description":"Mode of the patch rollout. Possible values: [\"ZONE_BY_ZONE\", \"CONCURRENT_ZONES\"]","description_kind":"plain","required":true}},"block_types":{"disruption_budget":{"nesting_mode":"list","block":{"attributes":{"fixed":{"type":"number","description":"Specifies a fixed value.","description_kind":"plain","optional":true},"percentage":{"type":"number","description":"Specifies the relative value defined as a percentage, which will be multiplied by a reference value.","description_kind":"plain","optional":true}},"description":"The maximum number (or percentage) of VMs per zone to disrupt at any given moment. The number of VMs calculated from multiplying the percentage by the total number of VMs in a zone is rounded up.\nDuring patching, a VM is considered disrupted from the time the agent is notified to begin until patching has completed. This disruption time includes the time to complete reboot and any post-patch steps.\nA VM contributes to the disruption budget if its patching operation fails either when applying the patches, running pre or post patch steps, or if it fails to respond with a success notification before timing out. VMs that are not running or do not have an active agent do not count toward this disruption budget.\nFor zone-by-zone rollouts, if the disruption budget in a zone is exceeded, the patch job stops, because continuing to the next zone requires completion of the patch process in the previous zone.\nFor example, if the disruption budget has a fixed value of 10, and 8 VMs fail to patch in the current zone, the patch job continues to patch 2 VMs at a time until the zone is completed. When that zone is completed successfully, patching begins with 10 VMs at a time in the next zone. If 10 VMs in the next zone fail to patch, the patch job stops.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Rollout strategy of the patch job.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_os_login_ssh_public_key":{"version":0,"block":{"attributes":{"expiration_time_usec":{"type":"string","description":"An expiration time in microseconds since epoch.","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"The SHA-256 fingerprint of the SSH public key.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description":"Public key text in SSH format, defined by RFC4253 section 6.6.","description_kind":"plain","required":true},"project":{"type":"string","description":"The project ID of the Google Cloud Platform project.","description_kind":"plain","optional":true},"user":{"type":"string","description":"The user email.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_privateca_ca_pool":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Labels with user-defined metadata.\n\nAn object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\":\n\"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true},"location":{"type":"string","description":"Location of the CaPool. A full list of valid locations can be found by\nrunning 'gcloud privateca locations list'.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name for this CaPool.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tier":{"type":"string","description":"The Tier of this CaPool. Possible values: [\"ENTERPRISE\", \"DEVOPS\"]","description_kind":"plain","required":true}},"block_types":{"issuance_policy":{"nesting_mode":"list","block":{"attributes":{"maximum_lifetime":{"type":"string","description":"The maximum lifetime allowed for issued Certificates. Note that if the issuing CertificateAuthority\nexpires before a Certificate's requested maximumLifetime, the effective lifetime will be explicitly truncated to match it.","description_kind":"plain","optional":true}},"block_types":{"allowed_issuance_modes":{"nesting_mode":"list","block":{"attributes":{"allow_config_based_issuance":{"type":"bool","description":"When true, allows callers to create Certificates by specifying a CertificateConfig.","description_kind":"plain","required":true},"allow_csr_based_issuance":{"type":"bool","description":"When true, allows callers to create Certificates by specifying a CSR.","description_kind":"plain","required":true}},"description":"IssuanceModes specifies the allowed ways in which Certificates may be requested from this CaPool.","description_kind":"plain"},"max_items":1},"allowed_key_types":{"nesting_mode":"list","block":{"block_types":{"elliptic_curve":{"nesting_mode":"list","block":{"attributes":{"signature_algorithm":{"type":"string","description":"The algorithm used. Possible values: [\"ECDSA_P256\", \"ECDSA_P384\", \"EDDSA_25519\"]","description_kind":"plain","required":true}},"description":"Represents an allowed Elliptic Curve key type.","description_kind":"plain"},"max_items":1},"rsa":{"nesting_mode":"list","block":{"attributes":{"max_modulus_size":{"type":"string","description":"The maximum allowed RSA modulus size, in bits. If this is not set, or if set to zero, the\nservice will not enforce an explicit upper bound on RSA modulus sizes.","description_kind":"plain","optional":true},"min_modulus_size":{"type":"string","description":"The minimum allowed RSA modulus size, in bits. If this is not set, or if set to zero, the\nservice-level min RSA modulus size will continue to apply.","description_kind":"plain","optional":true}},"description":"Describes an RSA key that may be used in a Certificate issued from a CaPool.","description_kind":"plain"},"max_items":1}},"description":"If any AllowedKeyType is specified, then the certificate request's public key must match one of the key types listed here.\nOtherwise, any key may be used.","description_kind":"plain"}},"baseline_values":{"nesting_mode":"list","block":{"attributes":{"aia_ocsp_servers":{"type":["list","string"],"description":"Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the\n\"Authority Information Access\" extension in the certificate.","description_kind":"plain","optional":true}},"block_types":{"additional_extensions":{"nesting_mode":"list","block":{"attributes":{"critical":{"type":"bool","description":"Indicates whether or not this extension is critical (i.e., if the client does not know how to\nhandle this extension, the client should consider this to be an error).","description_kind":"plain","required":true},"value":{"type":"string","description":"The value of this X.509 extension. A base64-encoded string.","description_kind":"plain","required":true}},"block_types":{"object_id":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain","required":true}},"description":"Describes values that are relevant in a CA certificate.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.","description_kind":"plain"}},"ca_options":{"nesting_mode":"list","block":{"attributes":{"is_ca":{"type":"bool","description":"Refers to the \"CA\" X.509 extension, which is a boolean value. When this value is missing,\nthe extension will be omitted from the CA certificate.","description_kind":"plain","optional":true},"max_issuer_path_length":{"type":"number","description":"Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of\nsubordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this\nvalue is missing, the max path length will be omitted from the CA certificate.","description_kind":"plain","optional":true}},"description":"Describes values that are relevant in a CA certificate.","description_kind":"plain"},"min_items":1,"max_items":1},"key_usage":{"nesting_mode":"list","block":{"block_types":{"base_key_usage":{"nesting_mode":"list","block":{"attributes":{"cert_sign":{"type":"bool","description":"The key may be used to sign certificates.","description_kind":"plain","optional":true},"content_commitment":{"type":"bool","description":"The key may be used for cryptographic commitments. Note that this may also be referred to as \"non-repudiation\".","description_kind":"plain","optional":true},"crl_sign":{"type":"bool","description":"The key may be used sign certificate revocation lists.","description_kind":"plain","optional":true},"data_encipherment":{"type":"bool","description":"The key may be used to encipher data.","description_kind":"plain","optional":true},"decipher_only":{"type":"bool","description":"The key may be used to decipher only.","description_kind":"plain","optional":true},"digital_signature":{"type":"bool","description":"The key may be used for digital signatures.","description_kind":"plain","optional":true},"encipher_only":{"type":"bool","description":"The key may be used to encipher only.","description_kind":"plain","optional":true},"key_agreement":{"type":"bool","description":"The key may be used in a key agreement protocol.","description_kind":"plain","optional":true},"key_encipherment":{"type":"bool","description":"The key may be used to encipher other keys.","description_kind":"plain","optional":true}},"description":"Describes high-level ways in which a key may be used.","description_kind":"plain"},"min_items":1,"max_items":1},"extended_key_usage":{"nesting_mode":"list","block":{"attributes":{"client_auth":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \"TLS WWW client authentication\", though regularly used for non-WWW TLS.","description_kind":"plain","optional":true},"code_signing":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \"Signing of downloadable executable code client authentication\".","description_kind":"plain","optional":true},"email_protection":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \"Email protection\".","description_kind":"plain","optional":true},"ocsp_signing":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \"Signing OCSP responses\".","description_kind":"plain","optional":true},"server_auth":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \"TLS WWW server authentication\", though regularly used for non-WWW TLS.","description_kind":"plain","optional":true},"time_stamping":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \"Binding the hash of an object to a time\".","description_kind":"plain","optional":true}},"description":"Describes high-level ways in which a key may be used.","description_kind":"plain"},"min_items":1,"max_items":1},"unknown_extended_key_usages":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain","required":true}},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain"}}},"description":"Indicates the intended use for keys that correspond to a certificate.","description_kind":"plain"},"min_items":1,"max_items":1},"policy_ids":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain","required":true}},"description":"Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.","description_kind":"plain"}}},"description":"A set of X.509 values that will be applied to all certificates issued through this CaPool. If a certificate request\nincludes conflicting values for the same properties, they will be overwritten by the values defined here. If a certificate\nrequest uses a CertificateTemplate that defines conflicting predefinedValues for the same properties, the certificate\nissuance request will fail.","description_kind":"plain"},"max_items":1},"identity_constraints":{"nesting_mode":"list","block":{"attributes":{"allow_subject_alt_names_passthrough":{"type":"bool","description":"If this is set, the SubjectAltNames extension may be copied from a certificate request into the signed certificate.\nOtherwise, the requested SubjectAltNames will be discarded.","description_kind":"plain","required":true},"allow_subject_passthrough":{"type":"bool","description":"If this is set, the Subject field may be copied from a certificate request into the signed certificate.\nOtherwise, the requested Subject will be discarded.","description_kind":"plain","required":true}},"block_types":{"cel_expression":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.","description_kind":"plain","optional":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.","description_kind":"plain","required":true},"location":{"type":"string","description":"String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.","description_kind":"plain","optional":true},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.","description_kind":"plain","optional":true}},"description":"A CEL expression that may be used to validate the resolved X.509 Subject and/or Subject Alternative Name before a\ncertificate is signed. To see the full allowed syntax and some examples,\nsee https://cloud.google.com/certificate-authority-service/docs/cel-guide","description_kind":"plain"},"max_items":1}},"description":"Describes constraints on identities that may appear in Certificates issued through this CaPool.\nIf this is omitted, then this CaPool will not add restrictions on a certificate's identity.","description_kind":"plain"},"max_items":1}},"description":"The IssuancePolicy to control how Certificates will be issued from this CaPool.","description_kind":"plain"},"max_items":1},"publishing_options":{"nesting_mode":"list","block":{"attributes":{"publish_ca_cert":{"type":"bool","description":"When true, publishes each CertificateAuthority's CA certificate and includes its URL in the \"Authority Information Access\"\nX.509 extension in all issued Certificates. If this is false, the CA certificate will not be published and the corresponding\nX.509 extension will not be written in issued certificates.","description_kind":"plain","required":true},"publish_crl":{"type":"bool","description":"When true, publishes each CertificateAuthority's CRL and includes its URL in the \"CRL Distribution Points\" X.509 extension\nin all issued Certificates. If this is false, CRLs will not be published and the corresponding X.509 extension will not\nbe written in issued certificates. CRLs will expire 7 days from their creation. However, we will rebuild daily. CRLs are\nalso rebuilt shortly after a certificate is revoked.","description_kind":"plain","required":true}},"description":"The PublishingOptions to follow when issuing Certificates from any CertificateAuthority in this CaPool.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_privateca_ca_pool_iam_binding":{"version":0,"block":{"attributes":{"ca_pool":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_privateca_ca_pool_iam_member":{"version":0,"block":{"attributes":{"ca_pool":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_privateca_ca_pool_iam_policy":{"version":0,"block":{"attributes":{"ca_pool":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_privateca_certificate":{"version":0,"block":{"attributes":{"certificate_authority":{"type":"string","description":"Certificate Authority name.","description_kind":"plain","optional":true},"certificate_description":{"type":["list",["object",{"aia_issuing_certificate_urls":["list","string"],"authority_key_id":["list",["object",{"key_id":"string"}]],"cert_fingerprint":["list",["object",{"sha256_hash":"string"}]],"config_values":["list",["object",{"key_usage":["list",["object",{"base_key_usage":["list",["object",{"key_usage_options":["list",["object",{"cert_sign":"bool","content_commitment":"bool","crl_sign":"bool","data_encipherment":"bool","decipher_only":"bool","digital_signature":"bool","encipher_only":"bool","key_agreement":"bool","key_encipherment":"bool"}]]}]],"extended_key_usage":["list",["object",{"client_auth":"bool","code_signing":"bool","email_protection":"bool","ocsp_signing":"bool","server_auth":"bool","time_stamping":"bool"}]],"unknown_extended_key_usages":["list",["object",{"obect_id":["list",["object",{"object_id_path":["list","number"]}]]}]]}]]}]],"crl_distribution_points":["list","string"],"public_key":["list",["object",{"format":"string","key":"string"}]],"subject_description":["list",["object",{"hex_serial_number":"string","lifetime":"string","not_after_time":"string","not_before_time":"string","subject":["list",["object",{"common_name":"string","country_code":"string","locality":"string","organization":"string","organizational_unit":"string","postal_code":"string","province":"string","street_address":"string"}]],"subject_alt_name":["list",["object",{"custom_sans":["list",["object",{"critical":"bool","obect_id":["list",["object",{"object_id_path":["list","number"]}]],"value":"string"}]],"dns_names":["list","string"],"email_addresses":["list","string"],"ip_addresses":["list","string"],"uris":["list","string"]}]]}]],"subject_key_id":["list",["object",{"key_id":"string"}]]}]],"description":"Output only. Details regarding the revocation of this Certificate. This Certificate is considered revoked if and only if this field is present.","description_kind":"plain","computed":true},"certificate_template":{"type":"string","description":"The resource name for a CertificateTemplate used to issue this certificate,\nin the format 'projects/*/locations/*/certificateTemplates/*'. If this is specified,\nthe caller must have the necessary permission to use this template. If this is\nomitted, no template will be used. This template must be in the same location\nas the Certificate.","description_kind":"plain","optional":true},"create_time":{"type":"string","description":"The time that this resource was created on the server.\nThis is in RFC3339 text format.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Labels with user-defined metadata to apply to this resource.","description_kind":"plain","optional":true},"lifetime":{"type":"string","description":"The desired lifetime of the CA certificate. Used to create the \"notBeforeTime\" and\n\"notAfterTime\" fields inside an X.509 certificate. A duration in seconds with up to nine\nfractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true},"location":{"type":"string","description":"Location of the Certificate. A full list of valid locations can be found by\nrunning 'gcloud privateca locations list'.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name for this Certificate.","description_kind":"plain","required":true},"pem_certificate":{"type":"string","description":"Output only. The pem-encoded, signed X.509 certificate.","description_kind":"plain","computed":true},"pem_certificates":{"type":["list","string"],"description":"Required. Expected to be in leaf-to-root order according to RFC 5246.","description_kind":"plain","computed":true},"pem_csr":{"type":"string","description":"Immutable. A pem-encoded X.509 certificate signing request (CSR).","description_kind":"plain","optional":true},"pool":{"type":"string","description":"The name of the CaPool this Certificate belongs to.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"revocation_details":{"type":["list",["object",{"revocation_state":"string","revocation_time":"string"}]],"description":"Output only. Details regarding the revocation of this Certificate. This Certificate is \nconsidered revoked if and only if this field is present.","description_kind":"plain","computed":true},"update_time":{"type":"string","description":"Output only. The time at which this CertificateAuthority was updated.\nThis is in RFC3339 text format.","description_kind":"plain","computed":true}},"block_types":{"config":{"nesting_mode":"list","block":{"block_types":{"public_key":{"nesting_mode":"list","block":{"attributes":{"format":{"type":"string","description":"The format of the public key. Currently, only PEM format is supported. Possible values: [\"KEY_TYPE_UNSPECIFIED\", \"PEM\"]","description_kind":"plain","required":true},"key":{"type":"string","description":"Required. A public key. When this is specified in a request, the padding and encoding can be any of the options described by the respective 'KeyType' value. When this is generated by the service, it will always be an RFC 5280 SubjectPublicKeyInfo structure containing an algorithm identifier and a key. A base64-encoded string.","description_kind":"plain","optional":true}},"description":"A PublicKey describes a public key.","description_kind":"plain"},"min_items":1,"max_items":1},"subject_config":{"nesting_mode":"list","block":{"block_types":{"subject":{"nesting_mode":"list","block":{"attributes":{"common_name":{"type":"string","description":"The common name of the distinguished name.","description_kind":"plain","required":true},"country_code":{"type":"string","description":"The country code of the subject.","description_kind":"plain","optional":true},"locality":{"type":"string","description":"The locality or city of the subject.","description_kind":"plain","optional":true},"organization":{"type":"string","description":"The organization of the subject.","description_kind":"plain","required":true},"organizational_unit":{"type":"string","description":"The organizational unit of the subject.","description_kind":"plain","optional":true},"postal_code":{"type":"string","description":"The postal code of the subject.","description_kind":"plain","optional":true},"province":{"type":"string","description":"The province, territory, or regional state of the subject.","description_kind":"plain","optional":true},"street_address":{"type":"string","description":"The street address of the subject.","description_kind":"plain","optional":true}},"description":"Contains distinguished name fields such as the location and organization.","description_kind":"plain"},"min_items":1,"max_items":1},"subject_alt_name":{"nesting_mode":"list","block":{"attributes":{"dns_names":{"type":["list","string"],"description":"Contains only valid, fully-qualified host names.","description_kind":"plain","optional":true},"email_addresses":{"type":["list","string"],"description":"Contains only valid RFC 2822 E-mail addresses.","description_kind":"plain","optional":true},"ip_addresses":{"type":["list","string"],"description":"Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.","description_kind":"plain","optional":true},"uris":{"type":["list","string"],"description":"Contains only valid RFC 3986 URIs.","description_kind":"plain","optional":true}},"description":"The subject alternative name fields.","description_kind":"plain"},"max_items":1}},"description":"Specifies some of the values in a certificate that are related to the subject.","description_kind":"plain"},"min_items":1,"max_items":1},"x509_config":{"nesting_mode":"list","block":{"attributes":{"aia_ocsp_servers":{"type":["list","string"],"description":"Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the\n\"Authority Information Access\" extension in the certificate.","description_kind":"plain","optional":true}},"block_types":{"additional_extensions":{"nesting_mode":"list","block":{"attributes":{"critical":{"type":"bool","description":"Indicates whether or not this extension is critical (i.e., if the client does not know how to\nhandle this extension, the client should consider this to be an error).","description_kind":"plain","required":true},"value":{"type":"string","description":"The value of this X.509 extension. A base64-encoded string.","description_kind":"plain","required":true}},"block_types":{"object_id":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain","required":true}},"description":"Describes values that are relevant in a CA certificate.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.","description_kind":"plain"}},"ca_options":{"nesting_mode":"list","block":{"attributes":{"is_ca":{"type":"bool","description":"Refers to the \"CA\" X.509 extension, which is a boolean value. When this value is missing,\nthe extension will be omitted from the CA certificate.","description_kind":"plain","optional":true},"max_issuer_path_length":{"type":"number","description":"Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of\nsubordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this\nvalue is missing, the max path length will be omitted from the CA certificate.","description_kind":"plain","optional":true}},"description":"Describes values that are relevant in a CA certificate.","description_kind":"plain"},"max_items":1},"key_usage":{"nesting_mode":"list","block":{"block_types":{"base_key_usage":{"nesting_mode":"list","block":{"attributes":{"cert_sign":{"type":"bool","description":"The key may be used to sign certificates.","description_kind":"plain","optional":true},"content_commitment":{"type":"bool","description":"The key may be used for cryptographic commitments. Note that this may also be referred to as \"non-repudiation\".","description_kind":"plain","optional":true},"crl_sign":{"type":"bool","description":"The key may be used sign certificate revocation lists.","description_kind":"plain","optional":true},"data_encipherment":{"type":"bool","description":"The key may be used to encipher data.","description_kind":"plain","optional":true},"decipher_only":{"type":"bool","description":"The key may be used to decipher only.","description_kind":"plain","optional":true},"digital_signature":{"type":"bool","description":"The key may be used for digital signatures.","description_kind":"plain","optional":true},"encipher_only":{"type":"bool","description":"The key may be used to encipher only.","description_kind":"plain","optional":true},"key_agreement":{"type":"bool","description":"The key may be used in a key agreement protocol.","description_kind":"plain","optional":true},"key_encipherment":{"type":"bool","description":"The key may be used to encipher other keys.","description_kind":"plain","optional":true}},"description":"Describes high-level ways in which a key may be used.","description_kind":"plain"},"min_items":1,"max_items":1},"extended_key_usage":{"nesting_mode":"list","block":{"attributes":{"client_auth":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \"TLS WWW client authentication\", though regularly used for non-WWW TLS.","description_kind":"plain","optional":true},"code_signing":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \"Signing of downloadable executable code client authentication\".","description_kind":"plain","optional":true},"email_protection":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \"Email protection\".","description_kind":"plain","optional":true},"ocsp_signing":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \"Signing OCSP responses\".","description_kind":"plain","optional":true},"server_auth":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \"TLS WWW server authentication\", though regularly used for non-WWW TLS.","description_kind":"plain","optional":true},"time_stamping":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \"Binding the hash of an object to a time\".","description_kind":"plain","optional":true}},"description":"Describes high-level ways in which a key may be used.","description_kind":"plain"},"min_items":1,"max_items":1},"unknown_extended_key_usages":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain","required":true}},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain"}}},"description":"Indicates the intended use for keys that correspond to a certificate.","description_kind":"plain"},"min_items":1,"max_items":1},"policy_ids":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain","required":true}},"description":"Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.","description_kind":"plain"}}},"description":"Describes how some of the technical X.509 fields in a certificate should be populated.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"The config used to create a self-signed X.509 certificate or CSR.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_privateca_certificate_authority":{"version":0,"block":{"attributes":{"access_urls":{"type":["list",["object",{"ca_certificate_access_url":"string","crl_access_url":"string"}]],"description":"URLs for accessing content published by this CA, such as the CA certificate and CRLs.","description_kind":"plain","computed":true},"certificate_authority_id":{"type":"string","description":"The user provided Resource ID for this Certificate Authority.","description_kind":"plain","required":true},"create_time":{"type":"string","description":"The time at which this CertificateAuthority was created.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine\nfractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"gcs_bucket":{"type":"string","description":"The name of a Cloud Storage bucket where this CertificateAuthority will publish content,\nsuch as the CA certificate and CRLs. This must be a bucket name, without any prefixes\n(such as 'gs://') or suffixes (such as '.googleapis.com'). For example, to use a bucket named\nmy-bucket, you would simply specify 'my-bucket'. If not specified, a managed bucket will be\ncreated.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ignore_active_certificates_on_deletion":{"type":"bool","description":"This field allows the CA to be deleted even if the CA has active certs. Active certs include both unrevoked and unexpired certs.\nUse with care. Defaults to 'false'.","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"Labels with user-defined metadata.\n\nAn object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\":\n\"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true},"lifetime":{"type":"string","description":"The desired lifetime of the CA certificate. Used to create the \"notBeforeTime\" and\n\"notAfterTime\" fields inside an X.509 certificate. A duration in seconds with up to nine\nfractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true},"location":{"type":"string","description":"Location of the CertificateAuthority. A full list of valid locations can be found by\nrunning 'gcloud privateca locations list'.","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name for this CertificateAuthority in the format\nprojects/*/locations/*/certificateAuthorities/*.","description_kind":"plain","computed":true},"pem_ca_certificates":{"type":["list","string"],"description":"This CertificateAuthority's certificate chain, including the current\nCertificateAuthority's certificate. Ordered such that the root issuer is the final\nelement (consistent with RFC 5246). For a self-signed CA, this will only list the current\nCertificateAuthority's certificate.","description_kind":"plain","computed":true},"pool":{"type":"string","description":"The name of the CaPool this Certificate Authority belongs to.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description":"The State for this CertificateAuthority.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The Type of this CertificateAuthority.\n\n~\u003e **Note:** For 'SUBORDINATE' Certificate Authorities, they need to\nbe manually activated (via Cloud Console of 'gcloud') before they can\nissue certificates. Default value: \"SELF_SIGNED\" Possible values: [\"SELF_SIGNED\", \"SUBORDINATE\"]","description_kind":"plain","optional":true},"update_time":{"type":"string","description":"The time at which this CertificateAuthority was updated.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine\nfractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true}},"block_types":{"config":{"nesting_mode":"list","block":{"block_types":{"subject_config":{"nesting_mode":"list","block":{"block_types":{"subject":{"nesting_mode":"list","block":{"attributes":{"common_name":{"type":"string","description":"The common name of the distinguished name.","description_kind":"plain","required":true},"country_code":{"type":"string","description":"The country code of the subject.","description_kind":"plain","optional":true},"locality":{"type":"string","description":"The locality or city of the subject.","description_kind":"plain","optional":true},"organization":{"type":"string","description":"The organization of the subject.","description_kind":"plain","required":true},"organizational_unit":{"type":"string","description":"The organizational unit of the subject.","description_kind":"plain","optional":true},"postal_code":{"type":"string","description":"The postal code of the subject.","description_kind":"plain","optional":true},"province":{"type":"string","description":"The province, territory, or regional state of the subject.","description_kind":"plain","optional":true},"street_address":{"type":"string","description":"The street address of the subject.","description_kind":"plain","optional":true}},"description":"Contains distinguished name fields such as the location and organization.","description_kind":"plain"},"min_items":1,"max_items":1},"subject_alt_name":{"nesting_mode":"list","block":{"attributes":{"dns_names":{"type":["list","string"],"description":"Contains only valid, fully-qualified host names.","description_kind":"plain","optional":true},"email_addresses":{"type":["list","string"],"description":"Contains only valid RFC 2822 E-mail addresses.","description_kind":"plain","optional":true},"ip_addresses":{"type":["list","string"],"description":"Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.","description_kind":"plain","optional":true},"uris":{"type":["list","string"],"description":"Contains only valid RFC 3986 URIs.","description_kind":"plain","optional":true}},"description":"The subject alternative name fields.","description_kind":"plain"},"max_items":1}},"description":"Specifies some of the values in a certificate that are related to the subject.","description_kind":"plain"},"min_items":1,"max_items":1},"x509_config":{"nesting_mode":"list","block":{"attributes":{"aia_ocsp_servers":{"type":["list","string"],"description":"Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the\n\"Authority Information Access\" extension in the certificate.","description_kind":"plain","optional":true}},"block_types":{"additional_extensions":{"nesting_mode":"list","block":{"attributes":{"critical":{"type":"bool","description":"Indicates whether or not this extension is critical (i.e., if the client does not know how to\nhandle this extension, the client should consider this to be an error).","description_kind":"plain","required":true},"value":{"type":"string","description":"The value of this X.509 extension. A base64-encoded string.","description_kind":"plain","required":true}},"block_types":{"object_id":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain","required":true}},"description":"Describes values that are relevant in a CA certificate.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.","description_kind":"plain"}},"ca_options":{"nesting_mode":"list","block":{"attributes":{"is_ca":{"type":"bool","description":"Refers to the \"CA\" X.509 extension, which is a boolean value. When this value is missing,\nthe extension will be omitted from the CA certificate.","description_kind":"plain","required":true},"max_issuer_path_length":{"type":"number","description":"Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of\nsubordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this\nvalue is missing, the max path length will be omitted from the CA certificate.","description_kind":"plain","optional":true}},"description":"Describes values that are relevant in a CA certificate.","description_kind":"plain"},"min_items":1,"max_items":1},"key_usage":{"nesting_mode":"list","block":{"block_types":{"base_key_usage":{"nesting_mode":"list","block":{"attributes":{"cert_sign":{"type":"bool","description":"The key may be used to sign certificates.","description_kind":"plain","optional":true},"content_commitment":{"type":"bool","description":"The key may be used for cryptographic commitments. Note that this may also be referred to as \"non-repudiation\".","description_kind":"plain","optional":true},"crl_sign":{"type":"bool","description":"The key may be used sign certificate revocation lists.","description_kind":"plain","optional":true},"data_encipherment":{"type":"bool","description":"The key may be used to encipher data.","description_kind":"plain","optional":true},"decipher_only":{"type":"bool","description":"The key may be used to decipher only.","description_kind":"plain","optional":true},"digital_signature":{"type":"bool","description":"The key may be used for digital signatures.","description_kind":"plain","optional":true},"encipher_only":{"type":"bool","description":"The key may be used to encipher only.","description_kind":"plain","optional":true},"key_agreement":{"type":"bool","description":"The key may be used in a key agreement protocol.","description_kind":"plain","optional":true},"key_encipherment":{"type":"bool","description":"The key may be used to encipher other keys.","description_kind":"plain","optional":true}},"description":"Describes high-level ways in which a key may be used.","description_kind":"plain"},"min_items":1,"max_items":1},"extended_key_usage":{"nesting_mode":"list","block":{"attributes":{"client_auth":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \"TLS WWW client authentication\", though regularly used for non-WWW TLS.","description_kind":"plain","optional":true},"code_signing":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \"Signing of downloadable executable code client authentication\".","description_kind":"plain","optional":true},"email_protection":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \"Email protection\".","description_kind":"plain","optional":true},"ocsp_signing":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \"Signing OCSP responses\".","description_kind":"plain","optional":true},"server_auth":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \"TLS WWW server authentication\", though regularly used for non-WWW TLS.","description_kind":"plain","optional":true},"time_stamping":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \"Binding the hash of an object to a time\".","description_kind":"plain","optional":true}},"description":"Describes high-level ways in which a key may be used.","description_kind":"plain"},"min_items":1,"max_items":1},"unknown_extended_key_usages":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain","required":true}},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain"}}},"description":"Indicates the intended use for keys that correspond to a certificate.","description_kind":"plain"},"min_items":1,"max_items":1},"policy_ids":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain","required":true}},"description":"Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.","description_kind":"plain"}}},"description":"Describes how some of the technical X.509 fields in a certificate should be populated.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"The config used to create a self-signed X.509 certificate or CSR.","description_kind":"plain"},"min_items":1,"max_items":1},"key_spec":{"nesting_mode":"list","block":{"attributes":{"algorithm":{"type":"string","description":"The algorithm to use for creating a managed Cloud KMS key for a for a simplified\nexperience. All managed keys will be have their ProtectionLevel as HSM. Possible values: [\"SIGN_HASH_ALGORITHM_UNSPECIFIED\", \"RSA_PSS_2048_SHA256\", \"RSA_PSS_3072_SHA256\", \"RSA_PSS_4096_SHA256\", \"RSA_PKCS1_2048_SHA256\", \"RSA_PKCS1_3072_SHA256\", \"RSA_PKCS1_4096_SHA256\", \"EC_P256_SHA256\", \"EC_P384_SHA384\"]","description_kind":"plain","optional":true},"cloud_kms_key_version":{"type":"string","description":"The resource name for an existing Cloud KMS CryptoKeyVersion in the format\n'projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*'.","description_kind":"plain","optional":true}},"description":"Used when issuing certificates for this CertificateAuthority. If this CertificateAuthority\nis a self-signed CertificateAuthority, this key is also used to sign the self-signed CA\ncertificate. Otherwise, it is used to sign a CSR.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_privateca_certificate_template":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Output only. The time at which this CertificateTemplate was created.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Optional. A human-readable description of scenarios this template is intended for.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Optional. Labels with user-defined metadata.","description_kind":"plain","optional":true},"location":{"type":"string","description":"The location for the resource","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name for this CertificateTemplate in the format `projects/*/locations/*/certificateTemplates/*`.","description_kind":"plain","required":true},"project":{"type":"string","description":"The project for the resource","description_kind":"plain","optional":true,"computed":true},"update_time":{"type":"string","description":"Output only. The time at which this CertificateTemplate was updated.","description_kind":"plain","computed":true}},"block_types":{"identity_constraints":{"nesting_mode":"list","block":{"attributes":{"allow_subject_alt_names_passthrough":{"type":"bool","description":"Required. If this is true, the SubjectAltNames extension may be copied from a certificate request into the signed certificate. Otherwise, the requested SubjectAltNames will be discarded.","description_kind":"plain","required":true},"allow_subject_passthrough":{"type":"bool","description":"Required. If this is true, the Subject field may be copied from a certificate request into the signed certificate. Otherwise, the requested Subject will be discarded.","description_kind":"plain","required":true}},"block_types":{"cel_expression":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.","description_kind":"plain","optional":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.","description_kind":"plain","optional":true},"location":{"type":"string","description":"Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.","description_kind":"plain","optional":true},"title":{"type":"string","description":"Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.","description_kind":"plain","optional":true}},"description":"Optional. A CEL expression that may be used to validate the resolved X.509 Subject and/or Subject Alternative Name before a certificate is signed. To see the full allowed syntax and some examples, see https://cloud.google.com/certificate-authority-service/docs/using-cel","description_kind":"plain"},"max_items":1}},"description":"Optional. Describes constraints on identities that may be appear in Certificates issued using this template. If this is omitted, then this template will not add restrictions on a certificate's identity.","description_kind":"plain"},"max_items":1},"passthrough_extensions":{"nesting_mode":"list","block":{"attributes":{"known_extensions":{"type":["list","string"],"description":"Optional. A set of named X.509 extensions. Will be combined with additional_extensions to determine the full set of X.509 extensions.","description_kind":"plain","optional":true}},"block_types":{"additional_extensions":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"Required. The parts of an OID path. The most significant parts of the path come first.","description_kind":"plain","required":true}},"description":"Optional. A set of ObjectIds identifying custom X.509 extensions. Will be combined with known_extensions to determine the full set of X.509 extensions.","description_kind":"plain"}}},"description":"Optional. Describes the set of X.509 extensions that may appear in a Certificate issued using this CertificateTemplate. If a certificate request sets extensions that don't appear in the passthrough_extensions, those extensions will be dropped. If the issuing CaPool's IssuancePolicy defines baseline_values that don't appear here, the certificate issuance request will fail. If this is omitted, then this template will not add restrictions on a certificate's X.509 extensions. These constraints do not apply to X.509 extensions set in this CertificateTemplate's predefined_values.","description_kind":"plain"},"max_items":1},"predefined_values":{"nesting_mode":"list","block":{"attributes":{"aia_ocsp_servers":{"type":["list","string"],"description":"Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the \"Authority Information Access\" extension in the certificate.","description_kind":"plain","optional":true}},"block_types":{"additional_extensions":{"nesting_mode":"list","block":{"attributes":{"critical":{"type":"bool","description":"Optional. Indicates whether or not this extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error).","description_kind":"plain","optional":true},"value":{"type":"string","description":"Required. The value of this X.509 extension.","description_kind":"plain","required":true}},"block_types":{"object_id":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"Required. The parts of an OID path. The most significant parts of the path come first.","description_kind":"plain","required":true}},"description":"Required. The OID for this X.509 extension.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Optional. Describes custom X.509 extensions.","description_kind":"plain"}},"ca_options":{"nesting_mode":"list","block":{"attributes":{"is_ca":{"type":"bool","description":"Optional. Refers to the \"CA\" X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.","description_kind":"plain","optional":true},"max_issuer_path_length":{"type":"number","description":"Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.","description_kind":"plain","optional":true}},"description":"Optional. Describes options in this X509Parameters that are relevant in a CA certificate.","description_kind":"plain"},"max_items":1},"key_usage":{"nesting_mode":"list","block":{"block_types":{"base_key_usage":{"nesting_mode":"list","block":{"attributes":{"cert_sign":{"type":"bool","description":"The key may be used to sign certificates.","description_kind":"plain","optional":true},"content_commitment":{"type":"bool","description":"The key may be used for cryptographic commitments. Note that this may also be referred to as \"non-repudiation\".","description_kind":"plain","optional":true},"crl_sign":{"type":"bool","description":"The key may be used sign certificate revocation lists.","description_kind":"plain","optional":true},"data_encipherment":{"type":"bool","description":"The key may be used to encipher data.","description_kind":"plain","optional":true},"decipher_only":{"type":"bool","description":"The key may be used to decipher only.","description_kind":"plain","optional":true},"digital_signature":{"type":"bool","description":"The key may be used for digital signatures.","description_kind":"plain","optional":true},"encipher_only":{"type":"bool","description":"The key may be used to encipher only.","description_kind":"plain","optional":true},"key_agreement":{"type":"bool","description":"The key may be used in a key agreement protocol.","description_kind":"plain","optional":true},"key_encipherment":{"type":"bool","description":"The key may be used to encipher other keys.","description_kind":"plain","optional":true}},"description":"Describes high-level ways in which a key may be used.","description_kind":"plain"},"max_items":1},"extended_key_usage":{"nesting_mode":"list","block":{"attributes":{"client_auth":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \"TLS WWW client authentication\", though regularly used for non-WWW TLS.","description_kind":"plain","optional":true},"code_signing":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \"Signing of downloadable executable code client authentication\".","description_kind":"plain","optional":true},"email_protection":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \"Email protection\".","description_kind":"plain","optional":true},"ocsp_signing":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \"Signing OCSP responses\".","description_kind":"plain","optional":true},"server_auth":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \"TLS WWW server authentication\", though regularly used for non-WWW TLS.","description_kind":"plain","optional":true},"time_stamping":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \"Binding the hash of an object to a time\".","description_kind":"plain","optional":true}},"description":"Detailed scenarios in which a key may be used.","description_kind":"plain"},"max_items":1},"unknown_extended_key_usages":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"Required. The parts of an OID path. The most significant parts of the path come first.","description_kind":"plain","required":true}},"description":"Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.","description_kind":"plain"}}},"description":"Optional. Indicates the intended use for keys that correspond to a certificate.","description_kind":"plain"},"max_items":1},"policy_ids":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"Required. The parts of an OID path. The most significant parts of the path come first.","description_kind":"plain","required":true}},"description":"Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.","description_kind":"plain"}}},"description":"Optional. A set of X.509 values that will be applied to all issued certificates that use this template. If the certificate request includes conflicting values for the same properties, they will be overwritten by the values defined here. If the issuing CaPool's IssuancePolicy defines conflicting baseline_values for the same properties, the certificate issuance request will fail.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_project":{"version":1,"block":{"attributes":{"auto_create_network":{"type":"bool","description":"Create the 'default' network automatically. Default true. If set to false, the default network will be deleted. Note that, for quota purposes, you will still need to have 1 network slot available to create the project successfully, even if you set auto_create_network to false, since the network will exist momentarily.","description_kind":"plain","optional":true},"billing_account":{"type":"string","description":"The alphanumeric ID of the billing account this project belongs to. The user or service account performing this operation with Terraform must have Billing Account Administrator privileges (roles/billing.admin) in the organization. See Google Cloud Billing API Access Control for more details.","description_kind":"plain","optional":true},"folder_id":{"type":"string","description":"The numeric ID of the folder this project should be created under. Only one of org_id or folder_id may be specified. If the folder_id is specified, then the project is created under the specified folder. Changing this forces the project to be migrated to the newly specified folder.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to the project.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The display name of the project.","description_kind":"plain","required":true},"number":{"type":"string","description":"The numeric identifier of the project.","description_kind":"plain","computed":true},"org_id":{"type":"string","description":"The numeric ID of the organization this project belongs to. Changing this forces a new project to be created. Only one of org_id or folder_id may be specified. If the org_id is specified then the project is created at the top level. Changing this forces the project to be migrated to the newly specified organization.","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The project ID. Changing this forces a new project to be created.","description_kind":"plain","required":true},"skip_delete":{"type":"bool","description":"If true, the Terraform resource can be deleted without deleting the Project via the Google API.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_project_access_approval_settings":{"version":0,"block":{"attributes":{"enrolled_ancestor":{"type":"bool","description":"If the field is true, that indicates that at least one service is enrolled for Access Approval in one or more ancestors of the Project.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of the settings. Format is \"projects/{project_id}/accessApprovalSettings\"","description_kind":"plain","computed":true},"notification_emails":{"type":["set","string"],"description":"A list of email addresses to which notifications relating to approval requests should be sent.\nNotifications relating to a resource will be sent to all emails in the settings of ancestor\nresources of that resource. A maximum of 50 email addresses are allowed.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description":"Deprecated in favor of 'project_id'","description_kind":"plain","deprecated":true,"optional":true},"project_id":{"type":"string","description":"ID of the project of the access approval settings.","description_kind":"plain","required":true}},"block_types":{"enrolled_services":{"nesting_mode":"set","block":{"attributes":{"cloud_product":{"type":"string","description":"The product for which Access Approval will be enrolled. Allowed values are listed (case-sensitive):\n all\n appengine.googleapis.com\n bigquery.googleapis.com\n bigtable.googleapis.com\n cloudkms.googleapis.com\n compute.googleapis.com\n dataflow.googleapis.com\n iam.googleapis.com\n pubsub.googleapis.com\n storage.googleapis.com","description_kind":"plain","required":true},"enrollment_level":{"type":"string","description":"The enrollment level of the service. Default value: \"BLOCK_ALL\" Possible values: [\"BLOCK_ALL\"]","description_kind":"plain","optional":true}},"description":"A list of Google Cloud Services for which the given resource has Access Approval enrolled.\nAccess requests for the resource given by name against any of these services contained here will be required\nto have explicit approval. Enrollment can only be done on an all or nothing basis.\n\nA maximum of 10 enrolled services will be enforced, to be expanded as the set of supported services is expanded.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_project_default_service_accounts":{"version":0,"block":{"attributes":{"action":{"type":"string","description":"The action to be performed in the default service accounts. Valid values are: DEPRIVILEGE, DELETE, DISABLE.\n\t\t\t\tNote that DEPRIVILEGE action will ignore the REVERT configuration in the restore_policy.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description":"The project ID where service accounts are created.","description_kind":"plain","required":true},"restore_policy":{"type":"string","description":"The action to be performed in the default service accounts on the resource destroy.\n\t\t\t\tValid values are NONE, REVERT and REVERT_AND_IGNORE_FAILURE. It is applied for any action but in the DEPRIVILEGE.","description_kind":"plain","optional":true},"service_accounts":{"type":["map","string"],"description":"The Service Accounts changed by this resource. It is used for revert the action on the destroy.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_project_iam_audit_config":{"version":0,"block":{"attributes":{"etag":{"type":"string","description":"The etag of iam policy","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","required":true},"service":{"type":"string","description":"Service which will be enabled for audit logging. The special value allServices covers all services.","description_kind":"plain","required":true}},"block_types":{"audit_log_config":{"nesting_mode":"set","block":{"attributes":{"exempted_members":{"type":["set","string"],"description":"Identities that do not cause logging for this type of permission. Each entry can have one of the following values:user:{emailid}: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com. serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. domain:{domain}: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.","description_kind":"plain","optional":true},"log_type":{"type":"string","description":"Permission type for which logging is to be configured. Must be one of DATA_READ, DATA_WRITE, or ADMIN_READ.","description_kind":"plain","required":true}},"description":"The configuration for logging of each type of permission. This can be specified multiple times.","description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"google_project_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_project_iam_custom_role":{"version":0,"block":{"attributes":{"deleted":{"type":"bool","description":"The current deleted state of the role.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A human-readable description for the role.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the role in the format projects/{{project}}/roles/{{role_id}}. Like id, this field can be used as a reference in other resources such as IAM role bindings.","description_kind":"plain","computed":true},"permissions":{"type":["set","string"],"description":"The names of the permissions this role grants when bound in an IAM policy. At least one permission must be specified.","description_kind":"plain","required":true},"project":{"type":"string","description":"The project that the service account will be created in. Defaults to the provider project configuration.","description_kind":"plain","optional":true,"computed":true},"role_id":{"type":"string","description":"The camel case role id to use for this role. Cannot contain - characters.","description_kind":"plain","required":true},"stage":{"type":"string","description":"The current launch stage of the role. Defaults to GA.","description_kind":"plain","optional":true},"title":{"type":"string","description":"A human-readable title for the role.","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_project_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_project_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_project_organization_policy":{"version":0,"block":{"attributes":{"constraint":{"type":"string","description":"The name of the Constraint the Policy is configuring, for example, serviceuser.services.","description_kind":"plain","required":true},"etag":{"type":"string","description":"The etag of the organization policy. etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description":"The project ID.","description_kind":"plain","required":true},"update_time":{"type":"string","description":"The timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds, representing when the variable was last updated. Example: \"2016-10-09T12:33:37.578138407Z\".","description_kind":"plain","computed":true},"version":{"type":"number","description":"Version of the Policy. Default version is 0.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"boolean_policy":{"nesting_mode":"list","block":{"attributes":{"enforced":{"type":"bool","description":"If true, then the Policy is enforced. If false, then any configuration is acceptable.","description_kind":"plain","required":true}},"description":"A boolean policy is a constraint that is either enforced or not.","description_kind":"plain"},"max_items":1},"list_policy":{"nesting_mode":"list","block":{"attributes":{"inherit_from_parent":{"type":"bool","description":"If set to true, the values from the effective Policy of the parent resource are inherited, meaning the values set in this Policy are added to the values inherited up the hierarchy.","description_kind":"plain","optional":true},"suggested_value":{"type":"string","description":"The Google Cloud Console will try to default to a configuration that matches the value specified in this field.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"allow":{"nesting_mode":"list","block":{"attributes":{"all":{"type":"bool","description":"The policy allows or denies all values.","description_kind":"plain","optional":true},"values":{"type":["set","string"],"description":"The policy can define specific values that are allowed or denied.","description_kind":"plain","optional":true}},"description":"One or the other must be set.","description_kind":"plain"},"max_items":1},"deny":{"nesting_mode":"list","block":{"attributes":{"all":{"type":"bool","description":"The policy allows or denies all values.","description_kind":"plain","optional":true},"values":{"type":["set","string"],"description":"The policy can define specific values that are allowed or denied.","description_kind":"plain","optional":true}},"description":"One or the other must be set.","description_kind":"plain"},"max_items":1}},"description":"A policy that can define specific values that are allowed or denied for the given constraint. It can also be used to allow or deny all values. ","description_kind":"plain"},"max_items":1},"restore_policy":{"nesting_mode":"list","block":{"attributes":{"default":{"type":"bool","description":"May only be set to true. If set, then the default Policy is restored.","description_kind":"plain","required":true}},"description":"A restore policy is a constraint to restore the default policy.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_project_service":{"version":0,"block":{"attributes":{"disable_dependent_services":{"type":"bool","description_kind":"plain","optional":true},"disable_on_destroy":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_project_usage_export_bucket":{"version":0,"block":{"attributes":{"bucket_name":{"type":"string","description":"The bucket to store reports in.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"prefix":{"type":"string","description":"A prefix for the reports, for instance, the project name.","description_kind":"plain","optional":true},"project":{"type":"string","description":"The project to set the export bucket on. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_pubsub_lite_reservation":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the reservation.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region of the pubsub lite reservation.","description_kind":"plain","optional":true},"throughput_capacity":{"type":"number","description":"The reserved throughput capacity. Every unit of throughput capacity is\nequivalent to 1 MiB/s of published messages or 2 MiB/s of subscribed\nmessages.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_pubsub_lite_subscription":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the subscription.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region of the pubsub lite topic.","description_kind":"plain","optional":true},"topic":{"type":"string","description":"A reference to a Topic resource.","description_kind":"plain","required":true},"zone":{"type":"string","description":"The zone of the pubsub lite topic.","description_kind":"plain","optional":true}},"block_types":{"delivery_config":{"nesting_mode":"list","block":{"attributes":{"delivery_requirement":{"type":"string","description":"When this subscription should send messages to subscribers relative to messages persistence in storage. Possible values: [\"DELIVER_IMMEDIATELY\", \"DELIVER_AFTER_STORED\", \"DELIVERY_REQUIREMENT_UNSPECIFIED\"]","description_kind":"plain","required":true}},"description":"The settings for this subscription's message delivery.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_pubsub_lite_topic":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the topic.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region of the pubsub lite topic.","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone of the pubsub lite topic.","description_kind":"plain","optional":true}},"block_types":{"partition_config":{"nesting_mode":"list","block":{"attributes":{"count":{"type":"number","description":"The number of partitions in the topic. Must be at least 1.","description_kind":"plain","required":true}},"block_types":{"capacity":{"nesting_mode":"list","block":{"attributes":{"publish_mib_per_sec":{"type":"number","description":"Subscribe throughput capacity per partition in MiB/s. Must be \u003e= 4 and \u003c= 16.","description_kind":"plain","required":true},"subscribe_mib_per_sec":{"type":"number","description":"Publish throughput capacity per partition in MiB/s. Must be \u003e= 4 and \u003c= 16.","description_kind":"plain","required":true}},"description":"The capacity configuration.","description_kind":"plain"},"max_items":1}},"description":"The settings for this topic's partitions.","description_kind":"plain"},"max_items":1},"reservation_config":{"nesting_mode":"list","block":{"attributes":{"throughput_reservation":{"type":"string","description":"The Reservation to use for this topic's throughput capacity.","description_kind":"plain","optional":true}},"description":"The settings for this topic's Reservation usage.","description_kind":"plain"},"max_items":1},"retention_config":{"nesting_mode":"list","block":{"attributes":{"per_partition_bytes":{"type":"string","description":"The provisioned storage, in bytes, per partition. If the number of bytes stored\nin any of the topic's partitions grows beyond this value, older messages will be\ndropped to make room for newer ones, regardless of the value of period.","description_kind":"plain","required":true},"period":{"type":"string","description":"How long a published message is retained. If unset, messages will be retained as\nlong as the bytes retained for each partition is below perPartitionBytes.","description_kind":"plain","optional":true}},"description":"The settings for a topic's message retention.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_pubsub_schema":{"version":0,"block":{"attributes":{"definition":{"type":"string","description":"The definition of the schema.\nThis should contain a string representing the full definition of the schema\nthat is a valid schema definition of the type specified in type.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The ID to use for the schema, which will become the final component of the schema's resource name.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"The type of the schema definition Default value: \"TYPE_UNSPECIFIED\" Possible values: [\"TYPE_UNSPECIFIED\", \"PROTOCOL_BUFFER\", \"AVRO\"]","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_pubsub_subscription":{"version":0,"block":{"attributes":{"ack_deadline_seconds":{"type":"number","description":"This value is the maximum time after a subscriber receives a message\nbefore the subscriber should acknowledge the message. After message\ndelivery but before the ack deadline expires and before the message is\nacknowledged, it is an outstanding message and will not be delivered\nagain during that time (on a best-effort basis).\n\nFor pull subscriptions, this value is used as the initial value for\nthe ack deadline. To override this value for a given message, call\nsubscriptions.modifyAckDeadline with the corresponding ackId if using\npull. The minimum custom deadline you can specify is 10 seconds. The\nmaximum custom deadline you can specify is 600 seconds (10 minutes).\nIf this parameter is 0, a default value of 10 seconds is used.\n\nFor push delivery, this value is also used to set the request timeout\nfor the call to the push endpoint.\n\nIf the subscriber never acknowledges the message, the Pub/Sub system\nwill eventually redeliver the message.","description_kind":"plain","optional":true,"computed":true},"enable_message_ordering":{"type":"bool","description":"If 'true', messages published with the same orderingKey in PubsubMessage will be delivered to\nthe subscribers in the order in which they are received by the Pub/Sub system. Otherwise, they\nmay be delivered in any order.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"The subscription only delivers the messages that match the filter. \nPub/Sub automatically acknowledges the messages that don't match the filter. You can filter messages\nby their attributes. The maximum length of a filter is 256 bytes. After creating the subscription, \nyou can't modify the filter.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to this Subscription.","description_kind":"plain","optional":true},"message_retention_duration":{"type":"string","description":"How long to retain unacknowledged messages in the subscription's\nbacklog, from the moment a message is published. If\nretainAckedMessages is true, then this also configures the retention\nof acknowledged messages, and thus configures how far back in time a\nsubscriptions.seek can be done. Defaults to 7 days. Cannot be more\nthan 7 days ('\"604800s\"') or less than 10 minutes ('\"600s\"').\n\nA duration in seconds with up to nine fractional digits, terminated\nby 's'. Example: '\"600.5s\"'.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the subscription.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"retain_acked_messages":{"type":"bool","description":"Indicates whether to retain acknowledged messages. If 'true', then\nmessages are not expunged from the subscription's backlog, even if\nthey are acknowledged, until they fall out of the\nmessageRetentionDuration window.","description_kind":"plain","optional":true},"topic":{"type":"string","description":"A reference to a Topic resource.","description_kind":"plain","required":true}},"block_types":{"dead_letter_policy":{"nesting_mode":"list","block":{"attributes":{"dead_letter_topic":{"type":"string","description":"The name of the topic to which dead letter messages should be published.\nFormat is 'projects/{project}/topics/{topic}'.\n\nThe Cloud Pub/Sub service account associated with the enclosing subscription's\nparent project (i.e., \nservice-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have\npermission to Publish() to this topic.\n\nThe operation will fail if the topic does not exist.\nUsers should ensure that there is a subscription attached to this topic\nsince messages published to a topic with no subscriptions are lost.","description_kind":"plain","optional":true},"max_delivery_attempts":{"type":"number","description":"The maximum number of delivery attempts for any message. The value must be\nbetween 5 and 100.\n\nThe number of delivery attempts is defined as 1 + (the sum of number of \nNACKs and number of times the acknowledgement deadline has been exceeded for the message).\n\nA NACK is any call to ModifyAckDeadline with a 0 deadline. Note that\nclient libraries may automatically extend ack_deadlines.\n\nThis field will be honored on a best effort basis.\n\nIf this parameter is 0, a default value of 5 is used.","description_kind":"plain","optional":true}},"description":"A policy that specifies the conditions for dead lettering messages in\nthis subscription. If dead_letter_policy is not set, dead lettering\nis disabled.\n\nThe Cloud Pub/Sub service account associated with this subscription's\nparent project (i.e.,\nservice-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have\npermission to Acknowledge() messages on this subscription.","description_kind":"plain"},"max_items":1},"expiration_policy":{"nesting_mode":"list","block":{"attributes":{"ttl":{"type":"string","description":"Specifies the \"time-to-live\" duration for an associated resource. The\nresource expires if it is not active for a period of ttl.\nIf ttl is not set, the associated resource never expires.\nA duration in seconds with up to nine fractional digits, terminated by 's'.\nExample - \"3.5s\".","description_kind":"plain","required":true}},"description":"A policy that specifies the conditions for this subscription's expiration.\nA subscription is considered active as long as any connected subscriber\nis successfully consuming messages from the subscription or is issuing\noperations on the subscription. If expirationPolicy is not set, a default\npolicy with ttl of 31 days will be used. If it is set but ttl is \"\", the\nresource never expires. The minimum allowed value for expirationPolicy.ttl\nis 1 day.","description_kind":"plain"},"max_items":1},"push_config":{"nesting_mode":"list","block":{"attributes":{"attributes":{"type":["map","string"],"description":"Endpoint configuration attributes.\n\nEvery endpoint has a set of API supported attributes that can\nbe used to control different aspects of the message delivery.\n\nThe currently supported attribute is x-goog-version, which you\ncan use to change the format of the pushed message. This\nattribute indicates the version of the data expected by\nthe endpoint. This controls the shape of the pushed message\n(i.e., its fields and metadata). The endpoint version is\nbased on the version of the Pub/Sub API.\n\nIf not present during the subscriptions.create call,\nit will default to the version of the API used to make\nsuch call. If not present during a subscriptions.modifyPushConfig\ncall, its value will not be changed. subscriptions.get\ncalls will always return a valid version, even if the\nsubscription was created without this attribute.\n\nThe possible values for this attribute are:\n\n- v1beta1: uses the push format defined in the v1beta1 Pub/Sub API.\n- v1 or v1beta2: uses the push format defined in the v1 Pub/Sub API.","description_kind":"plain","optional":true},"push_endpoint":{"type":"string","description":"A URL locating the endpoint to which messages should be pushed.\nFor example, a Webhook endpoint might use\n\"https://example.com/push\".","description_kind":"plain","required":true}},"block_types":{"oidc_token":{"nesting_mode":"list","block":{"attributes":{"audience":{"type":"string","description":"Audience to be used when generating OIDC token. The audience claim\nidentifies the recipients that the JWT is intended for. The audience\nvalue is a single case-sensitive string. Having multiple values (array)\nfor the audience field is not supported. More info about the OIDC JWT\ntoken audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3\nNote: if not specified, the Push endpoint URL will be used.","description_kind":"plain","optional":true},"service_account_email":{"type":"string","description":"Service account email to be used for generating the OIDC token.\nThe caller (for subscriptions.create, subscriptions.patch, and\nsubscriptions.modifyPushConfig RPCs) must have the\niam.serviceAccounts.actAs permission for the service account.","description_kind":"plain","required":true}},"description":"If specified, Pub/Sub will generate and attach an OIDC JWT token as\nan Authorization header in the HTTP request for every pushed message.","description_kind":"plain"},"max_items":1}},"description":"If push delivery is used with this subscription, this field is used to\nconfigure it. An empty pushConfig signifies that the subscriber will\npull and ack messages using API methods.","description_kind":"plain"},"max_items":1},"retry_policy":{"nesting_mode":"list","block":{"attributes":{"maximum_backoff":{"type":"string","description":"The maximum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 600 seconds. \nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true,"computed":true},"minimum_backoff":{"type":"string","description":"The minimum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true,"computed":true}},"description":"A policy that specifies how Pub/Sub retries message delivery for this subscription.\n\nIf not set, the default retry policy is applied. This generally implies that messages will be retried as soon as possible for healthy subscribers. \nRetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_pubsub_subscription_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"subscription":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_pubsub_subscription_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"subscription":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_pubsub_subscription_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"subscription":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_pubsub_topic":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kms_key_name":{"type":"string","description":"The resource name of the Cloud KMS CryptoKey to be used to protect access\nto messages published on this topic. Your project's PubSub service account\n('service-{{PROJECT_NUMBER}}@gcp-sa-pubsub.iam.gserviceaccount.com') must have\n'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this feature.\nThe expected format is 'projects/*/locations/*/keyRings/*/cryptoKeys/*'","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to this Topic.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the topic.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"message_storage_policy":{"nesting_mode":"list","block":{"attributes":{"allowed_persistence_regions":{"type":["list","string"],"description":"A list of IDs of GCP regions where messages that are published to\nthe topic may be persisted in storage. Messages published by\npublishers running in non-allowed GCP regions (or running outside\nof GCP altogether) will be routed for storage in one of the\nallowed regions. An empty list means that no regions are allowed,\nand is not a valid configuration.","description_kind":"plain","required":true}},"description":"Policy constraining the set of Google Cloud Platform regions where\nmessages published to the topic may be stored. If not present, then no\nconstraints are in effect.","description_kind":"plain"},"max_items":1},"schema_settings":{"nesting_mode":"list","block":{"attributes":{"encoding":{"type":"string","description":"The encoding of messages validated against schema. Default value: \"ENCODING_UNSPECIFIED\" Possible values: [\"ENCODING_UNSPECIFIED\", \"JSON\", \"BINARY\"]","description_kind":"plain","optional":true},"schema":{"type":"string","description":"The name of the schema that messages published should be\nvalidated against. Format is projects/{project}/schemas/{schema}.\nThe value of this field will be _deleted-schema_\nif the schema has been deleted.","description_kind":"plain","required":true}},"description":"Settings for validating messages published against a schema.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_pubsub_topic_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"topic":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_pubsub_topic_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"topic":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_pubsub_topic_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"topic":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_redis_instance":{"version":0,"block":{"attributes":{"alternative_location_id":{"type":"string","description":"Only applicable to STANDARD_HA tier which protects the instance\nagainst zonal failures by provisioning it across two zones.\nIf provided, it must be a different zone from the one provided in\n[locationId].","description_kind":"plain","optional":true,"computed":true},"auth_enabled":{"type":"bool","description":"Optional. Indicates whether OSS Redis AUTH is enabled for the\ninstance. If set to \"true\" AUTH is enabled on the instance.\nDefault value is \"false\" meaning AUTH is disabled.","description_kind":"plain","optional":true},"auth_string":{"type":"string","description":"AUTH String set on the instance. This field will only be populated if auth_enabled is true.","description_kind":"plain","computed":true,"sensitive":true},"authorized_network":{"type":"string","description":"The full name of the Google Compute Engine network to which the\ninstance is connected. If left unspecified, the default network\nwill be used.","description_kind":"plain","optional":true,"computed":true},"connect_mode":{"type":"string","description":"The connection mode of the Redis instance. Default value: \"DIRECT_PEERING\" Possible values: [\"DIRECT_PEERING\", \"PRIVATE_SERVICE_ACCESS\"]","description_kind":"plain","optional":true},"create_time":{"type":"string","description":"The time the instance was created in RFC3339 UTC \"Zulu\" format,\naccurate to nanoseconds.","description_kind":"plain","computed":true},"current_location_id":{"type":"string","description":"The current zone where the Redis endpoint is placed.\nFor Basic Tier instances, this will always be the same as the\n[locationId] provided by the user at creation time. For Standard Tier\ninstances, this can be either [locationId] or [alternativeLocationId]\nand can change after a failover event.","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"An arbitrary and optional user-provided name for the instance.","description_kind":"plain","optional":true},"host":{"type":"string","description":"Hostname or IP address of the exposed Redis endpoint used by clients\nto connect to the service.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Resource labels to represent user provided metadata.","description_kind":"plain","optional":true},"location_id":{"type":"string","description":"The zone where the instance will be provisioned. If not provided,\nthe service will choose a zone for the instance. For STANDARD_HA tier,\ninstances will be created across two zones for protection against\nzonal failures. If [alternativeLocationId] is also provided, it must\nbe different from [locationId].","description_kind":"plain","optional":true,"computed":true},"memory_size_gb":{"type":"number","description":"Redis memory size in GiB.","description_kind":"plain","required":true},"name":{"type":"string","description":"The ID of the instance or a fully qualified identifier for the instance.","description_kind":"plain","required":true},"persistence_iam_identity":{"type":"string","description":"Output only. Cloud IAM identity used by import / export operations\nto transfer data to/from Cloud Storage. Format is \"serviceAccount:\".\nThe value may change over time for a given instance so should be\nchecked before each import/export operation.","description_kind":"plain","computed":true},"port":{"type":"number","description":"The port number of the exposed Redis endpoint.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"redis_configs":{"type":["map","string"],"description":"Redis configuration parameters, according to http://redis.io/topics/config.\nPlease check Memorystore documentation for the list of supported parameters:\nhttps://cloud.google.com/memorystore/docs/redis/reference/rest/v1/projects.locations.instances#Instance.FIELDS.redis_configs","description_kind":"plain","optional":true},"redis_version":{"type":"string","description":"The version of Redis software. If not provided, latest supported\nversion will be used. Please check the API documentation linked \nat the top for the latest valid values.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The name of the Redis region of the instance.","description_kind":"plain","optional":true,"computed":true},"reserved_ip_range":{"type":"string","description":"The CIDR range of internal addresses that are reserved for this\ninstance. If not provided, the service will choose an unused /29\nblock, for example, 10.0.0.0/29 or 192.168.0.0/29. Ranges must be\nunique and non-overlapping with existing subnets in an authorized\nnetwork.","description_kind":"plain","optional":true,"computed":true},"server_ca_certs":{"type":["list",["object",{"cert":"string","create_time":"string","expire_time":"string","serial_number":"string","sha1_fingerprint":"string"}]],"description":"List of server CA certificates for the instance.","description_kind":"plain","computed":true},"tier":{"type":"string","description":"The service tier of the instance. Must be one of these values:\n\n- BASIC: standalone instance\n- STANDARD_HA: highly available primary/replica instances Default value: \"BASIC\" Possible values: [\"BASIC\", \"STANDARD_HA\"]","description_kind":"plain","optional":true},"transit_encryption_mode":{"type":"string","description":"The TLS mode of the Redis instance, If not provided, TLS is disabled for the instance.\n\n- SERVER_AUTHENTICATION: Client to Server traffic encryption enabled with server authentcation Default value: \"DISABLED\" Possible values: [\"SERVER_AUTHENTICATION\", \"DISABLED\"]","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_resource_manager_lien":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Time of creation","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"A system-generated unique identifier for this Lien.","description_kind":"plain","computed":true},"origin":{"type":"string","description":"A stable, user-visible/meaningful string identifying the origin\nof the Lien, intended to be inspected programmatically. Maximum length of\n200 characters.","description_kind":"plain","required":true},"parent":{"type":"string","description":"A reference to the resource this Lien is attached to.\nThe server will validate the parent against those for which Liens are supported.\nSince a variety of objects can have Liens against them, you must provide the type\nprefix (e.g. \"projects/my-project-name\").","description_kind":"plain","required":true},"reason":{"type":"string","description":"Concise user-visible strings indicating why an action cannot be performed\non a resource. Maximum length of 200 characters.","description_kind":"plain","required":true},"restrictions":{"type":["list","string"],"description":"The types of operations which should be blocked as a result of this Lien.\nEach value should correspond to an IAM permission. The server will validate\nthe permissions against those for which Liens are supported. An empty\nlist is meaningless and will be rejected.\ne.g. ['resourcemanager.projects.delete']","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_scc_notification_config":{"version":0,"block":{"attributes":{"config_id":{"type":"string","description":"This must be unique within the organization.","description_kind":"plain","required":true},"description":{"type":"string","description":"The description of the notification config (max of 1024 characters).","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of this notification config, in the format\n'organizations/{{organization}}/notificationConfigs/{{config_id}}'.","description_kind":"plain","computed":true},"organization":{"type":"string","description":"The organization whose Cloud Security Command Center the Notification\nConfig lives in.","description_kind":"plain","required":true},"pubsub_topic":{"type":"string","description":"The Pub/Sub topic to send notifications to. Its format is\n\"projects/[project_id]/topics/[topic]\".","description_kind":"plain","required":true},"service_account":{"type":"string","description":"The service account that needs \"pubsub.topics.publish\" permission to\npublish to the Pub/Sub topic.","description_kind":"plain","computed":true}},"block_types":{"streaming_config":{"nesting_mode":"list","block":{"attributes":{"filter":{"type":"string","description":"Expression that defines the filter to apply across create/update\nevents of assets or findings as specified by the event type. The\nexpression is a list of zero or more restrictions combined via\nlogical operators AND and OR. Parentheses are supported, and OR\nhas higher precedence than AND.\n\nRestrictions have the form \u003cfield\u003e \u003coperator\u003e \u003cvalue\u003e and may have\na - character in front of them to indicate negation. The fields\nmap to those defined in the corresponding resource.\n\nThe supported operators are:\n\n* = for all value types.\n* \u003e, \u003c, \u003e=, \u003c= for integer values.\n* :, meaning substring matching, for strings.\n\nThe supported value types are:\n\n* string literals in quotes.\n* integer literals without quotes.\n* boolean literals true and false without quotes.\n\nSee\n[Filtering notifications](https://cloud.google.com/security-command-center/docs/how-to-api-filter-notifications)\nfor information on how to write a filter.","description_kind":"plain","required":true}},"description":"The config for triggering streaming-based notifications.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_scc_source":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description of the source (max of 1024 characters).","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The source’s display name. A source’s display name must be unique\namongst its siblings, for example, two sources with the same parent\ncan't share the same display name. The display name must start and end\nwith a letter or digit, may contain letters, digits, spaces, hyphens,\nand underscores, and can be no longer than 32 characters.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of this source, in the format\n'organizations/{{organization}}/sources/{{source}}'.","description_kind":"plain","computed":true},"organization":{"type":"string","description":"The organization whose Cloud Security Command Center the Source\nlives in.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_secret_manager_secret":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"The time at which the Secret was created.","description_kind":"plain","computed":true},"expire_time":{"type":"string","description":"Timestamp in UTC when the Secret is scheduled to expire. This is always provided on output, regardless of what was sent on input.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The labels assigned to this Secret.\n\nLabel keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,\nand must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}][\\p{Ll}\\p{Lo}\\p{N}_-]{0,62}\n\nLabel values must be between 0 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,\nand must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}\n\nNo more than 64 labels can be assigned to a given resource.\n\nAn object containing a list of \"key\": value pairs. Example:\n{ \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource name of the Secret. Format:\n'projects/{{project}}/secrets/{{secret_id}}'","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secret_id":{"type":"string","description":"This must be unique within the project.","description_kind":"plain","required":true},"ttl":{"type":"string","description":"The TTL for the Secret.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true}},"block_types":{"replication":{"nesting_mode":"list","block":{"attributes":{"automatic":{"type":"bool","description":"The Secret will automatically be replicated without any restrictions.","description_kind":"plain","optional":true}},"block_types":{"user_managed":{"nesting_mode":"list","block":{"block_types":{"replicas":{"nesting_mode":"list","block":{"attributes":{"location":{"type":"string","description":"The canonical IDs of the location to replicate data. For example: \"us-east1\".","description_kind":"plain","required":true}},"block_types":{"customer_managed_encryption":{"nesting_mode":"list","block":{"attributes":{"kms_key_name":{"type":"string","description":"Describes the Cloud KMS encryption key that will be used to protect destination secret.","description_kind":"plain","required":true}},"description":"Customer Managed Encryption for the secret.","description_kind":"plain"},"max_items":1}},"description":"The list of Replicas for this Secret. Cannot be empty.","description_kind":"plain"},"min_items":1}},"description":"The Secret will automatically be replicated without any restrictions.","description_kind":"plain"},"max_items":1}},"description":"The replication policy of the secret data attached to the Secret. It cannot be changed\nafter the Secret has been created.","description_kind":"plain"},"min_items":1,"max_items":1},"rotation":{"nesting_mode":"list","block":{"attributes":{"next_rotation_time":{"type":"string","description":"Timestamp in UTC at which the Secret is scheduled to rotate.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","optional":true},"rotation_period":{"type":"string","description":"The Duration between rotation notifications. Must be in seconds and at least 3600s (1h) and at most 3153600000s (100 years).\nIf rotationPeriod is set, 'next_rotation_time' must be set. 'next_rotation_time' will be advanced by this period when the service automatically sends rotation notifications.","description_kind":"plain","optional":true}},"description":"The rotation time and period for a Secret. At 'next_rotation_time', Secret Manager will send a Pub/Sub notification to the topics configured on the Secret. 'topics' must be set to configure rotation.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"topics":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"The resource name of the Pub/Sub topic that will be published to, in the following format: projects/*/topics/*.\nFor publication to succeed, the Secret Manager Service Agent service account must have pubsub.publisher permissions on the topic.","description_kind":"plain","required":true}},"description":"A list of up to 10 Pub/Sub topics to which messages are published when control plane operations are called on the secret or its versions.","description_kind":"plain"}}},"description_kind":"plain"}},"google_secret_manager_secret_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"secret_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_secret_manager_secret_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"secret_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_secret_manager_secret_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secret_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_secret_manager_secret_version":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"The time at which the Secret was created.","description_kind":"plain","computed":true},"destroy_time":{"type":"string","description":"The time at which the Secret was destroyed. Only present if state is DESTROYED.","description_kind":"plain","computed":true},"enabled":{"type":"bool","description":"The current state of the SecretVersion.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of the SecretVersion. Format:\n'projects/{{project}}/secrets/{{secret_id}}/versions/{{version}}'","description_kind":"plain","computed":true},"secret":{"type":"string","description":"Secret Manager secret resource","description_kind":"plain","required":true},"secret_data":{"type":"string","description":"The secret data. Must be no larger than 64KiB.","description_kind":"plain","required":true,"sensitive":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_service_account":{"version":0,"block":{"attributes":{"account_id":{"type":"string","description":"The account id that is used to generate the service account email address and a stable unique id. It is unique within a project, must be 6-30 characters long, and match the regular expression [a-z]([-a-z0-9]*[a-z0-9]) to comply with RFC1035. Changing this forces a new service account to be created.","description_kind":"plain","required":true},"description":{"type":"string","description":"A text description of the service account. Must be less than or equal to 256 UTF-8 bytes.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"Whether the service account is disabled. Defaults to false","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The display name for the service account. Can be updated without creating a new resource.","description_kind":"plain","optional":true},"email":{"type":"string","description":"The e-mail address of the service account. This value should be referenced from any google_iam_policy data sources that would grant the service account privileges.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The fully-qualified name of the service account.","description_kind":"plain","computed":true},"project":{"type":"string","description":"The ID of the project that the service account will be created in. Defaults to the provider project configuration.","description_kind":"plain","optional":true,"computed":true},"unique_id":{"type":"string","description":"The unique id of the service account.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_service_account_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true},"service_account_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_service_account_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true},"service_account_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_service_account_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"service_account_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_service_account_key":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keepers":{"type":["map","string"],"description":"Arbitrary map of values that, when changed, will trigger recreation of resource.","description_kind":"plain","optional":true},"key_algorithm":{"type":"string","description":"The algorithm used to generate the key, used only on create. KEY_ALG_RSA_2048 is the default algorithm. Valid values are: \"KEY_ALG_RSA_1024\", \"KEY_ALG_RSA_2048\".","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name used for this key pair","description_kind":"plain","computed":true},"private_key":{"type":"string","description":"The private key in JSON format, base64 encoded. This is what you normally get as a file when creating service account keys through the CLI or web console. This is only populated when creating a new key.","description_kind":"plain","computed":true,"sensitive":true},"private_key_type":{"type":"string","description_kind":"plain","optional":true},"public_key":{"type":"string","description":"The public key, base64 encoded","description_kind":"plain","computed":true},"public_key_data":{"type":"string","description":"A field that allows clients to upload their own public key. If set, use this public key data to create a service account key for given service account. Please note, the expected format for this field is a base64 encoded X509_PEM.","description_kind":"plain","optional":true},"public_key_type":{"type":"string","description_kind":"plain","optional":true},"service_account_id":{"type":"string","description":"The ID of the parent service account of the key. This can be a string in the format {ACCOUNT} or projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}, where {ACCOUNT} is the email address or unique id of the service account. If the {ACCOUNT} syntax is used, the project will be inferred from the provider's configuration.","description_kind":"plain","required":true},"valid_after":{"type":"string","description":"The key can be used after this timestamp. A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"valid_before":{"type":"string","description":"The key can be used before this timestamp. A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_service_networking_connection":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"network":{"type":"string","description":"Name of VPC network connected with service producers using VPC peering.","description_kind":"plain","required":true},"peering":{"type":"string","description_kind":"plain","computed":true},"reserved_peering_ranges":{"type":["list","string"],"description":"Named IP address range(s) of PEERING type reserved for this service provider. Note that invoking this method with a different range when connection is already established will not reallocate already provisioned service producer subnetworks.","description_kind":"plain","required":true},"service":{"type":"string","description":"Provider peering service that is managing peering connectivity for a service provider organization. For Google services that support this functionality it is 'servicenetworking.googleapis.com'.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_service_networking_peered_dns_domain":{"version":0,"block":{"attributes":{"dns_suffix":{"type":"string","description":"The DNS domain name suffix of the peered DNS domain.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the peered DNS domain.","description_kind":"plain","required":true},"network":{"type":"string","description":"Network in the consumer project to peer with.","description_kind":"plain","required":true},"parent":{"type":"string","description_kind":"plain","computed":true},"project":{"type":"string","description":"The ID of the project that the service account will be created in. Defaults to the provider project configuration.","description_kind":"plain","optional":true,"computed":true},"service":{"type":"string","description":"The name of the service to create a peered DNS domain for, e.g. servicenetworking.googleapis.com","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_sourcerepo_repository":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Resource name of the repository, of the form '{{repo}}'.\nThe repo name may contain slashes. eg, 'name/with/slash'","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description":"The disk usage of the repo, in bytes.","description_kind":"plain","computed":true},"url":{"type":"string","description":"URL to clone the repository from Google Cloud Source Repositories.","description_kind":"plain","computed":true}},"block_types":{"pubsub_configs":{"nesting_mode":"set","block":{"attributes":{"message_format":{"type":"string","description":"The format of the Cloud Pub/Sub messages. \n- PROTOBUF: The message payload is a serialized protocol buffer of SourceRepoEvent.\n- JSON: The message payload is a JSON string of SourceRepoEvent. Possible values: [\"PROTOBUF\", \"JSON\"]","description_kind":"plain","required":true},"service_account_email":{"type":"string","description":"Email address of the service account used for publishing Cloud Pub/Sub messages. \nThis service account needs to be in the same project as the PubsubConfig. When added, \nthe caller needs to have iam.serviceAccounts.actAs permission on this service account. \nIf unspecified, it defaults to the compute engine default service account.","description_kind":"plain","optional":true,"computed":true},"topic":{"type":"string","description_kind":"plain","required":true}},"description":"How this repository publishes a change in the repository through Cloud Pub/Sub. \nKeyed by the topic names.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_sourcerepo_repository_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"repository":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_sourcerepo_repository_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"repository":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_sourcerepo_repository_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"repository":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_spanner_database":{"version":0,"block":{"attributes":{"ddl":{"type":["list","string"],"description":"An optional list of DDL statements to run inside the newly created\ndatabase. Statements can create tables, indexes, etc. These statements\nexecute atomically with the creation of the database: if there is an\nerror in any statement, the database is not created.","description_kind":"plain","optional":true},"deletion_protection":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description":"The instance to create the database on.","description_kind":"plain","required":true},"name":{"type":"string","description":"A unique identifier for the database, which cannot be changed after\nthe instance is created. Values are of the form [a-z][-a-z0-9]*[a-z0-9].","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description":"An explanation of the status of the database.","description_kind":"plain","computed":true}},"block_types":{"encryption_config":{"nesting_mode":"list","block":{"attributes":{"kms_key_name":{"type":"string","description":"Fully qualified name of the KMS key to use to encrypt this database. This key must exist\nin the same location as the Spanner Database.","description_kind":"plain","required":true}},"description":"Encryption configuration for the database","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_spanner_database_iam_binding":{"version":0,"block":{"attributes":{"database":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_spanner_database_iam_member":{"version":0,"block":{"attributes":{"database":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_spanner_database_iam_policy":{"version":0,"block":{"attributes":{"database":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_spanner_instance":{"version":0,"block":{"attributes":{"config":{"type":"string","description":"The name of the instance's configuration (similar but not\nquite the same as a region) which defines the geographic placement and\nreplication of your databases in this instance. It determines where your data\nis stored. Values are typically of the form 'regional-europe-west1' , 'us-central' etc.\nIn order to obtain a valid list please consult the\n[Configuration section of the docs](https://cloud.google.com/spanner/docs/instances).","description_kind":"plain","required":true},"display_name":{"type":"string","description":"The descriptive name for this instance as it appears in UIs. Must be\nunique per project and between 4 and 30 characters in length.","description_kind":"plain","required":true},"force_destroy":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"An object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true},"name":{"type":"string","description":"A unique identifier for the instance, which cannot be changed after\nthe instance is created. The name must be between 6 and 30 characters\nin length.\n\n\nIf not provided, a random string starting with 'tf-' will be selected.","description_kind":"plain","optional":true,"computed":true},"num_nodes":{"type":"number","description":"The number of nodes allocated to this instance. At most one of either node_count or processing_units\ncan be present in terraform.","description_kind":"plain","optional":true,"computed":true},"processing_units":{"type":"number","description":"The number of processing units allocated to this instance. At most one of processing_units \nor node_count can be present in terraform.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description":"Instance status: 'CREATING' or 'READY'.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_spanner_instance_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_spanner_instance_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_spanner_instance_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_sql_database":{"version":0,"block":{"attributes":{"charset":{"type":"string","description":"The charset value. See MySQL's\n[Supported Character Sets and Collations](https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html)\nand Postgres' [Character Set Support](https://www.postgresql.org/docs/9.6/static/multibyte.html)\nfor more details and supported values. Postgres databases only support\na value of 'UTF8' at creation time.","description_kind":"plain","optional":true,"computed":true},"collation":{"type":"string","description":"The collation value. See MySQL's\n[Supported Character Sets and Collations](https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html)\nand Postgres' [Collation Support](https://www.postgresql.org/docs/9.6/static/collation.html)\nfor more details and supported values. Postgres databases only support\na value of 'en_US.UTF8' at creation time.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description":"The name of the Cloud SQL instance. This does not include the project\nID.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the database in the Cloud SQL instance.\nThis does not include the project ID or instance name.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_sql_database_instance":{"version":0,"block":{"attributes":{"connection_name":{"type":"string","description":"The connection name of the instance to be used in connection strings. For example, when connecting with Cloud SQL Proxy.","description_kind":"plain","computed":true},"database_version":{"type":"string","description":"The MySQL, PostgreSQL or SQL Server (beta) version to use. Supported values include MYSQL_5_6, MYSQL_5_7, MYSQL_8_0, POSTGRES_9_6, POSTGRES_10, POSTGRES_11, POSTGRES_12, POSTGRES_13, SQLSERVER_2017_STANDARD, SQLSERVER_2017_ENTERPRISE, SQLSERVER_2017_EXPRESS, SQLSERVER_2017_WEB. Database Version Policies includes an up-to-date reference of supported versions.","description_kind":"plain","required":true},"deletion_protection":{"type":"bool","description":"Used to block Terraform from deleting a SQL Instance.","description_kind":"plain","optional":true},"first_ip_address":{"type":"string","description":"The first IPv4 address of any type assigned. This is to support accessing the first address in the list in a terraform output when the resource is configured with a count.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":["list",["object",{"ip_address":"string","time_to_retire":"string","type":"string"}]],"description_kind":"plain","computed":true},"master_instance_name":{"type":"string","description":"The name of the instance that will act as the master in the replication setup. Note, this requires the master to have binary_log_enabled set, as well as existing backups.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the instance. If the name is left blank, Terraform will randomly generate one when the instance is first created. This is done because after a name is used, it cannot be reused for up to one week.","description_kind":"plain","optional":true,"computed":true},"private_ip_address":{"type":"string","description":"IPv4 address assigned. This is a workaround for an issue fixed in Terraform 0.12 but also provides a convenient way to access an IP of a specific type without performing filtering in a Terraform config.","description_kind":"plain","computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"public_ip_address":{"type":"string","description":"IPv4 address assigned. This is a workaround for an issue fixed in Terraform 0.12 but also provides a convenient way to access an IP of a specific type without performing filtering in a Terraform config.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region the instance will sit in. Note, Cloud SQL is not available in all regions. A valid region must be provided to use this resource. If a region is not provided in the resource definition, the provider region will be used instead, but this will be an apply-time error for instances if the provider region is not supported with Cloud SQL. If you choose not to provide the region argument for this resource, make sure you understand this.","description_kind":"plain","optional":true,"computed":true},"root_password":{"type":"string","description":"Initial root password. Required for MS SQL Server, ignored by MySQL and PostgreSQL.","description_kind":"plain","optional":true,"sensitive":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"server_ca_cert":{"type":["list",["object",{"cert":"string","common_name":"string","create_time":"string","expiration_time":"string","sha1_fingerprint":"string"}]],"description_kind":"plain","computed":true},"service_account_email_address":{"type":"string","description":"The service account email address assigned to the instance.","description_kind":"plain","computed":true}},"block_types":{"clone":{"nesting_mode":"list","block":{"attributes":{"point_in_time":{"type":"string","description":"The timestamp of the point in time that should be restored.","description_kind":"plain","optional":true},"source_instance_name":{"type":"string","description":"The name of the instance from which the point in time should be restored.","description_kind":"plain","required":true}},"description":"Configuration for creating a new instance as a clone of another instance.","description_kind":"plain"},"max_items":1},"replica_configuration":{"nesting_mode":"list","block":{"attributes":{"ca_certificate":{"type":"string","description":"PEM representation of the trusted CA's x509 certificate.","description_kind":"plain","optional":true},"client_certificate":{"type":"string","description":"PEM representation of the replica's x509 certificate.","description_kind":"plain","optional":true},"client_key":{"type":"string","description":"PEM representation of the replica's private key. The corresponding public key in encoded in the client_certificate.","description_kind":"plain","optional":true},"connect_retry_interval":{"type":"number","description":"The number of seconds between connect retries.","description_kind":"plain","optional":true},"dump_file_path":{"type":"string","description":"Path to a SQL file in Google Cloud Storage from which replica instances are created. Format is gs://bucket/filename.","description_kind":"plain","optional":true},"failover_target":{"type":"bool","description":"Specifies if the replica is the failover target. If the field is set to true the replica will be designated as a failover replica. If the master instance fails, the replica instance will be promoted as the new master instance.","description_kind":"plain","optional":true},"master_heartbeat_period":{"type":"number","description":"Time in ms between replication heartbeats.","description_kind":"plain","optional":true},"password":{"type":"string","description":"Password for the replication connection.","description_kind":"plain","optional":true,"sensitive":true},"ssl_cipher":{"type":"string","description":"Permissible ciphers for use in SSL encryption.","description_kind":"plain","optional":true},"username":{"type":"string","description":"Username for replication connection.","description_kind":"plain","optional":true},"verify_server_certificate":{"type":"bool","description":"True if the master's common name value is checked during the SSL handshake.","description_kind":"plain","optional":true}},"description":"The configuration for replication.","description_kind":"plain"},"max_items":1},"restore_backup_context":{"nesting_mode":"list","block":{"attributes":{"backup_run_id":{"type":"number","description":"The ID of the backup run to restore from.","description_kind":"plain","required":true},"instance_id":{"type":"string","description":"The ID of the instance that the backup was taken from.","description_kind":"plain","optional":true},"project":{"type":"string","description":"The full project ID of the source instance.","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"settings":{"nesting_mode":"list","block":{"attributes":{"activation_policy":{"type":"string","description":"This specifies when the instance should be active. Can be either ALWAYS, NEVER or ON_DEMAND.","description_kind":"plain","optional":true},"availability_type":{"type":"string","description":"The availability type of the Cloud SQL instance, high availability\n(REGIONAL) or single zone (ZONAL). For MySQL instances, ensure that\nsettings.backup_configuration.enabled and\nsettings.backup_configuration.binary_log_enabled are both set to true.","description_kind":"plain","optional":true},"collation":{"type":"string","description":"The name of server instance collation.","description_kind":"plain","optional":true},"disk_autoresize":{"type":"bool","description":"Configuration to increase storage size automatically. Note that future terraform apply calls will attempt to resize the disk to the value specified in disk_size - if this is set, do not set disk_size.","description_kind":"plain","optional":true},"disk_autoresize_limit":{"type":"number","description":"The maximum size, in GB, to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.","description_kind":"plain","optional":true},"disk_size":{"type":"number","description":"The size of data disk, in GB. Size of a running instance cannot be reduced but can be increased.","description_kind":"plain","optional":true,"computed":true},"disk_type":{"type":"string","description":"The type of data disk: PD_SSD or PD_HDD.","description_kind":"plain","optional":true},"pricing_plan":{"type":"string","description":"Pricing plan for this instance, can only be PER_USE.","description_kind":"plain","optional":true},"tier":{"type":"string","description":"The machine type to use. See tiers for more details and supported versions. Postgres supports only shared-core machine types, and custom machine types such as db-custom-2-13312. See the Custom Machine Type Documentation to learn about specifying custom machine types.","description_kind":"plain","required":true},"user_labels":{"type":["map","string"],"description":"A set of key/value user label pairs to assign to the instance.","description_kind":"plain","optional":true,"computed":true},"version":{"type":"number","description":"Used to make sure changes to the settings block are atomic.","description_kind":"plain","computed":true}},"block_types":{"backup_configuration":{"nesting_mode":"list","block":{"attributes":{"binary_log_enabled":{"type":"bool","description":"True if binary logging is enabled. If settings.backup_configuration.enabled is false, this must be as well. Cannot be used with Postgres.","description_kind":"plain","optional":true},"enabled":{"type":"bool","description":"True if backup configuration is enabled.","description_kind":"plain","optional":true},"location":{"type":"string","description":"Location of the backup configuration.","description_kind":"plain","optional":true},"point_in_time_recovery_enabled":{"type":"bool","description":"True if Point-in-time recovery is enabled.","description_kind":"plain","optional":true},"start_time":{"type":"string","description":"HH:MM format time indicating when backup configuration starts.","description_kind":"plain","optional":true,"computed":true},"transaction_log_retention_days":{"type":"number","description":"The number of days of transaction logs we retain for point in time restore, from 1-7.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"backup_retention_settings":{"nesting_mode":"list","block":{"attributes":{"retained_backups":{"type":"number","description":"Number of backups to retain.","description_kind":"plain","required":true},"retention_unit":{"type":"string","description":"The unit that 'retainedBackups' represents. Defaults to COUNT","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"database_flags":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the flag.","description_kind":"plain","required":true},"value":{"type":"string","description":"Value of the flag.","description_kind":"plain","required":true}},"description_kind":"plain"}},"insights_config":{"nesting_mode":"list","block":{"attributes":{"query_insights_enabled":{"type":"bool","description":"True if Query Insights feature is enabled.","description_kind":"plain","optional":true},"query_string_length":{"type":"number","description":"Maximum query length stored in bytes. Between 256 and 4500. Default to 1024.","description_kind":"plain","optional":true},"record_application_tags":{"type":"bool","description":"True if Query Insights will record application tags from query when enabled.","description_kind":"plain","optional":true},"record_client_address":{"type":"bool","description":"True if Query Insights will record client address when enabled.","description_kind":"plain","optional":true}},"description":"Configuration of Query Insights.","description_kind":"plain"},"max_items":1},"ip_configuration":{"nesting_mode":"list","block":{"attributes":{"ipv4_enabled":{"type":"bool","description":"Whether this Cloud SQL instance should be assigned a public IPV4 address. At least ipv4_enabled must be enabled or a private_network must be configured.","description_kind":"plain","optional":true},"private_network":{"type":"string","description":"The VPC network from which the Cloud SQL instance is accessible for private IP. For example, projects/myProject/global/networks/default. Specifying a network enables private IP. At least ipv4_enabled must be enabled or a private_network must be configured. This setting can be updated, but it cannot be removed after it is set.","description_kind":"plain","optional":true},"require_ssl":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"authorized_networks":{"nesting_mode":"set","block":{"attributes":{"expiration_time":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"location_preference":{"nesting_mode":"list","block":{"attributes":{"follow_gae_application":{"type":"string","description":"A Google App Engine application whose zone to remain in. Must be in the same region as this instance.","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The preferred compute engine zone.","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"maintenance_window":{"nesting_mode":"list","block":{"attributes":{"day":{"type":"number","description":"Day of week (1-7), starting on Monday","description_kind":"plain","optional":true},"hour":{"type":"number","description":"Hour of day (0-23), ignored if day not set","description_kind":"plain","optional":true},"update_track":{"type":"string","description":"Receive updates earlier (canary) or later (stable)","description_kind":"plain","optional":true}},"description":"Declares a one-hour maintenance window when an Instance can automatically restart to apply updates. The maintenance window is specified in UTC time.","description_kind":"plain"},"max_items":1}},"description":"The settings to use for the database. The configuration is detailed below.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_sql_source_representation_instance":{"version":0,"block":{"attributes":{"database_version":{"type":"string","description":"The MySQL version running on your source database server. Possible values: [\"MYSQL_5_5\", \"MYSQL_5_6\", \"MYSQL_5_7\", \"MYSQL_8_0\"]","description_kind":"plain","required":true},"host":{"type":"string","description":"The externally accessible IPv4 address for the source database server.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the source representation instance. Use any valid Cloud SQL instance name.","description_kind":"plain","required":true},"port":{"type":"number","description":"The externally accessible port for the source database server.\nDefaults to 3306.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The Region in which the created instance should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_sql_ssl_cert":{"version":1,"block":{"attributes":{"cert":{"type":"string","description":"The actual certificate data for this client certificate.","description_kind":"plain","computed":true},"cert_serial_number":{"type":"string","description":"The serial number extracted from the certificate data.","description_kind":"plain","computed":true},"common_name":{"type":"string","description":"The common name to be used in the certificate to identify the client. Constrained to [a-zA-Z.-_ ]+. Changing this forces a new resource to be created.","description_kind":"plain","required":true},"create_time":{"type":"string","description":"The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.","description_kind":"plain","computed":true},"expiration_time":{"type":"string","description":"The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description":"The name of the Cloud SQL instance. Changing this forces a new resource to be created.","description_kind":"plain","required":true},"private_key":{"type":"string","description":"The private key associated with the client certificate.","description_kind":"plain","computed":true,"sensitive":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"server_ca_cert":{"type":"string","description":"The CA cert of the server this client cert was generated from.","description_kind":"plain","computed":true},"sha1_fingerprint":{"type":"string","description":"The SHA1 Fingerprint of the certificate.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_sql_user":{"version":1,"block":{"attributes":{"deletion_policy":{"type":"string","description":"The deletion policy for the user. Setting ABANDON allows the resource\n\t\t\t\tto be abandoned rather than deleted. This is useful for Postgres, where users cannot be deleted from the API if they\n\t\t\t\thave been granted SQL roles. Possible values are: \"ABANDON\".","description_kind":"plain","optional":true},"host":{"type":"string","description":"The host the user can connect from. This is only supported for MySQL instances. Don't set this field for PostgreSQL instances. Can be an IP address. Changing this forces a new resource to be created.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description":"The name of the Cloud SQL instance. Changing this forces a new resource to be created.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the user. Changing this forces a new resource to be created.","description_kind":"plain","required":true},"password":{"type":"string","description":"The password for the user. Can be updated. For Postgres instances this is a Required field, unless type is set to\n either CLOUD_IAM_USER or CLOUD_IAM_SERVICE_ACCOUNT.","description_kind":"plain","optional":true,"sensitive":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"The user type. It determines the method to authenticate the user during login.\n The default is the database's built-in user type. Flags include \"BUILT_IN\", \"CLOUD_IAM_USER\", or \"CLOUD_IAM_SERVICE_ACCOUNT\".","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_storage_bucket":{"version":0,"block":{"attributes":{"default_event_based_hold":{"type":"bool","description_kind":"plain","optional":true},"force_destroy":{"type":"bool","description":"When deleting a bucket, this boolean option will delete all contained objects. If you try to delete a bucket that contains objects, Terraform will fail that run.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to the bucket.","description_kind":"plain","optional":true},"location":{"type":"string","description":"The Google Cloud Storage location","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the bucket.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"requester_pays":{"type":"bool","description":"Enables Requester Pays on a storage bucket.","description_kind":"plain","optional":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"storage_class":{"type":"string","description":"The Storage Class of the new bucket. Supported values include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE.","description_kind":"plain","optional":true},"uniform_bucket_level_access":{"type":"bool","description":"Enables uniform bucket-level access on a bucket.","description_kind":"plain","optional":true,"computed":true},"url":{"type":"string","description":"The base URL of the bucket, in the format gs://\u003cbucket-name\u003e.","description_kind":"plain","computed":true}},"block_types":{"cors":{"nesting_mode":"list","block":{"attributes":{"max_age_seconds":{"type":"number","description":"The value, in seconds, to return in the Access-Control-Max-Age header used in preflight responses.","description_kind":"plain","optional":true},"method":{"type":["list","string"],"description":"The list of HTTP methods on which to include CORS response headers, (GET, OPTIONS, POST, etc) Note: \"*\" is permitted in the list of methods, and means \"any method\".","description_kind":"plain","optional":true},"origin":{"type":["list","string"],"description":"The list of Origins eligible to receive CORS response headers. Note: \"*\" is permitted in the list of origins, and means \"any Origin\".","description_kind":"plain","optional":true},"response_header":{"type":["list","string"],"description":"The list of HTTP headers other than the simple response headers to give permission for the user-agent to share across domains.","description_kind":"plain","optional":true}},"description":"The bucket's Cross-Origin Resource Sharing (CORS) configuration.","description_kind":"plain"}},"encryption":{"nesting_mode":"list","block":{"attributes":{"default_kms_key_name":{"type":"string","description":"A Cloud KMS key that will be used to encrypt objects inserted into this bucket, if no encryption method is specified. You must pay attention to whether the crypto key is available in the location that this bucket is created in. See the docs for more details.","description_kind":"plain","required":true}},"description":"The bucket's encryption configuration.","description_kind":"plain"},"max_items":1},"lifecycle_rule":{"nesting_mode":"list","block":{"block_types":{"action":{"nesting_mode":"set","block":{"attributes":{"storage_class":{"type":"string","description":"The target Storage Class of objects affected by this Lifecycle Rule. Supported values include: MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE.","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of the action of this Lifecycle Rule. Supported values include: Delete and SetStorageClass.","description_kind":"plain","required":true}},"description":"The Lifecycle Rule's action configuration. A single block of this type is supported.","description_kind":"plain"},"min_items":1,"max_items":1},"condition":{"nesting_mode":"set","block":{"attributes":{"age":{"type":"number","description":"Minimum age of an object in days to satisfy this condition.","description_kind":"plain","optional":true},"created_before":{"type":"string","description":"Creation date of an object in RFC 3339 (e.g. 2017-06-13) to satisfy this condition.","description_kind":"plain","optional":true},"custom_time_before":{"type":"string","description":"Creation date of an object in RFC 3339 (e.g. 2017-06-13) to satisfy this condition.","description_kind":"plain","optional":true},"days_since_custom_time":{"type":"number","description":"Number of days elapsed since the user-specified timestamp set on an object.","description_kind":"plain","optional":true},"days_since_noncurrent_time":{"type":"number","description":"Number of days elapsed since the noncurrent timestamp of an object. This\n\t\t\t\t\t\t\t\t\t\tcondition is relevant only for versioned objects.","description_kind":"plain","optional":true},"matches_storage_class":{"type":["list","string"],"description":"Storage Class of objects to satisfy this condition. Supported values include: MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE, STANDARD, DURABLE_REDUCED_AVAILABILITY.","description_kind":"plain","optional":true},"noncurrent_time_before":{"type":"string","description":"Creation date of an object in RFC 3339 (e.g. 2017-06-13) to satisfy this condition.","description_kind":"plain","optional":true},"num_newer_versions":{"type":"number","description":"Relevant only for versioned objects. The number of newer versions of an object to satisfy this condition.","description_kind":"plain","optional":true},"with_state":{"type":"string","description":"Match to live and/or archived objects. Unversioned buckets have only live objects. Supported values include: \"LIVE\", \"ARCHIVED\", \"ANY\".","description_kind":"plain","optional":true,"computed":true}},"description":"The Lifecycle Rule's condition configuration.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"The bucket's Lifecycle Rules configuration.","description_kind":"plain"},"max_items":100},"logging":{"nesting_mode":"list","block":{"attributes":{"log_bucket":{"type":"string","description":"The bucket that will receive log objects.","description_kind":"plain","required":true},"log_object_prefix":{"type":"string","description":"The object prefix for log objects. If it's not provided, by default Google Cloud Storage sets this to this bucket's name.","description_kind":"plain","optional":true,"computed":true}},"description":"The bucket's Access \u0026 Storage Logs configuration.","description_kind":"plain"},"max_items":1},"retention_policy":{"nesting_mode":"list","block":{"attributes":{"is_locked":{"type":"bool","description":"If set to true, the bucket will be locked and permanently restrict edits to the bucket's retention policy. Caution: Locking a bucket is an irreversible action.","description_kind":"plain","optional":true},"retention_period":{"type":"number","description":"The period of time, in seconds, that objects in the bucket must be retained and cannot be deleted, overwritten, or archived. The value must be less than 3,155,760,000 seconds.","description_kind":"plain","required":true}},"description":"Configuration of the bucket's data retention policy for how long objects in the bucket should be retained.","description_kind":"plain"},"max_items":1},"versioning":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"While set to true, versioning is fully enabled for this bucket.","description_kind":"plain","required":true}},"description":"The bucket's Versioning configuration.","description_kind":"plain"},"max_items":1},"website":{"nesting_mode":"list","block":{"attributes":{"main_page_suffix":{"type":"string","description":"Behaves as the bucket's directory index where missing objects are treated as potential directories.","description_kind":"plain","optional":true},"not_found_page":{"type":"string","description":"The custom object to return when a requested resource is not found.","description_kind":"plain","optional":true}},"description":"Configuration if the bucket acts as a website.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_storage_bucket_access_control":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The name of the bucket.","description_kind":"plain","required":true},"domain":{"type":"string","description":"The domain associated with the entity.","description_kind":"plain","computed":true},"email":{"type":"string","description":"The email address associated with the entity.","description_kind":"plain","computed":true},"entity":{"type":"string","description":"The entity holding the permission, in one of the following forms:\n user-userId\n user-email\n group-groupId\n group-email\n domain-domain\n project-team-projectId\n allUsers\n allAuthenticatedUsers\nExamples:\n The user liz@example.com would be user-liz@example.com.\n The group example@googlegroups.com would be\n group-example@googlegroups.com.\n To refer to all members of the Google Apps for Business domain\n example.com, the entity would be domain-example.com.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description":"The access permission for the entity. Possible values: [\"OWNER\", \"READER\", \"WRITER\"]","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_storage_bucket_acl":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The name of the bucket it applies to.","description_kind":"plain","required":true},"default_acl":{"type":"string","description":"Configure this ACL to be the default ACL.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"predefined_acl":{"type":"string","description":"The canned GCS ACL to apply. Must be set if role_entity is not.","description_kind":"plain","optional":true},"role_entity":{"type":["list","string"],"description":"List of role/entity pairs in the form ROLE:entity. See GCS Bucket ACL documentation for more details. Must be set if predefined_acl is not.","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_storage_bucket_iam_binding":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_storage_bucket_iam_member":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_storage_bucket_iam_policy":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_storage_bucket_object":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The name of the containing bucket.","description_kind":"plain","required":true},"cache_control":{"type":"string","description":"Cache-Control directive to specify caching behavior of object data. If omitted and object is accessible to all anonymous users, the default will be public, max-age=3600","description_kind":"plain","optional":true},"content":{"type":"string","description":"Data as string to be uploaded. Must be defined if source is not. Note: The content field is marked as sensitive. To view the raw contents of the object, please define an output.","description_kind":"plain","optional":true,"sensitive":true},"content_disposition":{"type":"string","description":"Content-Disposition of the object data.","description_kind":"plain","optional":true},"content_encoding":{"type":"string","description":"Content-Encoding of the object data.","description_kind":"plain","optional":true},"content_language":{"type":"string","description":"Content-Language of the object data.","description_kind":"plain","optional":true},"content_type":{"type":"string","description":"Content-Type of the object data. Defaults to \"application/octet-stream\" or \"text/plain; charset=utf-8\".","description_kind":"plain","optional":true,"computed":true},"crc32c":{"type":"string","description":"Base 64 CRC32 hash of the uploaded data.","description_kind":"plain","computed":true},"detect_md5hash":{"type":"string","description_kind":"plain","optional":true},"event_based_hold":{"type":"bool","description":"Whether an object is under event-based hold. Event-based hold is a way to retain objects until an event occurs, which is signified by the hold's release (i.e. this value is set to false). After being released (set to false), such objects will be subject to bucket-level retention (if any).","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kms_key_name":{"type":"string","description":"Resource name of the Cloud KMS key that will be used to encrypt the object. Overrides the object metadata's kmsKeyName value, if any.","description_kind":"plain","optional":true,"computed":true},"md5hash":{"type":"string","description":"Base 64 MD5 hash of the uploaded data.","description_kind":"plain","computed":true},"media_link":{"type":"string","description":"A url reference to download this object.","description_kind":"plain","computed":true},"metadata":{"type":["map","string"],"description":"User-provided metadata, in key/value pairs.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the object. If you're interpolating the name of this object, see output_name instead.","description_kind":"plain","required":true},"output_name":{"type":"string","description":"The name of the object. Use this field in interpolations with google_storage_object_acl to recreate google_storage_object_acl resources when your google_storage_bucket_object is recreated.","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"A url reference to this object.","description_kind":"plain","computed":true},"source":{"type":"string","description":"A path to the data you want to upload. Must be defined if content is not.","description_kind":"plain","optional":true},"storage_class":{"type":"string","description":"The StorageClass of the new bucket object. Supported values include: MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE. If not provided, this defaults to the bucket's default storage class or to a standard class.","description_kind":"plain","optional":true,"computed":true},"temporary_hold":{"type":"bool","description":"Whether an object is under temporary hold. While this flag is set to true, the object is protected against deletion and overwrites.","description_kind":"plain","optional":true}},"block_types":{"customer_encryption":{"nesting_mode":"list","block":{"attributes":{"encryption_algorithm":{"type":"string","description":"The encryption algorithm. Default: AES256","description_kind":"plain","optional":true},"encryption_key":{"type":"string","description":"Base64 encoded customer supplied encryption key.","description_kind":"plain","required":true,"sensitive":true}},"description":"Encryption key; encoded using base64.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_storage_default_object_access_control":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The name of the bucket.","description_kind":"plain","required":true},"domain":{"type":"string","description":"The domain associated with the entity.","description_kind":"plain","computed":true},"email":{"type":"string","description":"The email address associated with the entity.","description_kind":"plain","computed":true},"entity":{"type":"string","description":"The entity holding the permission, in one of the following forms:\n * user-{{userId}}\n * user-{{email}} (such as \"user-liz@example.com\")\n * group-{{groupId}}\n * group-{{email}} (such as \"group-example@googlegroups.com\")\n * domain-{{domain}} (such as \"domain-example.com\")\n * project-team-{{projectId}}\n * allUsers\n * allAuthenticatedUsers","description_kind":"plain","required":true},"entity_id":{"type":"string","description":"The ID for the entity","description_kind":"plain","computed":true},"generation":{"type":"number","description":"The content generation of the object, if applied to an object.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"object":{"type":"string","description":"The name of the object, if applied to an object.","description_kind":"plain","optional":true},"project_team":{"type":["list",["object",{"project_number":"string","team":"string"}]],"description":"The project team associated with the entity","description_kind":"plain","computed":true},"role":{"type":"string","description":"The access permission for the entity. Possible values: [\"OWNER\", \"READER\"]","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_storage_default_object_acl":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role_entity":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_storage_hmac_key":{"version":0,"block":{"attributes":{"access_id":{"type":"string","description":"The access ID of the HMAC Key.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secret":{"type":"string","description":"HMAC secret key material.","description_kind":"plain","computed":true,"sensitive":true},"service_account_email":{"type":"string","description":"The email address of the key's associated service account.","description_kind":"plain","required":true},"state":{"type":"string","description":"The state of the key. Can be set to one of ACTIVE, INACTIVE. Default value: \"ACTIVE\" Possible values: [\"ACTIVE\", \"INACTIVE\"]","description_kind":"plain","optional":true},"time_created":{"type":"string","description":"'The creation time of the HMAC key in RFC 3339 format. '","description_kind":"plain","computed":true},"updated":{"type":"string","description":"'The last modification time of the HMAC key metadata in RFC 3339 format.'","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_storage_notification":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The name of the bucket.","description_kind":"plain","required":true},"custom_attributes":{"type":["map","string"],"description":" A set of key/value attribute pairs to attach to each Cloud Pub/Sub message published for this notification subscription","description_kind":"plain","optional":true},"event_types":{"type":["set","string"],"description":"List of event type filters for this notification config. If not specified, Cloud Storage will send notifications for all event types. The valid types are: \"OBJECT_FINALIZE\", \"OBJECT_METADATA_UPDATE\", \"OBJECT_DELETE\", \"OBJECT_ARCHIVE\"","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"notification_id":{"type":"string","description":"The ID of the created notification.","description_kind":"plain","computed":true},"object_name_prefix":{"type":"string","description":"Specifies a prefix path filter for this notification config. Cloud Storage will only send notifications for objects in this bucket whose names begin with the specified prefix.","description_kind":"plain","optional":true},"payload_format":{"type":"string","description":"The desired content of the Payload. One of \"JSON_API_V1\" or \"NONE\".","description_kind":"plain","required":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"topic":{"type":"string","description":"The Cloud Pub/Sub topic to which this subscription publishes. Expects either the topic name, assumed to belong to the default GCP provider project, or the project-level name, i.e. projects/my-gcp-project/topics/my-topic or my-topic. If the project is not set in the provider, you will need to use the project-level name.","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_storage_object_access_control":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The name of the bucket.","description_kind":"plain","required":true},"domain":{"type":"string","description":"The domain associated with the entity.","description_kind":"plain","computed":true},"email":{"type":"string","description":"The email address associated with the entity.","description_kind":"plain","computed":true},"entity":{"type":"string","description":"The entity holding the permission, in one of the following forms:\n * user-{{userId}}\n * user-{{email}} (such as \"user-liz@example.com\")\n * group-{{groupId}}\n * group-{{email}} (such as \"group-example@googlegroups.com\")\n * domain-{{domain}} (such as \"domain-example.com\")\n * project-team-{{projectId}}\n * allUsers\n * allAuthenticatedUsers","description_kind":"plain","required":true},"entity_id":{"type":"string","description":"The ID for the entity","description_kind":"plain","computed":true},"generation":{"type":"number","description":"The content generation of the object, if applied to an object.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"object":{"type":"string","description":"The name of the object to apply the access control to.","description_kind":"plain","required":true},"project_team":{"type":["list",["object",{"project_number":"string","team":"string"}]],"description":"The project team associated with the entity","description_kind":"plain","computed":true},"role":{"type":"string","description":"The access permission for the entity. Possible values: [\"OWNER\", \"READER\"]","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_storage_object_acl":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"object":{"type":"string","description_kind":"plain","required":true},"predefined_acl":{"type":"string","description_kind":"plain","optional":true},"role_entity":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_storage_transfer_job":{"version":0,"block":{"attributes":{"creation_time":{"type":"string","description":"When the Transfer Job was created.","description_kind":"plain","computed":true},"deletion_time":{"type":"string","description":"When the Transfer Job was deleted.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Unique description to identify the Transfer Job.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_modification_time":{"type":"string","description":"When the Transfer Job was last modified.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the Transfer Job.","description_kind":"plain","computed":true},"project":{"type":"string","description":"The project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"Status of the job. Default: ENABLED. NOTE: The effect of the new job status takes place during a subsequent job run. For example, if you change the job status from ENABLED to DISABLED, and an operation spawned by the transfer is running, the status change would not affect the current operation.","description_kind":"plain","optional":true}},"block_types":{"schedule":{"nesting_mode":"list","block":{"block_types":{"schedule_end_date":{"nesting_mode":"list","block":{"attributes":{"day":{"type":"number","description":"Day of month. Must be from 1 to 31 and valid for the year and month.","description_kind":"plain","required":true},"month":{"type":"number","description":"Month of year. Must be from 1 to 12.","description_kind":"plain","required":true},"year":{"type":"number","description":"Year of date. Must be from 1 to 9999.","description_kind":"plain","required":true}},"description":"The last day the recurring transfer will be run. If schedule_end_date is the same as schedule_start_date, the transfer will be executed only once.","description_kind":"plain"},"max_items":1},"schedule_start_date":{"nesting_mode":"list","block":{"attributes":{"day":{"type":"number","description":"Day of month. Must be from 1 to 31 and valid for the year and month.","description_kind":"plain","required":true},"month":{"type":"number","description":"Month of year. Must be from 1 to 12.","description_kind":"plain","required":true},"year":{"type":"number","description":"Year of date. Must be from 1 to 9999.","description_kind":"plain","required":true}},"description":"The first day the recurring transfer is scheduled to run. If schedule_start_date is in the past, the transfer will run for the first time on the following day.","description_kind":"plain"},"min_items":1,"max_items":1},"start_time_of_day":{"nesting_mode":"list","block":{"attributes":{"hours":{"type":"number","description":"Hours of day in 24 hour format. Should be from 0 to 23.","description_kind":"plain","required":true},"minutes":{"type":"number","description":"Minutes of hour of day. Must be from 0 to 59.","description_kind":"plain","required":true},"nanos":{"type":"number","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.","description_kind":"plain","required":true},"seconds":{"type":"number","description":"Seconds of minutes of the time. Must normally be from 0 to 59.","description_kind":"plain","required":true}},"description":"The time in UTC at which the transfer will be scheduled to start in a day. Transfers may start later than this time. If not specified, recurring and one-time transfers that are scheduled to run today will run immediately; recurring transfers that are scheduled to run on a future date will start at approximately midnight UTC on that date. Note that when configuring a transfer with the Cloud Platform Console, the transfer's start time in a day is specified in your local timezone.","description_kind":"plain"},"max_items":1}},"description":"Schedule specification defining when the Transfer Job should be scheduled to start, end and what time to run.","description_kind":"plain"},"min_items":1,"max_items":1},"transfer_spec":{"nesting_mode":"list","block":{"block_types":{"aws_s3_data_source":{"nesting_mode":"list","block":{"attributes":{"bucket_name":{"type":"string","description":"S3 Bucket name.","description_kind":"plain","required":true}},"block_types":{"aws_access_key":{"nesting_mode":"list","block":{"attributes":{"access_key_id":{"type":"string","description":"AWS Key ID.","description_kind":"plain","required":true,"sensitive":true},"secret_access_key":{"type":"string","description":"AWS Secret Access Key.","description_kind":"plain","required":true,"sensitive":true}},"description":"AWS credentials block.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"An AWS S3 data source.","description_kind":"plain"},"max_items":1},"azure_blob_storage_data_source":{"nesting_mode":"list","block":{"attributes":{"container":{"type":"string","description":"The container to transfer from the Azure Storage account.","description_kind":"plain","required":true},"path":{"type":"string","description":"Root path to transfer objects. Must be an empty string or full path name that ends with a '/'. This field is treated as an object prefix. As such, it should generally not begin with a '/'.","description_kind":"plain","optional":true,"computed":true},"storage_account":{"type":"string","description":"The name of the Azure Storage account.","description_kind":"plain","required":true}},"block_types":{"azure_credentials":{"nesting_mode":"list","block":{"attributes":{"sas_token":{"type":"string","description":"Azure shared access signature.","description_kind":"plain","required":true,"sensitive":true}},"description":" Credentials used to authenticate API requests to Azure.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"An Azure Blob Storage data source.","description_kind":"plain"},"max_items":1},"gcs_data_sink":{"nesting_mode":"list","block":{"attributes":{"bucket_name":{"type":"string","description":"Google Cloud Storage bucket name.","description_kind":"plain","required":true},"path":{"type":"string","description":"Google Cloud Storage path in bucket to transfer","description_kind":"plain","optional":true,"computed":true}},"description":"A Google Cloud Storage data sink.","description_kind":"plain"},"max_items":1},"gcs_data_source":{"nesting_mode":"list","block":{"attributes":{"bucket_name":{"type":"string","description":"Google Cloud Storage bucket name.","description_kind":"plain","required":true},"path":{"type":"string","description":"Google Cloud Storage path in bucket to transfer","description_kind":"plain","optional":true,"computed":true}},"description":"A Google Cloud Storage data source.","description_kind":"plain"},"max_items":1},"http_data_source":{"nesting_mode":"list","block":{"attributes":{"list_url":{"type":"string","description":"The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported.","description_kind":"plain","required":true}},"description":"A HTTP URL data source.","description_kind":"plain"},"max_items":1},"object_conditions":{"nesting_mode":"list","block":{"attributes":{"exclude_prefixes":{"type":["list","string"],"description":"exclude_prefixes must follow the requirements described for include_prefixes.","description_kind":"plain","optional":true},"include_prefixes":{"type":["list","string"],"description":"If include_refixes is specified, objects that satisfy the object conditions must have names that start with one of the include_prefixes and that do not start with any of the exclude_prefixes. If include_prefixes is not specified, all objects except those that have names starting with one of the exclude_prefixes must satisfy the object conditions.","description_kind":"plain","optional":true},"max_time_elapsed_since_last_modification":{"type":"string","description":"A duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true},"min_time_elapsed_since_last_modification":{"type":"string","description":"A duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true}},"description":"Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects' last_modification_time do not exclude objects in a data sink.","description_kind":"plain"},"max_items":1},"transfer_options":{"nesting_mode":"list","block":{"attributes":{"delete_objects_from_source_after_transfer":{"type":"bool","description":"Whether objects should be deleted from the source after they are transferred to the sink. Note that this option and delete_objects_unique_in_sink are mutually exclusive.","description_kind":"plain","optional":true},"delete_objects_unique_in_sink":{"type":"bool","description":"Whether objects that exist only in the sink should be deleted. Note that this option and delete_objects_from_source_after_transfer are mutually exclusive.","description_kind":"plain","optional":true},"overwrite_objects_already_existing_in_sink":{"type":"bool","description":"Whether overwriting objects that already exist in the sink is allowed.","description_kind":"plain","optional":true}},"description":"Characteristics of how to treat files from datasource and sink during job. If the option delete_objects_unique_in_sink is true, object conditions based on objects' last_modification_time are ignored and do not exclude objects in a data source or a data sink.","description_kind":"plain"},"max_items":1}},"description":"Transfer specification.","description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"google_tags_tag_binding":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The generated id for the TagBinding. This is a string of the form: 'tagBindings/{full-resource-name}/{tag-value-name}'","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The full resource name of the resource the TagValue is bound to. E.g. //cloudresourcemanager.googleapis.com/projects/123","description_kind":"plain","required":true},"tag_value":{"type":"string","description":"The TagValue of the TagBinding. Must be of the form tagValues/456.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_tags_tag_key":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Output only. Creation time.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"description":{"type":"string","description":"User-assigned description of the TagKey. Must not exceed 256 characters.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The generated numeric id for the TagKey.","description_kind":"plain","computed":true},"namespaced_name":{"type":"string","description":"Output only. Namespaced name of the TagKey.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"Input only. The resource name of the new TagKey's parent. Must be of the form organizations/{org_id}.","description_kind":"plain","required":true},"short_name":{"type":"string","description":"Input only. The user friendly name for a TagKey. The short name should be unique for TagKeys within the same tag namespace.\n\nThe short name must be 1-63 characters, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between.","description_kind":"plain","required":true},"update_time":{"type":"string","description":"Output only. Update time.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_tags_tag_key_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true},"tag_key":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_tags_tag_key_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true},"tag_key":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_tags_tag_key_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"tag_key":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_tags_tag_value":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Output only. Creation time.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"description":{"type":"string","description":"User-assigned description of the TagValue. Must not exceed 256 characters.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The generated numeric id for the TagValue.","description_kind":"plain","computed":true},"namespaced_name":{"type":"string","description":"Output only. Namespaced name of the TagValue. Will be in the format {organizationId}/{tag_key_short_name}/{shortName}.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"Input only. The resource name of the new TagValue's parent. Must be of the form tagKeys/{tag_key_id}.","description_kind":"plain","required":true},"short_name":{"type":"string","description":"Input only. User-assigned short name for TagValue. The short name should be unique for TagValues within the same parent TagKey.\n\nThe short name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between.","description_kind":"plain","required":true},"update_time":{"type":"string","description":"Output only. Update time.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_tags_tag_value_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true},"tag_value":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_tags_tag_value_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true},"tag_value":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_tags_tag_value_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"tag_value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_tpu_node":{"version":0,"block":{"attributes":{"accelerator_type":{"type":"string","description":"The type of hardware accelerators associated with this node.","description_kind":"plain","required":true},"cidr_block":{"type":"string","description":"The CIDR block that the TPU node will use when selecting an IP\naddress. This CIDR block must be a /29 block; the Compute Engine\nnetworks API forbids a smaller block, and using a larger block would\nbe wasteful (a node can only consume one IP address).\n\nErrors will occur if the CIDR block has already been used for a\ncurrently existing TPU node, the CIDR block conflicts with any\nsubnetworks in the user's provided network, or the provided network\nis peered with another network that is using that CIDR block.","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description":"The user-supplied description of the TPU. Maximum of 512 characters.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Resource labels to represent user provided metadata.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The immutable name of the TPU.","description_kind":"plain","required":true},"network":{"type":"string","description":"The name of a network to peer the TPU node to. It must be a\npreexisting Compute Engine network inside of the project on which\nthis API has been activated. If none is provided, \"default\" will be\nused.","description_kind":"plain","optional":true,"computed":true},"network_endpoints":{"type":["list",["object",{"ip_address":"string","port":"number"}]],"description":"The network endpoints where TPU workers can be accessed and sent work.\nIt is recommended that Tensorflow clients of the node first reach out\nto the first (index 0) entry.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_account":{"type":"string","description":"The service account used to run the tensor flow services within the\nnode. To share resources, including Google Cloud Storage data, with\nthe Tensorflow job running in the Node, this account must have\npermissions to that data.","description_kind":"plain","computed":true},"tensorflow_version":{"type":"string","description":"The version of Tensorflow running in the Node.","description_kind":"plain","required":true},"use_service_networking":{"type":"bool","description":"Whether the VPC peering for the node is set up through Service Networking API.\nThe VPC Peering should be set up before provisioning the node. If this field is set,\ncidr_block field should not be specified. If the network that you want to peer the\nTPU Node to is a Shared VPC network, the node must be created with this this field enabled.","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The GCP location for the TPU. If it is not provided, the provider zone is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"scheduling_config":{"nesting_mode":"list","block":{"attributes":{"preemptible":{"type":"bool","description":"Defines whether the TPU instance is preemptible.","description_kind":"plain","required":true}},"description":"Sets the scheduling options for this TPU instance.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_vertex_ai_dataset":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"The timestamp of when the dataset was created in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits.","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"The user-defined name of the Dataset. The name can be up to 128 characters long and can be consist of any UTF-8 characters.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to this Workflow.","description_kind":"plain","optional":true,"computed":true},"metadata_schema_uri":{"type":"string","description":"Points to a YAML file stored on Google Cloud Storage describing additional information about the Dataset. The schema is defined as an OpenAPI 3.0.2 Schema Object. The schema files that can be used here are found in gs://google-cloud-aiplatform/schema/dataset/metadata/.","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name of the Dataset. This value is set by Google.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region of the dataset. eg us-central1","description_kind":"plain","optional":true,"computed":true},"update_time":{"type":"string","description":"The timestamp of when the dataset was last updated in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits.","description_kind":"plain","computed":true}},"block_types":{"encryption_spec":{"nesting_mode":"list","block":{"attributes":{"kms_key_name":{"type":"string","description":"Required. The Cloud KMS resource identifier of the customer managed encryption key used to protect a resource. \nHas the form: projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key. The key needs to be in the same region as where the resource is created.","description_kind":"plain","optional":true}},"description":"Customer-managed encryption key spec for a Dataset. If set, this Dataset and all sub-resources of this Dataset will be secured by this key.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_vpc_access_connector":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_cidr_range":{"type":"string","description":"The range of internal addresses that follows RFC 4632 notation. Example: '10.132.0.0/28'.","description_kind":"plain","optional":true},"max_throughput":{"type":"number","description":"Maximum throughput of the connector in Mbps, must be greater than 'min_throughput'. Default is 300.","description_kind":"plain","optional":true},"min_throughput":{"type":"number","description":"Minimum throughput of the connector in Mbps. Default and min is 200.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the resource (Max 25 characters).","description_kind":"plain","required":true},"network":{"type":"string","description":"Name of the VPC network. Required if 'ip_cidr_range' is set.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region where the VPC Access connector resides. If it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"The fully qualified name of this VPC connector","description_kind":"plain","computed":true},"state":{"type":"string","description":"State of the VPC access connector.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_workflows_workflow":{"version":1,"block":{"attributes":{"create_time":{"type":"string","description":"The timestamp of when the workflow was created in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the workflow provided by the user. Must be at most 1000 unicode characters long.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to this Workflow.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the Workflow.","description_kind":"plain","optional":true,"computed":true},"name_prefix":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region of the workflow.","description_kind":"plain","optional":true},"revision_id":{"type":"string","description":"The revision of the workflow. A new one is generated if the service account or source contents is changed.","description_kind":"plain","computed":true},"service_account":{"type":"string","description":"Name of the service account associated with the latest workflow version. This service\naccount represents the identity of the workflow and determines what permissions the workflow has.\n\nFormat: projects/{project}/serviceAccounts/{account}.","description_kind":"plain","optional":true,"computed":true},"source_contents":{"type":"string","description":"Workflow code to be executed. The size limit is 32KB.","description_kind":"plain","optional":true},"state":{"type":"string","description":"State of the workflow deployment.","description_kind":"plain","computed":true},"update_time":{"type":"string","description":"The timestamp of when the workflow was last updated in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"data_source_schemas":{"google_active_folder":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"parent":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_app_engine_default_service_account":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description_kind":"plain","computed":true},"email":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"unique_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_bigquery_default_service_account":{"version":0,"block":{"attributes":{"email":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_billing_account":{"version":0,"block":{"attributes":{"billing_account":{"type":"string","description_kind":"plain","optional":true},"display_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"open":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"project_ids":{"type":["set","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_client_config":{"version":0,"block":{"attributes":{"access_token":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"zone":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_client_openid_userinfo":{"version":0,"block":{"attributes":{"email":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_cloud_identity_group_memberships":{"version":0,"block":{"attributes":{"group":{"type":"string","description":"The name of the Group to get memberships from.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"memberships":{"type":["list",["object",{"create_time":"string","group":"string","name":"string","preferred_member_key":["list",["object",{"id":"string","namespace":"string"}]],"roles":["set",["object",{"name":"string"}]],"type":"string","update_time":"string"}]],"description":"List of Cloud Identity group memberships.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_cloud_identity_groups":{"version":0,"block":{"attributes":{"groups":{"type":["list",["object",{"create_time":"string","description":"string","display_name":"string","group_key":["list",["object",{"id":"string","namespace":"string"}]],"initial_group_config":"string","labels":["map","string"],"name":"string","parent":"string","update_time":"string"}]],"description":"List of Cloud Identity groups.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"parent":{"type":"string","description":"The resource name of the entity under which this Group resides in the\nCloud Identity resource hierarchy.\n\nMust be of the form identitysources/{identity_source_id} for external-identity-mapped\ngroups or customers/{customer_id} for Google Groups.","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_cloud_run_locations":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"locations":{"type":["list","string"],"description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_cloud_run_service":{"version":1,"block":{"attributes":{"autogenerate_revision_name":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location of the cloud run instance. eg us-central1","description_kind":"plain","required":true},"metadata":{"type":["list",["object",{"annotations":["map","string"],"generation":"number","labels":["map","string"],"namespace":"string","resource_version":"string","self_link":"string","uid":"string"}]],"description":"Metadata associated with this Service, including name, namespace, labels,\nand annotations.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name must be unique within a namespace, within a Cloud Run region.\nIs required when creating resources. Name is primarily intended\nfor creation idempotence and configuration definition. Cannot be updated.\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true},"status":{"type":["list",["object",{"conditions":["list",["object",{"message":"string","reason":"string","status":"string","type":"string"}]],"latest_created_revision_name":"string","latest_ready_revision_name":"string","observed_generation":"number","url":"string"}]],"description":"The current status of the Service.","description_kind":"plain","computed":true},"template":{"type":["list",["object",{"metadata":["list",["object",{"annotations":["map","string"],"generation":"number","labels":["map","string"],"name":"string","namespace":"string","resource_version":"string","self_link":"string","uid":"string"}]],"spec":["list",["object",{"container_concurrency":"number","containers":["list",["object",{"args":["list","string"],"command":["list","string"],"env":["set",["object",{"name":"string","value":"string"}]],"env_from":["list",["object",{"config_map_ref":["list",["object",{"local_object_reference":["list",["object",{"name":"string"}]],"optional":"bool"}]],"prefix":"string","secret_ref":["list",["object",{"local_object_reference":["list",["object",{"name":"string"}]],"optional":"bool"}]]}]],"image":"string","ports":["list",["object",{"container_port":"number","name":"string","protocol":"string"}]],"resources":["list",["object",{"limits":["map","string"],"requests":["map","string"]}]],"working_dir":"string"}]],"service_account_name":"string","serving_state":"string","timeout_seconds":"number"}]]}]],"description":"template holds the latest specification for the Revision to\nbe stamped out. The template references the container image, and may also\ninclude labels and annotations that should be attached to the Revision.\nTo correlate a Revision, and/or to force a Revision to be created when the\nspec doesn't otherwise change, a nonce label may be provided in the\ntemplate metadata. For more details, see:\nhttps://github.com/knative/serving/blob/master/docs/client-conventions.md#associate-modifications-with-revisions\n\nCloud Run does not currently support referencing a build that is\nresponsible for materializing the container image from source.","description_kind":"plain","computed":true},"traffic":{"type":["list",["object",{"latest_revision":"bool","percent":"number","revision_name":"string"}]],"description":"Traffic specifies how to distribute traffic over a collection of Knative Revisions\nand Configurations","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_cloudfunctions_function":{"version":0,"block":{"attributes":{"available_memory_mb":{"type":"number","description":"Memory (in MB), available to the function. Default value is 256. Possible values include 128, 256, 512, 1024, etc.","description_kind":"plain","computed":true},"build_environment_variables":{"type":["map","string"],"description":" A set of key/value environment variable pairs available during build time.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the function.","description_kind":"plain","computed":true},"entry_point":{"type":"string","description":"Name of the function that will be executed when the Google Cloud Function is triggered.","description_kind":"plain","computed":true},"environment_variables":{"type":["map","string"],"description":"A set of key/value environment variable pairs to assign to the function.","description_kind":"plain","computed":true},"event_trigger":{"type":["list",["object",{"event_type":"string","failure_policy":["list",["object",{"retry":"bool"}]],"resource":"string"}]],"description":"A source that fires events in response to a condition in another service. Cannot be used with trigger_http.","description_kind":"plain","computed":true},"https_trigger_url":{"type":"string","description":"URL which triggers function execution. Returned only if trigger_http is used.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ingress_settings":{"type":"string","description":"String value that controls what traffic can reach the function. Allowed values are ALLOW_ALL and ALLOW_INTERNAL_ONLY. Changes to this field will recreate the cloud function.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to the function. Label keys must follow the requirements at https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements.","description_kind":"plain","computed":true},"max_instances":{"type":"number","description":"The limit on the maximum number of function instances that may coexist at a given time.","description_kind":"plain","computed":true},"name":{"type":"string","description":"A user-defined name of the function. Function names must be unique globally.","description_kind":"plain","required":true},"project":{"type":"string","description":"Project of the function. If it is not provided, the provider project is used.","description_kind":"plain","optional":true},"region":{"type":"string","description":"Region of function. If it is not provided, the provider region is used.","description_kind":"plain","optional":true},"runtime":{"type":"string","description":"The runtime in which the function is going to run. Eg. \"nodejs8\", \"nodejs10\", \"python37\", \"go111\".","description_kind":"plain","computed":true},"service_account_email":{"type":"string","description":" If provided, the self-provided service account to run the function with.","description_kind":"plain","computed":true},"source_archive_bucket":{"type":"string","description":"The GCS bucket containing the zip archive which contains the function.","description_kind":"plain","computed":true},"source_archive_object":{"type":"string","description":"The source archive object (file) in archive bucket.","description_kind":"plain","computed":true},"source_repository":{"type":["list",["object",{"deployed_url":"string","url":"string"}]],"description":"Represents parameters related to source repository where a function is hosted. Cannot be set alongside source_archive_bucket or source_archive_object.","description_kind":"plain","computed":true},"timeout":{"type":"number","description":"Timeout (in seconds) for the function. Default value is 60 seconds. Cannot be more than 540 seconds.","description_kind":"plain","computed":true},"trigger_http":{"type":"bool","description":"Boolean variable. Any HTTP request (of a supported type) to the endpoint will trigger function execution. Supported HTTP request types are: POST, PUT, GET, DELETE, and OPTIONS. Endpoint is returned as https_trigger_url. Cannot be used with trigger_bucket and trigger_topic.","description_kind":"plain","computed":true},"vpc_connector":{"type":"string","description":"The VPC Network Connector that this cloud function can connect to. It can be either the fully-qualified URI, or the short name of the network connector resource. The format of this field is projects/*/locations/*/connectors/*.","description_kind":"plain","computed":true},"vpc_connector_egress_settings":{"type":"string","description":"The egress settings for the connector, controlling what traffic is diverted through it. Allowed values are ALL_TRAFFIC and PRIVATE_RANGES_ONLY. Defaults to PRIVATE_RANGES_ONLY. If unset, this field preserves the previously set value.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_composer_environment":{"version":0,"block":{"attributes":{"config":{"type":["list",["object",{"airflow_uri":"string","dag_gcs_prefix":"string","gke_cluster":"string","node_config":["list",["object",{"disk_size_gb":"number","ip_allocation_policy":["list",["object",{"cluster_ipv4_cidr_block":"string","cluster_secondary_range_name":"string","services_ipv4_cidr_block":"string","services_secondary_range_name":"string","use_ip_aliases":"bool"}]],"machine_type":"string","network":"string","oauth_scopes":["set","string"],"service_account":"string","subnetwork":"string","tags":["set","string"],"zone":"string"}]],"node_count":"number","private_environment_config":["list",["object",{"cloud_sql_ipv4_cidr_block":"string","enable_private_endpoint":"bool","master_ipv4_cidr_block":"string","web_server_ipv4_cidr_block":"string"}]],"software_config":["list",["object",{"airflow_config_overrides":["map","string"],"env_variables":["map","string"],"image_version":"string","pypi_packages":["map","string"],"python_version":"string","scheduler_count":"number"}]]}]],"description":"Configuration parameters for this environment.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"User-defined labels for this environment. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])?. Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?. No more than 64 labels can be associated with a given environment. Both keys and values must be \u003c= 128 bytes in size.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the environment.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true},"region":{"type":"string","description":"The location or Compute Engine region for the environment.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_composer_image_versions":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_versions":{"type":["list",["object",{"image_version_id":"string","supported_python_versions":["list","string"]}]],"description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_compute_address":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_backend_bucket":{"version":0,"block":{"attributes":{"bucket_name":{"type":"string","description":"Cloud Storage bucket name.","description_kind":"plain","computed":true},"cdn_policy":{"type":["list",["object",{"cache_mode":"string","client_ttl":"number","default_ttl":"number","max_ttl":"number","negative_caching":"bool","negative_caching_policy":["list",["object",{"code":"number","ttl":"number"}]],"serve_while_stale":"number","signed_url_cache_max_age_sec":"number"}]],"description":"Cloud CDN configuration for this Backend Bucket.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"custom_response_headers":{"type":["list","string"],"description":"Headers that the HTTP/S load balancer should add to proxied responses.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional textual description of the resource; provided by the\nclient when the resource is created.","description_kind":"plain","computed":true},"enable_cdn":{"type":"bool","description":"If true, enable Cloud CDN for this BackendBucket.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the\nlast character, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_backend_service":{"version":1,"block":{"attributes":{"affinity_cookie_ttl_sec":{"type":"number","description":"Lifetime of cookies in seconds if session_affinity is\nGENERATED_COOKIE. If set to 0, the cookie is non-persistent and lasts\nonly until the end of the browser session (or equivalent). The\nmaximum allowed value for TTL is one day.\n\nWhen the load balancing scheme is INTERNAL, this field is not used.","description_kind":"plain","computed":true},"backend":{"type":["set",["object",{"balancing_mode":"string","capacity_scaler":"number","description":"string","group":"string","max_connections":"number","max_connections_per_endpoint":"number","max_connections_per_instance":"number","max_rate":"number","max_rate_per_endpoint":"number","max_rate_per_instance":"number","max_utilization":"number"}]],"description":"The set of backends that serve this BackendService.","description_kind":"plain","computed":true},"cdn_policy":{"type":["list",["object",{"cache_key_policy":["list",["object",{"include_host":"bool","include_protocol":"bool","include_query_string":"bool","query_string_blacklist":["set","string"],"query_string_whitelist":["set","string"]}]],"cache_mode":"string","client_ttl":"number","default_ttl":"number","max_ttl":"number","negative_caching":"bool","negative_caching_policy":["list",["object",{"code":"number","ttl":"number"}]],"serve_while_stale":"number","signed_url_cache_max_age_sec":"number"}]],"description":"Cloud CDN configuration for this BackendService.","description_kind":"plain","computed":true},"circuit_breakers":{"type":["list",["object",{"max_connections":"number","max_pending_requests":"number","max_requests":"number","max_requests_per_connection":"number","max_retries":"number"}]],"description":"Settings controlling the volume of connections to a backend service. This field\nis applicable only when the load_balancing_scheme is set to INTERNAL_SELF_MANAGED.","description_kind":"plain","computed":true},"connection_draining_timeout_sec":{"type":"number","description":"Time for which instance will be drained (not accept new\nconnections, but still work to finish started).","description_kind":"plain","computed":true},"consistent_hash":{"type":["list",["object",{"http_cookie":["list",["object",{"name":"string","path":"string","ttl":["list",["object",{"nanos":"number","seconds":"number"}]]}]],"http_header_name":"string","minimum_ring_size":"number"}]],"description":"Consistent Hash-based load balancing can be used to provide soft session\naffinity based on HTTP headers, cookies or other properties. This load balancing\npolicy is applicable only for HTTP connections. The affinity to a particular\ndestination host will be lost when one or more hosts are added/removed from the\ndestination service. This field specifies parameters that control consistent\nhashing. This field only applies if the load_balancing_scheme is set to\nINTERNAL_SELF_MANAGED. This field is only applicable when locality_lb_policy is\nset to MAGLEV or RING_HASH.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"custom_request_headers":{"type":["set","string"],"description":"Headers that the HTTP/S load balancer should add to proxied\nrequests.","description_kind":"plain","computed":true},"custom_response_headers":{"type":["set","string"],"description":"Headers that the HTTP/S load balancer should add to proxied\nresponses.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","computed":true},"enable_cdn":{"type":"bool","description":"If true, enable Cloud CDN for this BackendService.","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource. A hash of the contents stored in this\nobject. This field is used in optimistic locking.","description_kind":"plain","computed":true},"health_checks":{"type":["set","string"],"description":"The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource\nfor health checking this BackendService. Currently at most one health\ncheck can be specified.\n\nA health check must be specified unless the backend service uses an internet\nor serverless NEG as a backend.\n\nFor internal load balancing, a URL to a HealthCheck resource must be specified instead.","description_kind":"plain","computed":true},"iap":{"type":["list",["object",{"oauth2_client_id":"string","oauth2_client_secret":"string","oauth2_client_secret_sha256":"string"}]],"description":"Settings for enabling Cloud Identity Aware Proxy","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"load_balancing_scheme":{"type":"string","description":"Indicates whether the backend service will be used with internal or\nexternal load balancing. A backend service created for one type of\nload balancing cannot be used with the other. Default value: \"EXTERNAL\" Possible values: [\"EXTERNAL\", \"INTERNAL_SELF_MANAGED\"]","description_kind":"plain","computed":true},"locality_lb_policy":{"type":"string","description":"The load balancing algorithm used within the scope of the locality.\nThe possible values are -\n\n* ROUND_ROBIN - This is a simple policy in which each healthy backend\n is selected in round robin order.\n\n* LEAST_REQUEST - An O(1) algorithm which selects two random healthy\n hosts and picks the host which has fewer active requests.\n\n* RING_HASH - The ring/modulo hash load balancer implements consistent\n hashing to backends. The algorithm has the property that the\n addition/removal of a host from a set of N hosts only affects\n 1/N of the requests.\n\n* RANDOM - The load balancer selects a random healthy host.\n\n* ORIGINAL_DESTINATION - Backend host is selected based on the client\n connection metadata, i.e., connections are opened\n to the same address as the destination address of\n the incoming connection before the connection\n was redirected to the load balancer.\n\n* MAGLEV - used as a drop in replacement for the ring hash load balancer.\n Maglev is not as stable as ring hash but has faster table lookup\n build times and host selection times. For more information about\n Maglev, refer to https://ai.google/research/pubs/pub44824\n\nThis field is applicable only when the load_balancing_scheme is set to\nINTERNAL_SELF_MANAGED. Possible values: [\"ROUND_ROBIN\", \"LEAST_REQUEST\", \"RING_HASH\", \"RANDOM\", \"ORIGINAL_DESTINATION\", \"MAGLEV\"]","description_kind":"plain","computed":true},"log_config":{"type":["list",["object",{"enable":"bool","sample_rate":"number"}]],"description":"This field denotes the logging options for the load balancer traffic served by this backend service.\nIf logging is enabled, logs will be exported to Stackdriver.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"outlier_detection":{"type":["list",["object",{"base_ejection_time":["list",["object",{"nanos":"number","seconds":"number"}]],"consecutive_errors":"number","consecutive_gateway_failure":"number","enforcing_consecutive_errors":"number","enforcing_consecutive_gateway_failure":"number","enforcing_success_rate":"number","interval":["list",["object",{"nanos":"number","seconds":"number"}]],"max_ejection_percent":"number","success_rate_minimum_hosts":"number","success_rate_request_volume":"number","success_rate_stdev_factor":"number"}]],"description":"Settings controlling eviction of unhealthy hosts from the load balancing pool.\nThis field is applicable only when the load_balancing_scheme is set\nto INTERNAL_SELF_MANAGED.","description_kind":"plain","computed":true},"port_name":{"type":"string","description":"Name of backend port. The same name should appear in the instance\ngroups referenced by this service. Required when the load balancing\nscheme is EXTERNAL.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"The protocol this BackendService uses to communicate with backends.\nThe default is HTTP. **NOTE**: HTTP2 is only valid for beta HTTP/2 load balancer\ntypes and may result in errors if used with the GA API. Possible values: [\"HTTP\", \"HTTPS\", \"HTTP2\", \"TCP\", \"SSL\", \"GRPC\"]","description_kind":"plain","computed":true},"security_policy":{"type":"string","description":"The security policy associated with this backend service.","description_kind":"plain","computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"session_affinity":{"type":"string","description":"Type of session affinity to use. The default is NONE. Session affinity is\nnot applicable if the protocol is UDP. Possible values: [\"NONE\", \"CLIENT_IP\", \"CLIENT_IP_PORT_PROTO\", \"CLIENT_IP_PROTO\", \"GENERATED_COOKIE\", \"HEADER_FIELD\", \"HTTP_COOKIE\"]","description_kind":"plain","computed":true},"timeout_sec":{"type":"number","description":"How many seconds to wait for the backend before considering it a\nfailed request. Default is 30 seconds. Valid range is [1, 86400].","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_default_service_account":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description_kind":"plain","computed":true},"email":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"unique_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_forwarding_rule":{"version":0,"block":{"attributes":{"all_ports":{"type":"bool","description":"This field is used along with the `backend_service` field for internal load balancing or with the `target` field for internal TargetInstance. This field cannot be used with `port` or `portRange` fields. When the load balancing scheme is `INTERNAL` and protocol is TCP/UDP, specify this field to allow packets addressed to any ports will be forwarded to the backends configured with this forwarding rule.","description_kind":"plain","computed":true},"allow_global_access":{"type":"bool","description":"This field is used along with the `backend_service` field for internal load balancing or with the `target` field for internal TargetInstance. If the field is set to `TRUE`, clients can access ILB from all regions. Otherwise only allows access from clients in the same region as the internal load balancer.","description_kind":"plain","computed":true},"backend_service":{"type":"string","description":"This field is only used for `INTERNAL` load balancing. For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"[Output Only] Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create the resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"IP address that this forwarding rule serves. When a client sends traffic to this IP address, the forwarding rule directs the traffic to the target that you specify in the forwarding rule. If you don't specify a reserved IP address, an ephemeral IP address is assigned. Methods for specifying an IP address: * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in `https://www.googleapis.com/compute/v1/projects/project_id/regions/region/addresses/address-name` * Partial URL or by name, as in: * `projects/project_id/regions/region/addresses/address-name` * `regions/region/addresses/address-name` * `global/addresses/address-name` * `address-name` The loadBalancingScheme and the forwarding rule's target determine the type of IP address that you can use. For detailed information, refer to [IP address specifications](/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).","description_kind":"plain","computed":true},"ip_protocol":{"type":"string","description":"The IP protocol to which this rule applies. For protocol forwarding, valid options are `TCP`, `UDP`, `ESP`, `AH`, `SCTP` or `ICMP`. For Internal TCP/UDP Load Balancing, the load balancing scheme is `INTERNAL`, and one of `TCP` or `UDP` are valid. For Traffic Director, the load balancing scheme is `INTERNAL_SELF_MANAGED`, and only `TCP`is valid. For Internal HTTP(S) Load Balancing, the load balancing scheme is `INTERNAL_MANAGED`, and only `TCP` is valid. For HTTP(S), SSL Proxy, and TCP Proxy Load Balancing, the load balancing scheme is `EXTERNAL` and only `TCP` is valid. For Network TCP/UDP Load Balancing, the load balancing scheme is `EXTERNAL`, and one of `TCP` or `UDP` is valid.","description_kind":"plain","computed":true},"is_mirroring_collector":{"type":"bool","description":"Indicates whether or not this load balancer can be used as a collector for packet mirroring. To prevent mirroring loops, instances behind this load balancer will not have their traffic mirrored even if a `PacketMirroring` rule applies to them. This can only be set to true for load balancers that have their `loadBalancingScheme` set to `INTERNAL`.","description_kind":"plain","computed":true},"label_fingerprint":{"type":"string","description":"Used internally during label updates.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Labels to apply to this rule.","description_kind":"plain","computed":true},"load_balancing_scheme":{"type":"string","description":"Specifies the forwarding rule type.\n\n* `EXTERNAL` is used for:\n * Classic Cloud VPN gateways\n * Protocol forwarding to VMs from an external IP address\n * The following load balancers: HTTP(S), SSL Proxy, TCP Proxy, and Network TCP/UDP\n* `INTERNAL` is used for:\n * Protocol forwarding to VMs from an internal IP address\n * Internal TCP/UDP load balancers\n* `INTERNAL_MANAGED` is used for:\n * Internal HTTP(S) load balancers\n* `INTERNAL_SELF_MANAGED` is used for:\n * Traffic Director\n\nFor more information about forwarding rules, refer to [Forwarding rule concepts](/load-balancing/docs/forwarding-rule-concepts). Possible values: INVALID, INTERNAL, INTERNAL_MANAGED, INTERNAL_SELF_MANAGED, EXTERNAL","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"This field is not used for external load balancing. For `INTERNAL` and `INTERNAL_SELF_MANAGED` load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.","description_kind":"plain","computed":true},"network_tier":{"type":"string","description":"This signifies the networking tier used for configuring this load balancer and can only take the following values: `PREMIUM`, `STANDARD`. For regional ForwardingRule, the valid values are `PREMIUM` and `STANDARD`. For GlobalForwardingRule, the valid value is `PREMIUM`. If this field is not specified, it is assumed to be `PREMIUM`. If `IPAddress` is specified, this value must be equal to the networkTier of the Address.","description_kind":"plain","computed":true},"port_range":{"type":"string","description":"When the load balancing scheme is `EXTERNAL`, `INTERNAL_SELF_MANAGED` and `INTERNAL_MANAGED`, you can specify a `port_range`. Use with a forwarding rule that points to a target proxy or a target pool. Do not use with a forwarding rule that points to a backend service. This field is used along with the `target` field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance. Applicable only when `IPProtocol` is `TCP`, `UDP`, or `SCTP`, only packets addressed to ports in the specified range will be forwarded to `target`. Forwarding rules with the same `[IPAddress, IPProtocol]` pair must have disjoint port ranges. Some types of forwarding target have constraints on the acceptable ports:\n\n* TargetHttpProxy: 80, 8080\n* TargetHttpsProxy: 443\n* TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688, 1883, 5222\n* TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688, 1883, 5222\n* TargetVpnGateway: 500, 4500\n\n@pattern: d+(?:-d+)?","description_kind":"plain","computed":true},"ports":{"type":["set","string"],"description":"This field is used along with the `backend_service` field for internal load balancing. When the load balancing scheme is `INTERNAL`, a list of ports can be configured, for example, ['80'], ['8000','9000']. Only packets addressed to these ports are forwarded to the backends configured with the forwarding rule. If the forwarding rule's loadBalancingScheme is INTERNAL, you can specify ports in one of the following ways: * A list of up to five ports, which can be non-contiguous * Keyword `ALL`, which causes the forwarding rule to forward traffic on any port of the forwarding rule's protocol. @pattern: d+(?:-d+)? For more information, refer to [Port specifications](/load-balancing/docs/forwarding-rule-concepts#port_specifications).","description_kind":"plain","computed":true},"project":{"type":"string","description":"The project this resource belongs in.","description_kind":"plain","optional":true},"region":{"type":"string","description":"The location of this resource.","description_kind":"plain","optional":true},"self_link":{"type":"string","description":"[Output Only] Server-defined URL for the resource.","description_kind":"plain","computed":true},"service_label":{"type":"string","description":"An optional prefix to the service name for this Forwarding Rule. If specified, the prefix is the first label of the fully qualified service name. The label must be 1-63 characters long, and comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Specifically, the label must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. This field is only used for internal load balancing.","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"[Output Only] The internal fully qualified service name for this Forwarding Rule. This field is only used for internal load balancing.","description_kind":"plain","computed":true},"subnetwork":{"type":"string","description":"This field is only used for `INTERNAL` load balancing. For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule. If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.","description_kind":"plain","computed":true},"target":{"type":"string","description":"The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For `INTERNAL_SELF_MANAGED` load balancing, only `targetHttpProxy` is valid, not `targetHttpsProxy`.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_global_address":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_global_forwarding_rule":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create the resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"IP address that this forwarding rule serves. When a client sends traffic to this IP address, the forwarding rule directs the traffic to the target that you specify in the forwarding rule. If you don't specify a reserved IP address, an ephemeral IP address is assigned. Methods for specifying an IP address: * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in `https://www.googleapis.com/compute/v1/projects/project_id/regions/region/addresses/address-name` * Partial URL or by name, as in: * `projects/project_id/regions/region/addresses/address-name` * `regions/region/addresses/address-name` * `global/addresses/address-name` * `address-name` The loadBalancingScheme and the forwarding rule's target determine the type of IP address that you can use. For detailed information, refer to [IP address specifications](/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).","description_kind":"plain","computed":true},"ip_protocol":{"type":"string","description":"The IP protocol to which this rule applies. For protocol forwarding, valid options are `TCP`, `UDP`, `ESP`, `AH`, `SCTP` or `ICMP`. For Internal TCP/UDP Load Balancing, the load balancing scheme is `INTERNAL`, and one of `TCP` or `UDP` are valid. For Traffic Director, the load balancing scheme is `INTERNAL_SELF_MANAGED`, and only `TCP`is valid. For Internal HTTP(S) Load Balancing, the load balancing scheme is `INTERNAL_MANAGED`, and only `TCP` is valid. For HTTP(S), SSL Proxy, and TCP Proxy Load Balancing, the load balancing scheme is `EXTERNAL` and only `TCP` is valid. For Network TCP/UDP Load Balancing, the load balancing scheme is `EXTERNAL`, and one of `TCP` or `UDP` is valid.","description_kind":"plain","computed":true},"ip_version":{"type":"string","description":"The IP Version that will be used by this forwarding rule. Valid options are `IPV4` or `IPV6`. This can only be specified for an external global forwarding rule. Possible values: UNSPECIFIED_VERSION, IPV4, IPV6","description_kind":"plain","computed":true},"label_fingerprint":{"type":"string","description":"Used internally during label updates.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Labels to apply to this rule.","description_kind":"plain","computed":true},"load_balancing_scheme":{"type":"string","description":"Specifies the forwarding rule type.\n\n* `EXTERNAL` is used for:\n * Classic Cloud VPN gateways\n * Protocol forwarding to VMs from an external IP address\n * The following load balancers: HTTP(S), SSL Proxy, TCP Proxy, and Network TCP/UDP\n* `INTERNAL` is used for:\n * Protocol forwarding to VMs from an internal IP address\n * Internal TCP/UDP load balancers\n* `INTERNAL_MANAGED` is used for:\n * Internal HTTP(S) load balancers\n* `INTERNAL_SELF_MANAGED` is used for:\n * Traffic Director\n\nFor more information about forwarding rules, refer to [Forwarding rule concepts](/load-balancing/docs/forwarding-rule-concepts). Possible values: INVALID, INTERNAL, INTERNAL_MANAGED, INTERNAL_SELF_MANAGED, EXTERNAL","description_kind":"plain","computed":true},"metadata_filters":{"type":["list",["object",{"filter_labels":["list",["object",{"name":"string","value":"string"}]],"filter_match_criteria":"string"}]],"description":"Opaque filter criteria used by Loadbalancer to restrict routing configuration to a limited set of [xDS](https://github.com/envoyproxy/data-plane-api/blob/master/XDS_PROTOCOL.md) compliant clients. In their xDS requests to Loadbalancer, xDS clients present [node metadata](https://github.com/envoyproxy/data-plane-api/search?q=%22message+Node%22+in%3A%2Fenvoy%2Fapi%2Fv2%2Fcore%2Fbase.proto\u0026). If a match takes place, the relevant configuration is made available to those proxies. Otherwise, all the resources (e.g. `TargetHttpProxy`, `UrlMap`) referenced by the `ForwardingRule` will not be visible to those proxies.\n\nFor each `metadataFilter` in this list, if its `filterMatchCriteria` is set to MATCH_ANY, at least one of the `filterLabel`s must match the corresponding label provided in the metadata. If its `filterMatchCriteria` is set to MATCH_ALL, then all of its `filterLabel`s must match with corresponding labels provided in the metadata.\n\n`metadataFilters` specified here will be applifed before those specified in the `UrlMap` that this `ForwardingRule` references.\n\n`metadataFilters` only applies to Loadbalancers that have their loadBalancingScheme set to `INTERNAL_SELF_MANAGED`.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"This field is not used for external load balancing. For `INTERNAL` and `INTERNAL_SELF_MANAGED` load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.","description_kind":"plain","computed":true},"port_range":{"type":"string","description":"When the load balancing scheme is `EXTERNAL`, `INTERNAL_SELF_MANAGED` and `INTERNAL_MANAGED`, you can specify a `port_range`. Use with a forwarding rule that points to a target proxy or a target pool. Do not use with a forwarding rule that points to a backend service. This field is used along with the `target` field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance. Applicable only when `IPProtocol` is `TCP`, `UDP`, or `SCTP`, only packets addressed to ports in the specified range will be forwarded to `target`. Forwarding rules with the same `[IPAddress, IPProtocol]` pair must have disjoint port ranges. Some types of forwarding target have constraints on the acceptable ports:\n\n* TargetHttpProxy: 80, 8080\n* TargetHttpsProxy: 443\n* TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688, 1883, 5222\n* TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688, 1883, 5222\n* TargetVpnGateway: 500, 4500\n\n@pattern: d+(?:-d+)?","description_kind":"plain","computed":true},"project":{"type":"string","description":"The project this resource belongs in.","description_kind":"plain","optional":true},"self_link":{"type":"string","description":"[Output Only] Server-defined URL for the resource.","description_kind":"plain","computed":true},"target":{"type":"string","description":"The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For `INTERNAL_SELF_MANAGED` load balancing, only `targetHttpProxy` is valid, not `targetHttpsProxy`.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_ha_vpn_gateway":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"The network this VPN gateway is accepting traffic for.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region this gateway should sit in.","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"vpn_interfaces":{"type":["list",["object",{"id":"number","interconnect_attachment":"string","ip_address":"string"}]],"description":"A list of interfaces on this VPN gateway.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_health_check":{"version":0,"block":{"attributes":{"check_interval_sec":{"type":"number","description":"How often (in seconds) to send a health check. The default value is 5\nseconds.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","computed":true},"grpc_health_check":{"type":["list",["object",{"grpc_service_name":"string","port":"number","port_name":"string","port_specification":"string"}]],"description":"A nested object resource","description_kind":"plain","computed":true},"healthy_threshold":{"type":"number","description":"A so-far unhealthy instance will be marked healthy after this many\nconsecutive successes. The default value is 2.","description_kind":"plain","computed":true},"http2_health_check":{"type":["list",["object",{"host":"string","port":"number","port_name":"string","port_specification":"string","proxy_header":"string","request_path":"string","response":"string"}]],"description":"A nested object resource","description_kind":"plain","computed":true},"http_health_check":{"type":["list",["object",{"host":"string","port":"number","port_name":"string","port_specification":"string","proxy_header":"string","request_path":"string","response":"string"}]],"description":"A nested object resource","description_kind":"plain","computed":true},"https_health_check":{"type":["list",["object",{"host":"string","port":"number","port_name":"string","port_specification":"string","proxy_header":"string","request_path":"string","response":"string"}]],"description":"A nested object resource","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"log_config":{"type":["list",["object",{"enable":"bool"}]],"description":"Configure logging on this health check.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the\nlast character, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"ssl_health_check":{"type":["list",["object",{"port":"number","port_name":"string","port_specification":"string","proxy_header":"string","request":"string","response":"string"}]],"description":"A nested object resource","description_kind":"plain","computed":true},"tcp_health_check":{"type":["list",["object",{"port":"number","port_name":"string","port_specification":"string","proxy_header":"string","request":"string","response":"string"}]],"description":"A nested object resource","description_kind":"plain","computed":true},"timeout_sec":{"type":"number","description":"How long (in seconds) to wait before claiming failure.\nThe default value is 5 seconds. It is invalid for timeoutSec to have\ngreater value than checkIntervalSec.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of the health check. One of HTTP, HTTPS, TCP, or SSL.","description_kind":"plain","computed":true},"unhealthy_threshold":{"type":"number","description":"A so-far healthy instance will be marked unhealthy after this many\nconsecutive failures. The default value is 2.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_image":{"version":0,"block":{"attributes":{"archive_size_bytes":{"type":"number","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"disk_size_gb":{"type":"number","description_kind":"plain","computed":true},"family":{"type":"string","description_kind":"plain","optional":true,"computed":true},"filter":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_encryption_key_sha256":{"type":"string","description_kind":"plain","computed":true},"image_id":{"type":"string","description_kind":"plain","computed":true},"label_fingerprint":{"type":"string","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description_kind":"plain","computed":true},"licenses":{"type":["list","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"source_disk":{"type":"string","description_kind":"plain","computed":true},"source_disk_encryption_key_sha256":{"type":"string","description_kind":"plain","computed":true},"source_disk_id":{"type":"string","description_kind":"plain","computed":true},"source_image_id":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_instance":{"version":6,"block":{"attributes":{"advanced_machine_features":{"type":["list",["object",{"enable_nested_virtualization":"bool","threads_per_core":"number"}]],"description":"Controls for advanced machine-related behavior features.","description_kind":"plain","computed":true},"allow_stopping_for_update":{"type":"bool","description":"If true, allows Terraform to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail.","description_kind":"plain","computed":true},"attached_disk":{"type":["list",["object",{"device_name":"string","disk_encryption_key_raw":"string","disk_encryption_key_sha256":"string","kms_key_self_link":"string","mode":"string","source":"string"}]],"description":"List of disks attached to the instance","description_kind":"plain","computed":true},"boot_disk":{"type":["list",["object",{"auto_delete":"bool","device_name":"string","disk_encryption_key_raw":"string","disk_encryption_key_sha256":"string","initialize_params":["list",["object",{"image":"string","labels":["map","string"],"size":"number","type":"string"}]],"kms_key_self_link":"string","mode":"string","source":"string"}]],"description":"The boot disk for the instance.","description_kind":"plain","computed":true},"can_ip_forward":{"type":"bool","description":"Whether sending and receiving of packets with non-matching source or destination IPs is allowed.","description_kind":"plain","computed":true},"confidential_instance_config":{"type":["list",["object",{"enable_confidential_compute":"bool"}]],"description":"The Confidential VM config being used by the instance. on_host_maintenance has to be set to TERMINATE or this will fail to create.","description_kind":"plain","computed":true},"cpu_platform":{"type":"string","description":"The CPU platform used by this instance.","description_kind":"plain","computed":true},"current_status":{"type":"string","description":"Current status of the instance.","description_kind":"plain","computed":true},"deletion_protection":{"type":"bool","description":"Whether deletion protection is enabled on this instance.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A brief description of the resource.","description_kind":"plain","computed":true},"desired_status":{"type":"string","description":"Desired status of the instance. Either \"RUNNING\" or \"TERMINATED\".","description_kind":"plain","computed":true},"enable_display":{"type":"bool","description":"Whether the instance has virtual displays enabled.","description_kind":"plain","computed":true},"guest_accelerator":{"type":["list",["object",{"count":"number","type":"string"}]],"description":"List of the type and count of accelerator cards attached to the instance.","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression [a-z]([-a-z0-9]*[a-z0-9]), concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"The server-assigned unique identifier of this instance.","description_kind":"plain","computed":true},"label_fingerprint":{"type":"string","description":"The unique fingerprint of the labels.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs assigned to the instance.","description_kind":"plain","computed":true},"machine_type":{"type":"string","description":"The machine type to create.","description_kind":"plain","computed":true},"metadata":{"type":["map","string"],"description":"Metadata key/value pairs made available within the instance.","description_kind":"plain","computed":true},"metadata_fingerprint":{"type":"string","description":"The unique fingerprint of the metadata.","description_kind":"plain","computed":true},"metadata_startup_script":{"type":"string","description":"Metadata startup scripts made available within the instance.","description_kind":"plain","computed":true},"min_cpu_platform":{"type":"string","description":"The minimum CPU platform specified for the VM instance.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the instance. One of name or self_link must be provided.","description_kind":"plain","optional":true},"network_interface":{"type":["list",["object",{"access_config":["list",["object",{"nat_ip":"string","network_tier":"string","public_ptr_domain_name":"string"}]],"alias_ip_range":["list",["object",{"ip_cidr_range":"string","subnetwork_range_name":"string"}]],"ipv6_access_config":["list",["object",{"external_ipv6":"string","external_ipv6_prefix_length":"string","network_tier":"string","public_ptr_domain_name":"string"}]],"ipv6_access_type":"string","name":"string","network":"string","network_ip":"string","nic_type":"string","stack_type":"string","subnetwork":"string","subnetwork_project":"string"}]],"description":"The networks attached to the instance.","description_kind":"plain","computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If self_link is provided, this value is ignored. If neither self_link nor project are provided, the provider project is used.","description_kind":"plain","optional":true},"reservation_affinity":{"type":["list",["object",{"specific_reservation":["list",["object",{"key":"string","values":["list","string"]}]],"type":"string"}]],"description":"Specifies the reservations that this instance can consume from.","description_kind":"plain","computed":true},"resource_policies":{"type":["list","string"],"description":"A list of short names or self_links of resource policies to attach to the instance. Currently a max of 1 resource policy is supported.","description_kind":"plain","computed":true},"scheduling":{"type":["list",["object",{"automatic_restart":"bool","min_node_cpus":"number","node_affinities":["set",["object",{"key":"string","operator":"string","values":["set","string"]}]],"on_host_maintenance":"string","preemptible":"bool"}]],"description":"The scheduling strategy being used by the instance.","description_kind":"plain","computed":true},"scratch_disk":{"type":["list",["object",{"interface":"string"}]],"description":"The scratch disks attached to the instance.","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","optional":true},"service_account":{"type":["list",["object",{"email":"string","scopes":["set","string"]}]],"description":"The service account to attach to the instance.","description_kind":"plain","computed":true},"shielded_instance_config":{"type":["list",["object",{"enable_integrity_monitoring":"bool","enable_secure_boot":"bool","enable_vtpm":"bool"}]],"description":"The shielded vm config being used by the instance.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"The list of tags attached to the instance.","description_kind":"plain","computed":true},"tags_fingerprint":{"type":"string","description":"The unique fingerprint of the tags.","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone of the instance. If self_link is provided, this value is ignored. If neither self_link nor zone are provided, the provider zone is used.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_compute_instance_group":{"version":2,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instances":{"type":["set","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"named_port":{"type":["list",["object",{"name":"string","port":"number"}]],"description_kind":"plain","computed":true},"network":{"type":"string","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description_kind":"plain","computed":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_compute_instance_serial_port":{"version":0,"block":{"attributes":{"contents":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"port":{"type":"number","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_compute_instance_template":{"version":1,"block":{"attributes":{"advanced_machine_features":{"type":["list",["object",{"enable_nested_virtualization":"bool","threads_per_core":"number"}]],"description":"Controls for advanced machine-related behavior features.","description_kind":"plain","computed":true},"can_ip_forward":{"type":"bool","description":"Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.","description_kind":"plain","computed":true},"confidential_instance_config":{"type":["list",["object",{"enable_confidential_compute":"bool"}]],"description":"The Confidential VM config being used by the instance. on_host_maintenance has to be set to TERMINATE or this will fail to create.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A brief description of this resource.","description_kind":"plain","computed":true},"disk":{"type":["list",["object",{"auto_delete":"bool","boot":"bool","device_name":"string","disk_encryption_key":["list",["object",{"kms_key_self_link":"string"}]],"disk_name":"string","disk_size_gb":"number","disk_type":"string","interface":"string","labels":["map","string"],"mode":"string","resource_policies":["list","string"],"source":"string","source_image":"string","type":"string"}]],"description":"Disks to attach to instances created from this template. This can be specified multiple times for multiple disks.","description_kind":"plain","computed":true},"filter":{"type":"string","description_kind":"plain","optional":true},"guest_accelerator":{"type":["list",["object",{"count":"number","type":"string"}]],"description":"List of the type and count of accelerator cards attached to the instance.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_description":{"type":"string","description":"A description of the instance.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to instances created from this template,","description_kind":"plain","computed":true},"machine_type":{"type":"string","description":"The machine type to create. To create a machine with a custom type (such as extended memory), format the value like custom-VCPUS-MEM_IN_MB like custom-6-20480 for 6 vCPU and 20GB of RAM.","description_kind":"plain","computed":true},"metadata":{"type":["map","string"],"description":"Metadata key/value pairs to make available from within instances created from this template.","description_kind":"plain","computed":true},"metadata_fingerprint":{"type":"string","description":"The unique fingerprint of the metadata.","description_kind":"plain","computed":true},"metadata_startup_script":{"type":"string","description":"An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.","description_kind":"plain","computed":true},"min_cpu_platform":{"type":"string","description":"Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake.","description_kind":"plain","computed":true},"most_recent":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the instance template. If you leave this blank, Terraform will auto-generate a unique name.","description_kind":"plain","optional":true},"name_prefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with name.","description_kind":"plain","computed":true},"network_interface":{"type":["list",["object",{"access_config":["list",["object",{"nat_ip":"string","network_tier":"string","public_ptr_domain_name":"string"}]],"alias_ip_range":["list",["object",{"ip_cidr_range":"string","subnetwork_range_name":"string"}]],"ipv6_access_config":["list",["object",{"external_ipv6":"string","external_ipv6_prefix_length":"string","network_tier":"string","public_ptr_domain_name":"string"}]],"ipv6_access_type":"string","name":"string","network":"string","network_ip":"string","nic_type":"string","stack_type":"string","subnetwork":"string","subnetwork_project":"string"}]],"description":"Networks to attach to instances created from this template. This can be specified multiple times for multiple networks.","description_kind":"plain","computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","required":true},"region":{"type":"string","description":"An instance template is a global resource that is not bound to a zone or a region. However, you can still specify some regional resources in an instance template, which restricts the template to the region where that resource resides. For example, a custom subnetwork resource is tied to a specific region. Defaults to the region of the Provider if no value is given.","description_kind":"plain","computed":true},"reservation_affinity":{"type":["list",["object",{"specific_reservation":["list",["object",{"key":"string","values":["list","string"]}]],"type":"string"}]],"description":"Specifies the reservations that this instance can consume from.","description_kind":"plain","computed":true},"scheduling":{"type":["list",["object",{"automatic_restart":"bool","min_node_cpus":"number","node_affinities":["set",["object",{"key":"string","operator":"string","values":["set","string"]}]],"on_host_maintenance":"string","preemptible":"bool"}]],"description":"The scheduling strategy to use.","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"service_account":{"type":["list",["object",{"email":"string","scopes":["set","string"]}]],"description":"Service account to attach to the instance.","description_kind":"plain","computed":true},"shielded_instance_config":{"type":["list",["object",{"enable_integrity_monitoring":"bool","enable_secure_boot":"bool","enable_vtpm":"bool"}]],"description":"Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Note: shielded_instance_config can only be used with boot images with shielded vm support.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"Tags to attach to the instance.","description_kind":"plain","computed":true},"tags_fingerprint":{"type":"string","description":"The unique fingerprint of the tags.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_lb_ip_ranges":{"version":0,"block":{"attributes":{"http_ssl_tcp_internal":{"type":["list","string"],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"network":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_network":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"gateway_ipv4":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"subnetworks_self_links":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_network_endpoint_group":{"version":0,"block":{"attributes":{"default_port":{"type":"number","description":"The default port used if the port number is not specified in the\nnetwork endpoint.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","optional":true},"network":{"type":"string","description":"The network to which all network endpoints in the NEG belong.\nUses \"default\" project network if unspecified.","description_kind":"plain","computed":true},"network_endpoint_type":{"type":"string","description":"Type of network endpoints in this network endpoint group. Default value: \"GCE_VM_IP_PORT\" Possible values: [\"GCE_VM_IP_PORT\"]","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","optional":true},"size":{"type":"number","description":"Number of network endpoints in the network endpoint group.","description_kind":"plain","computed":true},"subnetwork":{"type":"string","description":"Optional subnetwork to which all network endpoints in the NEG belong.","description_kind":"plain","computed":true},"zone":{"type":"string","description":"Zone where the network endpoint group is located.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_compute_node_types":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"names":{"type":["list","string"],"description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_compute_region_instance_group":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instances":{"type":["list",["object",{"instance":"string","named_ports":["list",["object",{"name":"string","port":"number"}]],"status":"string"}]],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_region_ssl_certificate":{"version":0,"block":{"attributes":{"certificate":{"type":"string","description":"The certificate in PEM format.\nThe certificate chain must be no greater than 5 certs long.\nThe chain must include at least one intermediate cert.","description_kind":"plain","computed":true},"certificate_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.\n\n\nThese are in the same namespace as the managed SSL certificates.","description_kind":"plain","required":true},"name_prefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with name.","description_kind":"plain","computed":true},"private_key":{"type":"string","description":"The write-only private key in PEM format.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description":"The Region in which the created regional ssl certificate should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_regions":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"names":{"type":["list","string"],"description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_compute_resource_policy":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create the resource.","description_kind":"plain","computed":true},"group_placement_policy":{"type":["list",["object",{"availability_domain_count":"number","collocation":"string","vm_count":"number"}]],"description":"Resource policy for instances used for placement configuration.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_schedule_policy":{"type":["list",["object",{"expiration_time":"string","start_time":"string","time_zone":"string","vm_start_schedule":["list",["object",{"schedule":"string"}]],"vm_stop_schedule":["list",["object",{"schedule":"string"}]]}]],"description":"Resource policy for scheduling instance operations.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the resource, provided by the client when initially creating\nthe resource. The resource name must be 1-63 characters long, and comply\nwith RFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])'? which means the\nfirst character must be a lowercase letter, and all following characters\nmust be a dash, lowercase letter, or digit, except the last character,\nwhich cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description":"Region where resource policy resides.","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"snapshot_schedule_policy":{"type":["list",["object",{"retention_policy":["list",["object",{"max_retention_days":"number","on_source_disk_delete":"string"}]],"schedule":["list",["object",{"daily_schedule":["list",["object",{"days_in_cycle":"number","start_time":"string"}]],"hourly_schedule":["list",["object",{"hours_in_cycle":"number","start_time":"string"}]],"weekly_schedule":["list",["object",{"day_of_weeks":["set",["object",{"day":"string","start_time":"string"}]]}]]}]],"snapshot_properties":["list",["object",{"guest_flush":"bool","labels":["map","string"],"storage_locations":["set","string"]}]]}]],"description":"Policy for creating snapshots of persistent disks.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_router":{"version":0,"block":{"attributes":{"bgp":{"type":["list",["object",{"advertise_mode":"string","advertised_groups":["list","string"],"advertised_ip_ranges":["list",["object",{"description":"string","range":"string"}]],"asn":"number"}]],"description":"BGP information specific to this router.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","computed":true},"encrypted_interconnect_router":{"type":"bool","description":"Field to indicate if a router is dedicated to use with encrypted\nInterconnect Attachment (IPsec-encrypted Cloud Interconnect feature).\n\nNot currently available publicly.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. The name must be 1-63 characters long, and\ncomply with RFC1035. Specifically, the name must be 1-63 characters\nlong and match the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?'\nwhich means the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit,\nexcept the last character, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"A reference to the network to which this router belongs.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description":"Region where the router resides.","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_ssl_certificate":{"version":0,"block":{"attributes":{"certificate":{"type":"string","description":"The certificate in PEM format.\nThe certificate chain must be no greater than 5 certs long.\nThe chain must include at least one intermediate cert.","description_kind":"plain","computed":true},"certificate_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.\n\n\nThese are in the same namespace as the managed SSL certificates.","description_kind":"plain","required":true},"name_prefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with name.","description_kind":"plain","computed":true},"private_key":{"type":"string","description":"The write-only private key in PEM format.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_ssl_policy":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"custom_features":{"type":["set","string"],"description":"Profile specifies the set of SSL features that can be used by the\nload balancer when negotiating SSL with clients. This can be one of\n'COMPATIBLE', 'MODERN', 'RESTRICTED', or 'CUSTOM'. If using 'CUSTOM',\nthe set of SSL features to enable must be specified in the\n'customFeatures' field.\n\nSee the [official documentation](https://cloud.google.com/compute/docs/load-balancing/ssl-policies#profilefeaturesupport)\nfor which ciphers are available to use. **Note**: this argument\n*must* be present when using the 'CUSTOM' profile. This argument\n*must not* be present when using any other profile.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","computed":true},"enabled_features":{"type":["set","string"],"description":"The list of features enabled in the SSL policy.","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource. A hash of the contents stored in this\nobject. This field is used in optimistic locking.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"min_tls_version":{"type":"string","description":"The minimum version of SSL protocol that can be used by the clients\nto establish a connection with the load balancer. Default value: \"TLS_1_0\" Possible values: [\"TLS_1_0\", \"TLS_1_1\", \"TLS_1_2\"]","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"profile":{"type":"string","description":"Profile specifies the set of SSL features that can be used by the\nload balancer when negotiating SSL with clients. If using 'CUSTOM',\nthe set of SSL features to enable must be specified in the\n'customFeatures' field.\n\nSee the [official documentation](https://cloud.google.com/compute/docs/load-balancing/ssl-policies#profilefeaturesupport)\nfor information on what cipher suites each profile provides. If\n'CUSTOM' is used, the 'custom_features' attribute **must be set**. Default value: \"COMPATIBLE\" Possible values: [\"COMPATIBLE\", \"MODERN\", \"RESTRICTED\", \"CUSTOM\"]","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_subnetwork":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"gateway_address":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_cidr_range":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"network":{"type":"string","description_kind":"plain","computed":true},"private_ip_google_access":{"type":"bool","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secondary_ip_range":{"type":["list",["object",{"ip_cidr_range":"string","range_name":"string"}]],"description_kind":"plain","computed":true},"self_link":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_compute_vpn_gateway":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"network":{"type":"string","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_zones":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"names":{"type":["list","string"],"description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_container_cluster":{"version":1,"block":{"attributes":{"addons_config":{"type":["list",["object",{"cloudrun_config":["list",["object",{"disabled":"bool","load_balancer_type":"string"}]],"horizontal_pod_autoscaling":["list",["object",{"disabled":"bool"}]],"http_load_balancing":["list",["object",{"disabled":"bool"}]],"network_policy_config":["list",["object",{"disabled":"bool"}]]}]],"description":"The configuration for addons supported by GKE.","description_kind":"plain","computed":true},"authenticator_groups_config":{"type":["list",["object",{"security_group":"string"}]],"description":"Configuration for the Google Groups for GKE feature.","description_kind":"plain","computed":true},"cluster_autoscaling":{"type":["list",["object",{"auto_provisioning_defaults":["list",["object",{"oauth_scopes":["list","string"],"service_account":"string"}]],"enabled":"bool","resource_limits":["list",["object",{"maximum":"number","minimum":"number","resource_type":"string"}]]}]],"description":"Per-cluster configuration of Node Auto-Provisioning with Cluster Autoscaler to automatically adjust the size of the cluster and create/delete node pools based on the current needs of the cluster's workload. See the guide to using Node Auto-Provisioning for more details.","description_kind":"plain","computed":true},"cluster_ipv4_cidr":{"type":"string","description":"The IP address range of the Kubernetes pods in this cluster in CIDR notation (e.g. 10.96.0.0/14). Leave blank to have one automatically chosen or specify a /14 block in 10.0.0.0/8. This field will only work for routes-based clusters, where ip_allocation_policy is not defined.","description_kind":"plain","computed":true},"database_encryption":{"type":["list",["object",{"key_name":"string","state":"string"}]],"description":"Application-layer Secrets Encryption settings. The object format is {state = string, key_name = string}. Valid values of state are: \"ENCRYPTED\"; \"DECRYPTED\". key_name is the name of a CloudKMS key.","description_kind":"plain","computed":true},"datapath_provider":{"type":"string","description":"The desired datapath provider for this cluster. By default, uses the IPTables-based kube-proxy implementation.","description_kind":"plain","computed":true},"default_max_pods_per_node":{"type":"number","description":"The default maximum number of pods per node in this cluster. This doesn't work on \"routes-based\" clusters, clusters that don't have IP Aliasing enabled.","description_kind":"plain","computed":true},"default_snat_status":{"type":["list",["object",{"disabled":"bool"}]],"description":"Whether the cluster disables default in-node sNAT rules. In-node sNAT rules will be disabled when defaultSnatStatus is disabled.","description_kind":"plain","computed":true},"description":{"type":"string","description":" Description of the cluster.","description_kind":"plain","computed":true},"enable_autopilot":{"type":"bool","description":"Enable Autopilot for this cluster.","description_kind":"plain","computed":true},"enable_binary_authorization":{"type":"bool","description":"Enable Binary Authorization for this cluster. If enabled, all container images will be validated by Google Binary Authorization.","description_kind":"plain","computed":true},"enable_intranode_visibility":{"type":"bool","description":"Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network.","description_kind":"plain","computed":true},"enable_kubernetes_alpha":{"type":"bool","description":"Whether to enable Kubernetes Alpha features for this cluster. Note that when this option is enabled, the cluster cannot be upgraded and will be automatically deleted after 30 days.","description_kind":"plain","computed":true},"enable_legacy_abac":{"type":"bool","description":"Whether the ABAC authorizer is enabled for this cluster. When enabled, identities in the system, including service accounts, nodes, and controllers, will have statically granted permissions beyond those provided by the RBAC configuration or IAM. Defaults to false.","description_kind":"plain","computed":true},"enable_shielded_nodes":{"type":"bool","description":"Enable Shielded Nodes features on all nodes in this cluster. Defaults to true.","description_kind":"plain","computed":true},"enable_tpu":{"type":"bool","description":"Whether to enable Cloud TPU resources in this cluster.","description_kind":"plain","computed":true},"endpoint":{"type":"string","description":"The IP address of this cluster's Kubernetes master.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"initial_node_count":{"type":"number","description":"The number of nodes to create in this cluster's default node pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Must be set if node_pool is not set. If you're using google_container_node_pool objects with no default node pool, you'll need to set this to a value of at least 1, alongside setting remove_default_node_pool to true.","description_kind":"plain","computed":true},"ip_allocation_policy":{"type":["list",["object",{"cluster_ipv4_cidr_block":"string","cluster_secondary_range_name":"string","services_ipv4_cidr_block":"string","services_secondary_range_name":"string"}]],"description":"Configuration of cluster IP allocation for VPC-native clusters. Adding this block enables IP aliasing, making the cluster VPC-native instead of routes-based.","description_kind":"plain","computed":true},"label_fingerprint":{"type":"string","description":"The fingerprint of the set of labels for this cluster.","description_kind":"plain","computed":true},"location":{"type":"string","description":"The location (region or zone) in which the cluster master will be created, as well as the default node location. If you specify a zone (such as us-central1-a), the cluster will be a zonal cluster with a single cluster master. If you specify a region (such as us-west1), the cluster will be a regional cluster with multiple masters spread across zones in the region, and with default node locations in those zones as well.","description_kind":"plain","optional":true},"logging_config":{"type":["list",["object",{"enable_components":["list","string"]}]],"description":"Logging configuration for the cluster.","description_kind":"plain","computed":true},"logging_service":{"type":"string","description":"The logging service that the cluster should write logs to. Available options include logging.googleapis.com(Legacy Stackdriver), logging.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Logging), and none. Defaults to logging.googleapis.com/kubernetes.","description_kind":"plain","computed":true},"maintenance_policy":{"type":["list",["object",{"daily_maintenance_window":["list",["object",{"duration":"string","start_time":"string"}]],"maintenance_exclusion":["set",["object",{"end_time":"string","exclusion_name":"string","start_time":"string"}]],"recurring_window":["list",["object",{"end_time":"string","recurrence":"string","start_time":"string"}]]}]],"description":"The maintenance policy to use for the cluster.","description_kind":"plain","computed":true},"master_auth":{"type":["list",["object",{"client_certificate":"string","client_certificate_config":["list",["object",{"issue_client_certificate":"bool"}]],"client_key":"string","cluster_ca_certificate":"string"}]],"description":"The authentication information for accessing the Kubernetes master. Some values in this block are only returned by the API if your service account has permission to get credentials for your GKE cluster. If you see an unexpected diff unsetting your client cert, ensure you have the container.clusters.getCredentials permission.","description_kind":"plain","computed":true},"master_authorized_networks_config":{"type":["list",["object",{"cidr_blocks":["set",["object",{"cidr_block":"string","display_name":"string"}]]}]],"description":"The desired configuration options for master authorized networks. Omit the nested cidr_blocks attribute to disallow external access (except the cluster node IPs, which GKE automatically whitelists).","description_kind":"plain","computed":true},"master_version":{"type":"string","description":"The current version of the master in the cluster. This may be different than the min_master_version set in the config if the master has been updated by GKE.","description_kind":"plain","computed":true},"min_master_version":{"type":"string","description":"The minimum version of the master. GKE will auto-update the master to new versions, so this does not guarantee the current master version--use the read-only master_version field to obtain that. If unset, the cluster's version will be set by GKE to the version of the most recent official release (which is not necessarily the latest version).","description_kind":"plain","computed":true},"monitoring_config":{"type":["list",["object",{"enable_components":["list","string"]}]],"description":"Monitoring configuration for the cluster.","description_kind":"plain","computed":true},"monitoring_service":{"type":"string","description":"The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com(Legacy Stackdriver), monitoring.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Monitoring), and none. Defaults to monitoring.googleapis.com/kubernetes.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the cluster, unique within the project and location.","description_kind":"plain","required":true},"network":{"type":"string","description":"The name or self_link of the Google Compute Engine network to which the cluster is connected. For Shared VPC, set this to the self link of the shared network.","description_kind":"plain","computed":true},"network_policy":{"type":["list",["object",{"enabled":"bool","provider":"string"}]],"description":"Configuration options for the NetworkPolicy feature.","description_kind":"plain","computed":true},"networking_mode":{"type":"string","description":"Determines whether alias IPs or routes will be used for pod IPs in the cluster.","description_kind":"plain","computed":true},"node_config":{"type":["list",["object",{"disk_size_gb":"number","disk_type":"string","guest_accelerator":["list",["object",{"count":"number","gpu_partition_size":"string","type":"string"}]],"image_type":"string","labels":["map","string"],"local_ssd_count":"number","machine_type":"string","metadata":["map","string"],"min_cpu_platform":"string","oauth_scopes":["set","string"],"preemptible":"bool","service_account":"string","shielded_instance_config":["list",["object",{"enable_integrity_monitoring":"bool","enable_secure_boot":"bool"}]],"tags":["list","string"],"taint":["list",["object",{"effect":"string","key":"string","value":"string"}]],"workload_metadata_config":["list",["object",{"mode":"string"}]]}]],"description":"The configuration of the nodepool","description_kind":"plain","computed":true},"node_locations":{"type":["set","string"],"description":"The list of zones in which the cluster's nodes are located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If this is specified for a zonal cluster, omit the cluster's zone.","description_kind":"plain","computed":true},"node_pool":{"type":["list",["object",{"autoscaling":["list",["object",{"max_node_count":"number","min_node_count":"number"}]],"initial_node_count":"number","instance_group_urls":["list","string"],"managed_instance_group_urls":["list","string"],"management":["list",["object",{"auto_repair":"bool","auto_upgrade":"bool"}]],"max_pods_per_node":"number","name":"string","name_prefix":"string","node_config":["list",["object",{"disk_size_gb":"number","disk_type":"string","guest_accelerator":["list",["object",{"count":"number","gpu_partition_size":"string","type":"string"}]],"image_type":"string","labels":["map","string"],"local_ssd_count":"number","machine_type":"string","metadata":["map","string"],"min_cpu_platform":"string","oauth_scopes":["set","string"],"preemptible":"bool","service_account":"string","shielded_instance_config":["list",["object",{"enable_integrity_monitoring":"bool","enable_secure_boot":"bool"}]],"tags":["list","string"],"taint":["list",["object",{"effect":"string","key":"string","value":"string"}]],"workload_metadata_config":["list",["object",{"mode":"string"}]]}]],"node_count":"number","node_locations":["set","string"],"upgrade_settings":["list",["object",{"max_surge":"number","max_unavailable":"number"}]],"version":"string"}]],"description":"List of node pools associated with this cluster. See google_container_node_pool for schema. Warning: node pools defined inside a cluster can't be changed (or added/removed) after cluster creation without deleting and recreating the entire cluster. Unless you absolutely need the ability to say \"these are the only node pools associated with this cluster\", use the google_container_node_pool resource instead of this property.","description_kind":"plain","computed":true},"node_version":{"type":"string","description":"The Kubernetes version on the nodes. Must either be unset or set to the same value as min_master_version on create. Defaults to the default version set by GKE which is not necessarily the latest version. This only affects nodes in the default node pool. While a fuzzy version can be specified, it's recommended that you specify explicit versions as Terraform will see spurious diffs when fuzzy versions are used. See the google_container_engine_versions data source's version_prefix field to approximate fuzzy versions in a Terraform-compatible way. To update nodes in other node pools, use the version attribute on the node pool.","description_kind":"plain","computed":true},"operation":{"type":"string","description_kind":"plain","computed":true},"private_cluster_config":{"type":["list",["object",{"enable_private_endpoint":"bool","enable_private_nodes":"bool","master_global_access_config":["list",["object",{"enabled":"bool"}]],"master_ipv4_cidr_block":"string","peering_name":"string","private_endpoint":"string","public_endpoint":"string"}]],"description":"Configuration for private clusters, clusters with private nodes.","description_kind":"plain","computed":true},"private_ipv6_google_access":{"type":"string","description":"The desired state of IPv6 connectivity to Google Services. By default, no private IPv6 access to or from Google Services (all access will be via IPv4).","description_kind":"plain","computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true},"release_channel":{"type":["list",["object",{"channel":"string"}]],"description":"Configuration options for the Release channel feature, which provide more control over automatic upgrades of your GKE clusters. Note that removing this field from your config will not unenroll it. Instead, use the \"UNSPECIFIED\" channel.","description_kind":"plain","computed":true},"remove_default_node_pool":{"type":"bool","description":"If true, deletes the default node pool upon cluster creation. If you're using google_container_node_pool resources with no default node pool, this should be set to true, alongside setting initial_node_count to at least 1.","description_kind":"plain","computed":true},"resource_labels":{"type":["map","string"],"description":"The GCE resource labels (a map of key/value pairs) to be applied to the cluster.","description_kind":"plain","computed":true},"resource_usage_export_config":{"type":["list",["object",{"bigquery_destination":["list",["object",{"dataset_id":"string"}]],"enable_network_egress_metering":"bool","enable_resource_consumption_metering":"bool"}]],"description":"Configuration for the ResourceUsageExportConfig feature.","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"Server-defined URL for the resource.","description_kind":"plain","computed":true},"services_ipv4_cidr":{"type":"string","description":"The IP address range of the Kubernetes services in this cluster, in CIDR notation (e.g. 1.2.3.4/29). Service addresses are typically put in the last /16 from the container CIDR.","description_kind":"plain","computed":true},"subnetwork":{"type":"string","description":"The name or self_link of the Google Compute Engine subnetwork in which the cluster's instances are launched.","description_kind":"plain","computed":true},"tpu_ipv4_cidr_block":{"type":"string","description":"The IP address range of the Cloud TPUs in this cluster, in CIDR notation (e.g. 1.2.3.4/29).","description_kind":"plain","computed":true},"vertical_pod_autoscaling":{"type":["list",["object",{"enabled":"bool"}]],"description":"Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it.","description_kind":"plain","computed":true},"workload_identity_config":{"type":["list",["object",{"workload_pool":"string"}]],"description":"Configuration for the use of Kubernetes Service Accounts in GCP IAM policies.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_container_engine_versions":{"version":0,"block":{"attributes":{"default_cluster_version":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"latest_master_version":{"type":"string","description_kind":"plain","computed":true},"latest_node_version":{"type":"string","description_kind":"plain","computed":true},"location":{"type":"string","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true},"release_channel_default_version":{"type":["map","string"],"description_kind":"plain","computed":true},"valid_master_versions":{"type":["list","string"],"description_kind":"plain","computed":true},"valid_node_versions":{"type":["list","string"],"description_kind":"plain","computed":true},"version_prefix":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_container_registry_image":{"version":0,"block":{"attributes":{"digest":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_url":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true},"tag":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_container_registry_repository":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true},"repository_url":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_dns_keys":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_signing_keys":{"type":["list",["object",{"algorithm":"string","creation_time":"string","description":"string","digests":["list",["object",{"digest":"string","type":"string"}]],"ds_record":"string","id":"string","is_active":"bool","key_length":"number","key_tag":"number","public_key":"string"}]],"description_kind":"plain","computed":true},"managed_zone":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone_signing_keys":{"type":["list",["object",{"algorithm":"string","creation_time":"string","description":"string","digests":["list",["object",{"digest":"string","type":"string"}]],"id":"string","is_active":"bool","key_length":"number","key_tag":"number","public_key":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_dns_managed_zone":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"dns_name":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"name_servers":{"type":["list","string"],"description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"visibility":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_folder":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description_kind":"plain","computed":true},"display_name":{"type":"string","description_kind":"plain","computed":true},"folder":{"type":"string","description_kind":"plain","required":true},"folder_id":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifecycle_state":{"type":"string","description_kind":"plain","computed":true},"lookup_organization":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","computed":true},"organization":{"type":"string","description_kind":"plain","computed":true},"parent":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_folder_organization_policy":{"version":0,"block":{"attributes":{"boolean_policy":{"type":["list",["object",{"enforced":"bool"}]],"description":"A boolean policy is a constraint that is either enforced or not.","description_kind":"plain","computed":true},"constraint":{"type":"string","description":"The name of the Constraint the Policy is configuring, for example, serviceuser.services.","description_kind":"plain","required":true},"etag":{"type":"string","description":"The etag of the organization policy. etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other.","description_kind":"plain","computed":true},"folder":{"type":"string","description":"The resource name of the folder to set the policy for. Its format is folders/{folder_id}.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"list_policy":{"type":["list",["object",{"allow":["list",["object",{"all":"bool","values":["set","string"]}]],"deny":["list",["object",{"all":"bool","values":["set","string"]}]],"inherit_from_parent":"bool","suggested_value":"string"}]],"description":"A policy that can define specific values that are allowed or denied for the given constraint. It can also be used to allow or deny all values. ","description_kind":"plain","computed":true},"restore_policy":{"type":["list",["object",{"default":"bool"}]],"description":"A restore policy is a constraint to restore the default policy.","description_kind":"plain","computed":true},"update_time":{"type":"string","description":"The timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds, representing when the variable was last updated. Example: \"2016-10-09T12:33:37.578138407Z\".","description_kind":"plain","computed":true},"version":{"type":"number","description":"Version of the Policy. Default version is 0.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_game_services_game_server_deployment_rollout":{"version":0,"block":{"attributes":{"default_game_server_config":{"type":"string","description":"This field points to the game server config that is\napplied by default to all realms and clusters. For example,\n\n'projects/my-project/locations/global/gameServerDeployments/my-game/configs/my-config'.","description_kind":"plain","computed":true},"deployment_id":{"type":"string","description":"The deployment to rollout the new config to. Only 1 rollout must be associated with each deployment.","description_kind":"plain","required":true},"game_server_config_overrides":{"type":["list",["object",{"config_version":"string","realms_selector":["list",["object",{"realms":["list","string"]}]]}]],"description":"The game_server_config_overrides contains the per game server config\noverrides. The overrides are processed in the order they are listed. As\nsoon as a match is found for a cluster, the rest of the list is not\nprocessed.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource id of the game server deployment\n\neg: 'projects/my-project/locations/global/gameServerDeployments/my-deployment/rollout'.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_iam_policy":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"audit_config":{"nesting_mode":"set","block":{"attributes":{"service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"audit_log_configs":{"nesting_mode":"set","block":{"attributes":{"exempted_members":{"type":["set","string"],"description_kind":"plain","optional":true},"log_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"binding":{"nesting_mode":"set","block":{"attributes":{"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_iam_role":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"included_permissions":{"type":["list","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"stage":{"type":"string","description_kind":"plain","computed":true},"title":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_iam_testable_permissions":{"version":0,"block":{"attributes":{"custom_support_level":{"type":"string","description_kind":"plain","optional":true},"full_resource_name":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"permissions":{"type":["list",["object",{"api_disabled":"bool","custom_support_level":"string","name":"string","stage":"string","title":"string"}]],"description_kind":"plain","computed":true},"stages":{"type":["list","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_iap_client":{"version":0,"block":{"attributes":{"brand":{"type":"string","description":"Identifier of the brand to which this client\nis attached to. The format is\n'projects/{project_number}/brands/{brand_id}/identityAwareProxyClients/{client_id}'.","description_kind":"plain","required":true},"client_id":{"type":"string","description":"Output only. Unique identifier of the OAuth client.","description_kind":"plain","required":true},"display_name":{"type":"string","description":"Human-friendly name given to the OAuth client.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secret":{"type":"string","description":"Output only. Client secret of the OAuth client.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_kms_crypto_key":{"version":1,"block":{"attributes":{"destroy_scheduled_duration":{"type":"string","description":"The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED.\nIf not specified at creation time, the default duration is 24 hours.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"import_only":{"type":"bool","description":"Whether this key may contain imported versions only.","description_kind":"plain","computed":true},"key_ring":{"type":"string","description":"The KeyRing that this key belongs to.\nFormat: ''projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}''.","description_kind":"plain","required":true},"labels":{"type":["map","string"],"description":"Labels with user-defined metadata to apply to this resource.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The resource name for the CryptoKey.","description_kind":"plain","required":true},"purpose":{"type":"string","description":"The immutable purpose of this CryptoKey. See the\n[purpose reference](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys#CryptoKeyPurpose)\nfor possible inputs. Default value: \"ENCRYPT_DECRYPT\" Possible values: [\"ENCRYPT_DECRYPT\", \"ASYMMETRIC_SIGN\", \"ASYMMETRIC_DECRYPT\"]","description_kind":"plain","computed":true},"rotation_period":{"type":"string","description":"Every time this period passes, generate a new CryptoKeyVersion and set it as the primary.\nThe first rotation will take place after the specified period. The rotation period has\nthe format of a decimal number with up to 9 fractional digits, followed by the\nletter 's' (seconds). It must be greater than a day (ie, 86400).","description_kind":"plain","computed":true},"skip_initial_version_creation":{"type":"bool","description":"If set to true, the request will create a CryptoKey without any CryptoKeyVersions. \nYou must use the 'google_kms_key_ring_import_job' resource to import the CryptoKeyVersion.","description_kind":"plain","computed":true},"version_template":{"type":["list",["object",{"algorithm":"string","protection_level":"string"}]],"description":"A template describing settings for new crypto key versions.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_kms_crypto_key_version":{"version":0,"block":{"attributes":{"algorithm":{"type":"string","description_kind":"plain","computed":true},"crypto_key":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"protection_level":{"type":"string","description_kind":"plain","computed":true},"public_key":{"type":["list",["object",{"algorithm":"string","pem":"string"}]],"description_kind":"plain","computed":true},"state":{"type":"string","description_kind":"plain","computed":true},"version":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_kms_key_ring":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location for the KeyRing.\nA full list of valid locations can be found by running 'gcloud kms locations list'.","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name for the KeyRing.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_kms_secret":{"version":0,"block":{"attributes":{"additional_authenticated_data":{"type":"string","description_kind":"plain","optional":true},"ciphertext":{"type":"string","description_kind":"plain","required":true},"crypto_key":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"plaintext":{"type":"string","description_kind":"plain","computed":true,"sensitive":true}},"description_kind":"plain"}},"google_kms_secret_ciphertext":{"version":0,"block":{"attributes":{"ciphertext":{"type":"string","description_kind":"plain","computed":true},"crypto_key":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"plaintext":{"type":"string","description_kind":"plain","required":true,"sensitive":true}},"description_kind":"plain","deprecated":true}},"google_monitoring_app_engine_service":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Name used for UI elements listing this Service.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"module_id":{"type":"string","description":"The ID of the App Engine module underlying this service. \nCorresponds to the 'moduleId' resource label for a 'gae_app'\nmonitored resource(see https://cloud.google.com/monitoring/api/resources#tag_gae_app)","description_kind":"plain","required":true},"name":{"type":"string","description":"The full resource name for this service. The syntax is:\nprojects/[PROJECT_ID]/services/[SERVICE_ID].","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"service_id":{"type":"string","description":"An optional service ID to use. If not given, the server will generate a\nservice ID.","description_kind":"plain","computed":true},"telemetry":{"type":["list",["object",{"resource_name":"string"}]],"description":"Configuration for how to query telemetry on a Service.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_monitoring_cluster_istio_service":{"version":0,"block":{"attributes":{"cluster_name":{"type":"string","description":"The name of the Kubernetes cluster in which this Istio service is defined. \n Corresponds to the clusterName resource label in k8s_cluster resources.","description_kind":"plain","required":true},"display_name":{"type":"string","description":"Name used for UI elements listing this Service.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location of the Kubernetes cluster in which this Istio service is defined. \n Corresponds to the location resource label in k8s_cluster resources.","description_kind":"plain","required":true},"name":{"type":"string","description":"The full resource name for this service. The syntax is:\nprojects/[PROJECT_ID]/services/[SERVICE_ID].","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"service_id":{"type":"string","description":"An optional service ID to use. If not given, the server will generate a\nservice ID.","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The name of the Istio service underlying this service. \n Corresponds to the destination_service_name metric label in Istio metrics.","description_kind":"plain","required":true},"service_namespace":{"type":"string","description":"The namespace of the Istio service underlying this service. \n Corresponds to the destination_service_namespace metric label in Istio metrics.","description_kind":"plain","required":true},"telemetry":{"type":["list",["object",{"resource_name":"string"}]],"description":"Configuration for how to query telemetry on a Service.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_monitoring_istio_canonical_service":{"version":0,"block":{"attributes":{"canonical_service":{"type":"string","description":"The name of the canonical service underlying this service.. \n Corresponds to the destination_service_name metric label in Istio metrics.","description_kind":"plain","required":true},"canonical_service_namespace":{"type":"string","description":"The namespace of the canonical service underlying this service.\n Corresponds to the destination_service_namespace metric label in Istio metrics.","description_kind":"plain","required":true},"display_name":{"type":"string","description":"Name used for UI elements listing this Service.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mesh_uid":{"type":"string","description":"Identifier for the Istio mesh in which this canonical service is defined.\n Corresponds to the meshUid metric label in Istio metrics.","description_kind":"plain","required":true},"name":{"type":"string","description":"The full resource name for this service. The syntax is:\nprojects/[PROJECT_ID]/services/[SERVICE_ID].","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"service_id":{"type":"string","description":"An optional service ID to use. If not given, the server will generate a\nservice ID.","description_kind":"plain","computed":true},"telemetry":{"type":["list",["object",{"resource_name":"string"}]],"description":"Configuration for how to query telemetry on a Service.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_monitoring_mesh_istio_service":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Name used for UI elements listing this Service.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mesh_uid":{"type":"string","description":"Identifier for the mesh in which this Istio service is defined.\n Corresponds to the meshUid metric label in Istio metrics.","description_kind":"plain","required":true},"name":{"type":"string","description":"The full resource name for this service. The syntax is:\nprojects/[PROJECT_ID]/services/[SERVICE_ID].","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"service_id":{"type":"string","description":"An optional service ID to use. If not given, the server will generate a\nservice ID.","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The name of the Istio service underlying this service. \n Corresponds to the destination_service_name metric label in Istio metrics.","description_kind":"plain","required":true},"service_namespace":{"type":"string","description":"The namespace of the Istio service underlying this service.\n Corresponds to the destination_service_namespace metric label in Istio metrics.","description_kind":"plain","required":true},"telemetry":{"type":["list",["object",{"resource_name":"string"}]],"description":"Configuration for how to query telemetry on a Service.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_monitoring_notification_channel":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional human-readable description of this notification channel. This description may provide additional details, beyond the display name, for the channel. This may not exceed 1024 Unicode characters.","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"An optional human-readable name for this notification channel. It is recommended that you specify a non-empty and unique name in order to make it easier to identify the channels in your project, though this is not enforced. The display name is limited to 512 Unicode characters.","description_kind":"plain","optional":true},"enabled":{"type":"bool","description":"Whether notifications are forwarded to the described channel. This makes it possible to disable delivery of notifications to a particular channel without removing the channel from all alerting policies that reference the channel. This is a more convenient approach when the change is temporary and you want to receive notifications from the same set of alerting policies on the channel at some point in the future.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Configuration fields that define the channel and its behavior. The\npermissible and required labels are specified in the\nNotificationChannelDescriptor corresponding to the type field.\n\nLabels with sensitive data are obfuscated by the API and therefore Terraform cannot\ndetermine if there are upstream changes to these fields. They can also be configured via\nthe sensitive_labels block, but cannot be configured in both places.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The full REST resource name for this channel. The syntax is:\nprojects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]\nThe [CHANNEL_ID] is automatically assigned by the server on creation.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"sensitive_labels":{"type":["list",["object",{"auth_token":"string","password":"string","service_key":"string"}]],"description":"Different notification type behaviors are configured primarily using the the 'labels' field on this\nresource. This block contains the labels which contain secrets or passwords so that they can be marked\nsensitive and hidden from plan output. The name of the field, eg: password, will be the key\nin the 'labels' map in the api request.\n\nCredentials may not be specified in both locations and will cause an error. Changing from one location\nto a different credential configuration in the config will require an apply to update state.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of the notification channel. This field matches the value of the NotificationChannelDescriptor.type field. See https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.notificationChannelDescriptors/list to get the list of valid values such as \"email\", \"slack\", etc...","description_kind":"plain","optional":true},"user_labels":{"type":["map","string"],"description":"User-supplied key/value data that does not need to conform to the corresponding NotificationChannelDescriptor's schema, unlike the labels field. This field is intended to be used for organizing and identifying the NotificationChannel objects.The field can contain up to 64 entries. Each key and value is limited to 63 Unicode characters or 128 bytes, whichever is smaller. Labels and values can contain only lowercase letters, numerals, underscores, and dashes. Keys must begin with a letter.","description_kind":"plain","optional":true},"verification_status":{"type":"string","description":"Indicates whether this channel has been verified or not. On a ListNotificationChannels or GetNotificationChannel operation, this field is expected to be populated.If the value is UNVERIFIED, then it indicates that the channel is non-functioning (it both requires verification and lacks verification); otherwise, it is assumed that the channel works.If the channel is neither VERIFIED nor UNVERIFIED, it implies that the channel is of a type that does not require verification or that this specific channel has been exempted from verification because it was created prior to verification being required for channels of this type.This field cannot be modified using a standard UpdateNotificationChannel operation. To change the value of this field, you must call VerifyNotificationChannel.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_monitoring_uptime_check_ips":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"uptime_check_ips":{"type":["list",["object",{"ip_address":"string","location":"string","region":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_netblock_ip_ranges":{"version":0,"block":{"attributes":{"cidr_blocks":{"type":["list","string"],"description_kind":"plain","computed":true},"cidr_blocks_ipv4":{"type":["list","string"],"description_kind":"plain","computed":true},"cidr_blocks_ipv6":{"type":["list","string"],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"range_type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_organization":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description_kind":"plain","computed":true},"directory_customer_id":{"type":"string","description_kind":"plain","computed":true},"domain":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifecycle_state":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"org_id":{"type":"string","description_kind":"plain","computed":true},"organization":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_project":{"version":1,"block":{"attributes":{"auto_create_network":{"type":"bool","description":"Create the 'default' network automatically. Default true. If set to false, the default network will be deleted. Note that, for quota purposes, you will still need to have 1 network slot available to create the project successfully, even if you set auto_create_network to false, since the network will exist momentarily.","description_kind":"plain","computed":true},"billing_account":{"type":"string","description":"The alphanumeric ID of the billing account this project belongs to. The user or service account performing this operation with Terraform must have Billing Account Administrator privileges (roles/billing.admin) in the organization. See Google Cloud Billing API Access Control for more details.","description_kind":"plain","computed":true},"folder_id":{"type":"string","description":"The numeric ID of the folder this project should be created under. Only one of org_id or folder_id may be specified. If the folder_id is specified, then the project is created under the specified folder. Changing this forces the project to be migrated to the newly specified folder.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to the project.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The display name of the project.","description_kind":"plain","computed":true},"number":{"type":"string","description":"The numeric identifier of the project.","description_kind":"plain","computed":true},"org_id":{"type":"string","description":"The numeric ID of the organization this project belongs to. Changing this forces a new project to be created. Only one of org_id or folder_id may be specified. If the org_id is specified then the project is created at the top level. Changing this forces the project to be migrated to the newly specified organization.","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project ID. Changing this forces a new project to be created.","description_kind":"plain","optional":true},"skip_delete":{"type":"bool","description":"If true, the Terraform resource can be deleted without deleting the Project via the Google API.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_project_organization_policy":{"version":0,"block":{"attributes":{"boolean_policy":{"type":["list",["object",{"enforced":"bool"}]],"description":"A boolean policy is a constraint that is either enforced or not.","description_kind":"plain","computed":true},"constraint":{"type":"string","description":"The name of the Constraint the Policy is configuring, for example, serviceuser.services.","description_kind":"plain","required":true},"etag":{"type":"string","description":"The etag of the organization policy. etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"list_policy":{"type":["list",["object",{"allow":["list",["object",{"all":"bool","values":["set","string"]}]],"deny":["list",["object",{"all":"bool","values":["set","string"]}]],"inherit_from_parent":"bool","suggested_value":"string"}]],"description":"A policy that can define specific values that are allowed or denied for the given constraint. It can also be used to allow or deny all values. ","description_kind":"plain","computed":true},"project":{"type":"string","description":"The project ID.","description_kind":"plain","required":true},"restore_policy":{"type":["list",["object",{"default":"bool"}]],"description":"A restore policy is a constraint to restore the default policy.","description_kind":"plain","computed":true},"update_time":{"type":"string","description":"The timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds, representing when the variable was last updated. Example: \"2016-10-09T12:33:37.578138407Z\".","description_kind":"plain","computed":true},"version":{"type":"number","description":"Version of the Policy. Default version is 0.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_projects":{"version":0,"block":{"attributes":{"filter":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"projects":{"type":["list",["object",{"create_time":"string","labels":["map","string"],"lifecycle_state":"string","name":"string","number":"string","parent":["map","string"],"project_id":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_pubsub_topic":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kms_key_name":{"type":"string","description":"The resource name of the Cloud KMS CryptoKey to be used to protect access\nto messages published on this topic. Your project's PubSub service account\n('service-{{PROJECT_NUMBER}}@gcp-sa-pubsub.iam.gserviceaccount.com') must have\n'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this feature.\nThe expected format is 'projects/*/locations/*/keyRings/*/cryptoKeys/*'","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to this Topic.","description_kind":"plain","computed":true},"message_storage_policy":{"type":["list",["object",{"allowed_persistence_regions":["list","string"]}]],"description":"Policy constraining the set of Google Cloud Platform regions where\nmessages published to the topic may be stored. If not present, then no\nconstraints are in effect.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the topic.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true},"schema_settings":{"type":["list",["object",{"encoding":"string","schema":"string"}]],"description":"Settings for validating messages published against a schema.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_redis_instance":{"version":0,"block":{"attributes":{"alternative_location_id":{"type":"string","description":"Only applicable to STANDARD_HA tier which protects the instance\nagainst zonal failures by provisioning it across two zones.\nIf provided, it must be a different zone from the one provided in\n[locationId].","description_kind":"plain","computed":true},"auth_enabled":{"type":"bool","description":"Optional. Indicates whether OSS Redis AUTH is enabled for the\ninstance. If set to \"true\" AUTH is enabled on the instance.\nDefault value is \"false\" meaning AUTH is disabled.","description_kind":"plain","computed":true},"auth_string":{"type":"string","description":"AUTH String set on the instance. This field will only be populated if auth_enabled is true.","description_kind":"plain","computed":true},"authorized_network":{"type":"string","description":"The full name of the Google Compute Engine network to which the\ninstance is connected. If left unspecified, the default network\nwill be used.","description_kind":"plain","computed":true},"connect_mode":{"type":"string","description":"The connection mode of the Redis instance. Default value: \"DIRECT_PEERING\" Possible values: [\"DIRECT_PEERING\", \"PRIVATE_SERVICE_ACCESS\"]","description_kind":"plain","computed":true},"create_time":{"type":"string","description":"The time the instance was created in RFC3339 UTC \"Zulu\" format,\naccurate to nanoseconds.","description_kind":"plain","computed":true},"current_location_id":{"type":"string","description":"The current zone where the Redis endpoint is placed.\nFor Basic Tier instances, this will always be the same as the\n[locationId] provided by the user at creation time. For Standard Tier\ninstances, this can be either [locationId] or [alternativeLocationId]\nand can change after a failover event.","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"An arbitrary and optional user-provided name for the instance.","description_kind":"plain","computed":true},"host":{"type":"string","description":"Hostname or IP address of the exposed Redis endpoint used by clients\nto connect to the service.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Resource labels to represent user provided metadata.","description_kind":"plain","computed":true},"location_id":{"type":"string","description":"The zone where the instance will be provisioned. If not provided,\nthe service will choose a zone for the instance. For STANDARD_HA tier,\ninstances will be created across two zones for protection against\nzonal failures. If [alternativeLocationId] is also provided, it must\nbe different from [locationId].","description_kind":"plain","computed":true},"memory_size_gb":{"type":"number","description":"Redis memory size in GiB.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The ID of the instance or a fully qualified identifier for the instance.","description_kind":"plain","required":true},"persistence_iam_identity":{"type":"string","description":"Output only. Cloud IAM identity used by import / export operations\nto transfer data to/from Cloud Storage. Format is \"serviceAccount:\".\nThe value may change over time for a given instance so should be\nchecked before each import/export operation.","description_kind":"plain","computed":true},"port":{"type":"number","description":"The port number of the exposed Redis endpoint.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"redis_configs":{"type":["map","string"],"description":"Redis configuration parameters, according to http://redis.io/topics/config.\nPlease check Memorystore documentation for the list of supported parameters:\nhttps://cloud.google.com/memorystore/docs/redis/reference/rest/v1/projects.locations.instances#Instance.FIELDS.redis_configs","description_kind":"plain","computed":true},"redis_version":{"type":"string","description":"The version of Redis software. If not provided, latest supported\nversion will be used. Please check the API documentation linked \nat the top for the latest valid values.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The name of the Redis region of the instance.","description_kind":"plain","optional":true},"reserved_ip_range":{"type":"string","description":"The CIDR range of internal addresses that are reserved for this\ninstance. If not provided, the service will choose an unused /29\nblock, for example, 10.0.0.0/29 or 192.168.0.0/29. Ranges must be\nunique and non-overlapping with existing subnets in an authorized\nnetwork.","description_kind":"plain","computed":true},"server_ca_certs":{"type":["list",["object",{"cert":"string","create_time":"string","expire_time":"string","serial_number":"string","sha1_fingerprint":"string"}]],"description":"List of server CA certificates for the instance.","description_kind":"plain","computed":true},"tier":{"type":"string","description":"The service tier of the instance. Must be one of these values:\n\n- BASIC: standalone instance\n- STANDARD_HA: highly available primary/replica instances Default value: \"BASIC\" Possible values: [\"BASIC\", \"STANDARD_HA\"]","description_kind":"plain","computed":true},"transit_encryption_mode":{"type":"string","description":"The TLS mode of the Redis instance, If not provided, TLS is disabled for the instance.\n\n- SERVER_AUTHENTICATION: Client to Server traffic encryption enabled with server authentcation Default value: \"DISABLED\" Possible values: [\"SERVER_AUTHENTICATION\", \"DISABLED\"]","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_secret_manager_secret":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"The time at which the Secret was created.","description_kind":"plain","computed":true},"expire_time":{"type":"string","description":"Timestamp in UTC when the Secret is scheduled to expire. This is always provided on output, regardless of what was sent on input.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The labels assigned to this Secret.\n\nLabel keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,\nand must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}][\\p{Ll}\\p{Lo}\\p{N}_-]{0,62}\n\nLabel values must be between 0 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,\nand must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}\n\nNo more than 64 labels can be assigned to a given resource.\n\nAn object containing a list of \"key\": value pairs. Example:\n{ \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The resource name of the Secret. Format:\n'projects/{{project}}/secrets/{{secret_id}}'","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"replication":{"type":["list",["object",{"automatic":"bool","user_managed":["list",["object",{"replicas":["list",["object",{"customer_managed_encryption":["list",["object",{"kms_key_name":"string"}]],"location":"string"}]]}]]}]],"description":"The replication policy of the secret data attached to the Secret. It cannot be changed\nafter the Secret has been created.","description_kind":"plain","computed":true},"rotation":{"type":["list",["object",{"next_rotation_time":"string","rotation_period":"string"}]],"description":"The rotation time and period for a Secret. At 'next_rotation_time', Secret Manager will send a Pub/Sub notification to the topics configured on the Secret. 'topics' must be set to configure rotation.","description_kind":"plain","computed":true},"secret_id":{"type":"string","description":"This must be unique within the project.","description_kind":"plain","required":true},"topics":{"type":["list",["object",{"name":"string"}]],"description":"A list of up to 10 Pub/Sub topics to which messages are published when control plane operations are called on the secret or its versions.","description_kind":"plain","computed":true},"ttl":{"type":"string","description":"The TTL for the Secret.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_secret_manager_secret_version":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description_kind":"plain","computed":true},"destroy_time":{"type":"string","description_kind":"plain","computed":true},"enabled":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secret":{"type":"string","description_kind":"plain","required":true},"secret_data":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"version":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_service_account":{"version":0,"block":{"attributes":{"account_id":{"type":"string","description_kind":"plain","required":true},"display_name":{"type":"string","description_kind":"plain","computed":true},"email":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"unique_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_service_account_access_token":{"version":0,"block":{"attributes":{"access_token":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"delegates":{"type":["set","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifetime":{"type":"string","description_kind":"plain","optional":true},"scopes":{"type":["set","string"],"description_kind":"plain","required":true},"target_service_account":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_service_account_id_token":{"version":0,"block":{"attributes":{"delegates":{"type":["set","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id_token":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"include_email":{"type":"bool","description_kind":"plain","optional":true},"target_audience":{"type":"string","description_kind":"plain","required":true},"target_service_account":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_service_account_key":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_algorithm":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true},"public_key":{"type":"string","description_kind":"plain","computed":true},"public_key_type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_service_networking_peered_dns_domain":{"version":0,"block":{"attributes":{"dns_suffix":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"network":{"type":"string","description_kind":"plain","required":true},"parent":{"type":"string","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","required":true},"service":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_sourcerepo_repository":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Resource name of the repository, of the form '{{repo}}'.\nThe repo name may contain slashes. eg, 'name/with/slash'","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true},"pubsub_configs":{"type":["set",["object",{"message_format":"string","service_account_email":"string","topic":"string"}]],"description":"How this repository publishes a change in the repository through Cloud Pub/Sub. \nKeyed by the topic names.","description_kind":"plain","computed":true},"size":{"type":"number","description":"The disk usage of the repo, in bytes.","description_kind":"plain","computed":true},"url":{"type":"string","description":"URL to clone the repository from Google Cloud Source Repositories.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_spanner_instance":{"version":0,"block":{"attributes":{"config":{"type":"string","description":"The name of the instance's configuration (similar but not\nquite the same as a region) which defines the geographic placement and\nreplication of your databases in this instance. It determines where your data\nis stored. Values are typically of the form 'regional-europe-west1' , 'us-central' etc.\nIn order to obtain a valid list please consult the\n[Configuration section of the docs](https://cloud.google.com/spanner/docs/instances).","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The descriptive name for this instance as it appears in UIs. Must be\nunique per project and between 4 and 30 characters in length.","description_kind":"plain","optional":true},"force_destroy":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"An object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","computed":true},"name":{"type":"string","description":"A unique identifier for the instance, which cannot be changed after\nthe instance is created. The name must be between 6 and 30 characters\nin length.\n\n\nIf not provided, a random string starting with 'tf-' will be selected.","description_kind":"plain","required":true},"num_nodes":{"type":"number","description":"The number of nodes allocated to this instance. At most one of either node_count or processing_units\ncan be present in terraform.","description_kind":"plain","computed":true},"processing_units":{"type":"number","description":"The number of processing units allocated to this instance. At most one of processing_units \nor node_count can be present in terraform.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"state":{"type":"string","description":"Instance status: 'CREATING' or 'READY'.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_sql_backup_run":{"version":0,"block":{"attributes":{"backup_id":{"type":"number","description":"The identifier for this backup run. Unique only for a specific Cloud SQL instance. If left empty and multiple backups exist for the instance, most_recent must be set to true.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description":"Name of the database instance.","description_kind":"plain","required":true},"location":{"type":"string","description":"Location of the backups.","description_kind":"plain","computed":true},"most_recent":{"type":"bool","description":"Toggles use of the most recent backup run if multiple backups exist for a Cloud SQL instance.","description_kind":"plain","optional":true},"start_time":{"type":"string","description":"The time the backup operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of this run.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_sql_ca_certs":{"version":0,"block":{"attributes":{"active_version":{"type":"string","description_kind":"plain","computed":true},"certs":{"type":["list",["object",{"cert":"string","common_name":"string","create_time":"string","expiration_time":"string","sha1_fingerprint":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_sql_database_instance":{"version":0,"block":{"attributes":{"clone":{"type":["list",["object",{"point_in_time":"string","source_instance_name":"string"}]],"description":"Configuration for creating a new instance as a clone of another instance.","description_kind":"plain","computed":true},"connection_name":{"type":"string","description":"The connection name of the instance to be used in connection strings. For example, when connecting with Cloud SQL Proxy.","description_kind":"plain","computed":true},"database_version":{"type":"string","description":"The MySQL, PostgreSQL or SQL Server (beta) version to use. Supported values include MYSQL_5_6, MYSQL_5_7, MYSQL_8_0, POSTGRES_9_6, POSTGRES_10, POSTGRES_11, POSTGRES_12, POSTGRES_13, SQLSERVER_2017_STANDARD, SQLSERVER_2017_ENTERPRISE, SQLSERVER_2017_EXPRESS, SQLSERVER_2017_WEB. Database Version Policies includes an up-to-date reference of supported versions.","description_kind":"plain","computed":true},"deletion_protection":{"type":"bool","description":"Used to block Terraform from deleting a SQL Instance.","description_kind":"plain","computed":true},"first_ip_address":{"type":"string","description":"The first IPv4 address of any type assigned. This is to support accessing the first address in the list in a terraform output when the resource is configured with a count.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":["list",["object",{"ip_address":"string","time_to_retire":"string","type":"string"}]],"description_kind":"plain","computed":true},"master_instance_name":{"type":"string","description":"The name of the instance that will act as the master in the replication setup. Note, this requires the master to have binary_log_enabled set, as well as existing backups.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the instance. If the name is left blank, Terraform will randomly generate one when the instance is first created. This is done because after a name is used, it cannot be reused for up to one week.","description_kind":"plain","required":true},"private_ip_address":{"type":"string","description":"IPv4 address assigned. This is a workaround for an issue fixed in Terraform 0.12 but also provides a convenient way to access an IP of a specific type without performing filtering in a Terraform config.","description_kind":"plain","computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true},"public_ip_address":{"type":"string","description":"IPv4 address assigned. This is a workaround for an issue fixed in Terraform 0.12 but also provides a convenient way to access an IP of a specific type without performing filtering in a Terraform config.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region the instance will sit in. Note, Cloud SQL is not available in all regions. A valid region must be provided to use this resource. If a region is not provided in the resource definition, the provider region will be used instead, but this will be an apply-time error for instances if the provider region is not supported with Cloud SQL. If you choose not to provide the region argument for this resource, make sure you understand this.","description_kind":"plain","computed":true},"replica_configuration":{"type":["list",["object",{"ca_certificate":"string","client_certificate":"string","client_key":"string","connect_retry_interval":"number","dump_file_path":"string","failover_target":"bool","master_heartbeat_period":"number","password":"string","ssl_cipher":"string","username":"string","verify_server_certificate":"bool"}]],"description":"The configuration for replication.","description_kind":"plain","computed":true},"restore_backup_context":{"type":["list",["object",{"backup_run_id":"number","instance_id":"string","project":"string"}]],"description_kind":"plain","computed":true},"root_password":{"type":"string","description":"Initial root password. Required for MS SQL Server, ignored by MySQL and PostgreSQL.","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"server_ca_cert":{"type":["list",["object",{"cert":"string","common_name":"string","create_time":"string","expiration_time":"string","sha1_fingerprint":"string"}]],"description_kind":"plain","computed":true},"service_account_email_address":{"type":"string","description":"The service account email address assigned to the instance.","description_kind":"plain","computed":true},"settings":{"type":["list",["object",{"activation_policy":"string","availability_type":"string","backup_configuration":["list",["object",{"backup_retention_settings":["list",["object",{"retained_backups":"number","retention_unit":"string"}]],"binary_log_enabled":"bool","enabled":"bool","location":"string","point_in_time_recovery_enabled":"bool","start_time":"string","transaction_log_retention_days":"number"}]],"collation":"string","database_flags":["list",["object",{"name":"string","value":"string"}]],"disk_autoresize":"bool","disk_autoresize_limit":"number","disk_size":"number","disk_type":"string","insights_config":["list",["object",{"query_insights_enabled":"bool","query_string_length":"number","record_application_tags":"bool","record_client_address":"bool"}]],"ip_configuration":["list",["object",{"authorized_networks":["set",["object",{"expiration_time":"string","name":"string","value":"string"}]],"ipv4_enabled":"bool","private_network":"string","require_ssl":"bool"}]],"location_preference":["list",["object",{"follow_gae_application":"string","zone":"string"}]],"maintenance_window":["list",["object",{"day":"number","hour":"number","update_track":"string"}]],"pricing_plan":"string","tier":"string","user_labels":["map","string"],"version":"number"}]],"description":"The settings to use for the database. The configuration is detailed below.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_storage_bucket":{"version":0,"block":{"attributes":{"cors":{"type":["list",["object",{"max_age_seconds":"number","method":["list","string"],"origin":["list","string"],"response_header":["list","string"]}]],"description":"The bucket's Cross-Origin Resource Sharing (CORS) configuration.","description_kind":"plain","computed":true},"default_event_based_hold":{"type":"bool","description_kind":"plain","computed":true},"encryption":{"type":["list",["object",{"default_kms_key_name":"string"}]],"description":"The bucket's encryption configuration.","description_kind":"plain","computed":true},"force_destroy":{"type":"bool","description":"When deleting a bucket, this boolean option will delete all contained objects. If you try to delete a bucket that contains objects, Terraform will fail that run.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to the bucket.","description_kind":"plain","computed":true},"lifecycle_rule":{"type":["list",["object",{"action":["set",["object",{"storage_class":"string","type":"string"}]],"condition":["set",["object",{"age":"number","created_before":"string","custom_time_before":"string","days_since_custom_time":"number","days_since_noncurrent_time":"number","matches_storage_class":["list","string"],"noncurrent_time_before":"string","num_newer_versions":"number","with_state":"string"}]]}]],"description":"The bucket's Lifecycle Rules configuration.","description_kind":"plain","computed":true},"location":{"type":"string","description":"The Google Cloud Storage location","description_kind":"plain","computed":true},"logging":{"type":["list",["object",{"log_bucket":"string","log_object_prefix":"string"}]],"description":"The bucket's Access \u0026 Storage Logs configuration.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the bucket.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","computed":true},"requester_pays":{"type":"bool","description":"Enables Requester Pays on a storage bucket.","description_kind":"plain","computed":true},"retention_policy":{"type":["list",["object",{"is_locked":"bool","retention_period":"number"}]],"description":"Configuration of the bucket's data retention policy for how long objects in the bucket should be retained.","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"storage_class":{"type":"string","description":"The Storage Class of the new bucket. Supported values include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE.","description_kind":"plain","computed":true},"uniform_bucket_level_access":{"type":"bool","description":"Enables uniform bucket-level access on a bucket.","description_kind":"plain","computed":true},"url":{"type":"string","description":"The base URL of the bucket, in the format gs://\u003cbucket-name\u003e.","description_kind":"plain","computed":true},"versioning":{"type":["list",["object",{"enabled":"bool"}]],"description":"The bucket's Versioning configuration.","description_kind":"plain","computed":true},"website":{"type":["list",["object",{"main_page_suffix":"string","not_found_page":"string"}]],"description":"Configuration if the bucket acts as a website.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_storage_bucket_object":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The name of the containing bucket.","description_kind":"plain","optional":true},"cache_control":{"type":"string","description":"Cache-Control directive to specify caching behavior of object data. If omitted and object is accessible to all anonymous users, the default will be public, max-age=3600","description_kind":"plain","computed":true},"content":{"type":"string","description":"Data as string to be uploaded. Must be defined if source is not. Note: The content field is marked as sensitive. To view the raw contents of the object, please define an output.","description_kind":"plain","computed":true},"content_disposition":{"type":"string","description":"Content-Disposition of the object data.","description_kind":"plain","computed":true},"content_encoding":{"type":"string","description":"Content-Encoding of the object data.","description_kind":"plain","computed":true},"content_language":{"type":"string","description":"Content-Language of the object data.","description_kind":"plain","computed":true},"content_type":{"type":"string","description":"Content-Type of the object data. Defaults to \"application/octet-stream\" or \"text/plain; charset=utf-8\".","description_kind":"plain","computed":true},"crc32c":{"type":"string","description":"Base 64 CRC32 hash of the uploaded data.","description_kind":"plain","computed":true},"customer_encryption":{"type":["list",["object",{"encryption_algorithm":"string","encryption_key":"string"}]],"description":"Encryption key; encoded using base64.","description_kind":"plain","computed":true},"detect_md5hash":{"type":"string","description_kind":"plain","computed":true},"event_based_hold":{"type":"bool","description":"Whether an object is under event-based hold. Event-based hold is a way to retain objects until an event occurs, which is signified by the hold's release (i.e. this value is set to false). After being released (set to false), such objects will be subject to bucket-level retention (if any).","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kms_key_name":{"type":"string","description":"Resource name of the Cloud KMS key that will be used to encrypt the object. Overrides the object metadata's kmsKeyName value, if any.","description_kind":"plain","computed":true},"md5hash":{"type":"string","description":"Base 64 MD5 hash of the uploaded data.","description_kind":"plain","computed":true},"media_link":{"type":"string","description":"A url reference to download this object.","description_kind":"plain","computed":true},"metadata":{"type":["map","string"],"description":"User-provided metadata, in key/value pairs.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the object. If you're interpolating the name of this object, see output_name instead.","description_kind":"plain","optional":true},"output_name":{"type":"string","description":"The name of the object. Use this field in interpolations with google_storage_object_acl to recreate google_storage_object_acl resources when your google_storage_bucket_object is recreated.","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"A url reference to this object.","description_kind":"plain","computed":true},"source":{"type":"string","description":"A path to the data you want to upload. Must be defined if content is not.","description_kind":"plain","computed":true},"storage_class":{"type":"string","description":"The StorageClass of the new bucket object. Supported values include: MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE. If not provided, this defaults to the bucket's default storage class or to a standard class.","description_kind":"plain","computed":true},"temporary_hold":{"type":"bool","description":"Whether an object is under temporary hold. While this flag is set to true, the object is protected against deletion and overwrites.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_storage_bucket_object_content":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The name of the containing bucket.","description_kind":"plain","required":true},"cache_control":{"type":"string","description":"Cache-Control directive to specify caching behavior of object data. If omitted and object is accessible to all anonymous users, the default will be public, max-age=3600","description_kind":"plain","computed":true},"content":{"type":"string","description":"Data as string to be uploaded. Must be defined if source is not. Note: The content field is marked as sensitive. To view the raw contents of the object, please define an output.","description_kind":"plain","optional":true},"content_disposition":{"type":"string","description":"Content-Disposition of the object data.","description_kind":"plain","computed":true},"content_encoding":{"type":"string","description":"Content-Encoding of the object data.","description_kind":"plain","computed":true},"content_language":{"type":"string","description":"Content-Language of the object data.","description_kind":"plain","computed":true},"content_type":{"type":"string","description":"Content-Type of the object data. Defaults to \"application/octet-stream\" or \"text/plain; charset=utf-8\".","description_kind":"plain","computed":true},"crc32c":{"type":"string","description":"Base 64 CRC32 hash of the uploaded data.","description_kind":"plain","computed":true},"customer_encryption":{"type":["list",["object",{"encryption_algorithm":"string","encryption_key":"string"}]],"description":"Encryption key; encoded using base64.","description_kind":"plain","computed":true},"detect_md5hash":{"type":"string","description_kind":"plain","computed":true},"event_based_hold":{"type":"bool","description":"Whether an object is under event-based hold. Event-based hold is a way to retain objects until an event occurs, which is signified by the hold's release (i.e. this value is set to false). After being released (set to false), such objects will be subject to bucket-level retention (if any).","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kms_key_name":{"type":"string","description":"Resource name of the Cloud KMS key that will be used to encrypt the object. Overrides the object metadata's kmsKeyName value, if any.","description_kind":"plain","computed":true},"md5hash":{"type":"string","description":"Base 64 MD5 hash of the uploaded data.","description_kind":"plain","computed":true},"media_link":{"type":"string","description":"A url reference to download this object.","description_kind":"plain","computed":true},"metadata":{"type":["map","string"],"description":"User-provided metadata, in key/value pairs.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the object. If you're interpolating the name of this object, see output_name instead.","description_kind":"plain","required":true},"output_name":{"type":"string","description":"The name of the object. Use this field in interpolations with google_storage_object_acl to recreate google_storage_object_acl resources when your google_storage_bucket_object is recreated.","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"A url reference to this object.","description_kind":"plain","computed":true},"source":{"type":"string","description":"A path to the data you want to upload. Must be defined if content is not.","description_kind":"plain","computed":true},"storage_class":{"type":"string","description":"The StorageClass of the new bucket object. Supported values include: MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE. If not provided, this defaults to the bucket's default storage class or to a standard class.","description_kind":"plain","computed":true},"temporary_hold":{"type":"bool","description":"Whether an object is under temporary hold. While this flag is set to true, the object is protected against deletion and overwrites.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_storage_object_signed_url":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"content_md5":{"type":"string","description_kind":"plain","optional":true},"content_type":{"type":"string","description_kind":"plain","optional":true},"credentials":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"duration":{"type":"string","description_kind":"plain","optional":true},"extension_headers":{"type":["map","string"],"description_kind":"plain","optional":true},"http_method":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"path":{"type":"string","description_kind":"plain","required":true},"signed_url":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_storage_project_service_account":{"version":0,"block":{"attributes":{"email_address":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"user_project":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_storage_transfer_project_service_account":{"version":0,"block":{"attributes":{"email":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_tpu_tensorflow_versions":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"versions":{"type":["list","string"],"description_kind":"plain","computed":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}}}}}} +{"format_version":"1.0","provider_schemas":{"registry.terraform.io/hashicorp/google":{"provider":{"version":0,"block":{"attributes":{"access_approval_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"access_context_manager_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"access_token":{"type":"string","description_kind":"plain","optional":true},"active_directory_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"apigee_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"apikeys_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"app_engine_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"assured_workloads_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"big_query_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"bigquery_data_transfer_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"bigquery_reservation_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"bigtable_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"billing_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"billing_project":{"type":"string","description_kind":"plain","optional":true},"binary_authorization_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"cloud_asset_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"cloud_billing_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"cloud_build_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"cloud_build_worker_pool_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"cloud_functions_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"cloud_identity_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"cloud_iot_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"cloud_resource_manager_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"cloud_run_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"cloud_scheduler_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"cloud_tasks_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"composer_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"compute_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"container_analysis_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"container_aws_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"container_azure_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"container_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"credentials":{"type":"string","description_kind":"plain","optional":true},"data_catalog_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"data_fusion_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"data_loss_prevention_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"dataflow_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"dataproc_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"datastore_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"deployment_manager_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"dialogflow_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"dialogflow_cx_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"dns_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"essential_contacts_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"eventarc_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"filestore_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"firebaserules_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"firestore_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"game_services_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"gke_hub_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"gkehub_feature_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"healthcare_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"iam_credentials_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"iam_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"iap_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"identity_platform_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"impersonate_service_account":{"type":"string","description_kind":"plain","optional":true},"impersonate_service_account_delegates":{"type":["list","string"],"description_kind":"plain","optional":true},"kms_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"logging_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"memcache_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"ml_engine_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"monitoring_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"network_connectivity_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"network_management_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"network_services_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"notebooks_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"org_policy_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"os_config_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"os_login_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"privateca_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true},"pubsub_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"pubsub_lite_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"recaptcha_enterprise_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"redis_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true},"request_reason":{"type":"string","description_kind":"plain","optional":true},"request_timeout":{"type":"string","description_kind":"plain","optional":true},"resource_manager_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"resource_manager_v2_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"scopes":{"type":["list","string"],"description_kind":"plain","optional":true},"secret_manager_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"security_center_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"service_management_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"service_networking_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"service_usage_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"source_repo_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"spanner_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"sql_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"storage_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"storage_transfer_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"tags_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"tpu_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"user_project_override":{"type":"bool","description_kind":"plain","optional":true},"vertex_ai_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"vpc_access_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"workflows_custom_endpoint":{"type":"string","description_kind":"plain","optional":true},"zone":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"batching":{"nesting_mode":"list","block":{"attributes":{"enable_batching":{"type":"bool","description_kind":"plain","optional":true},"send_after":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"resource_schemas":{"google_access_context_manager_access_level":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Description of the AccessLevel and its use. Does not affect behavior.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Resource name for the Access Level. The short_name component must begin\nwith a letter and only include alphanumeric and '_'.\nFormat: accessPolicies/{policy_id}/accessLevels/{short_name}","description_kind":"plain","required":true},"parent":{"type":"string","description":"The AccessPolicy this AccessLevel lives in.\nFormat: accessPolicies/{policy_id}","description_kind":"plain","required":true},"title":{"type":"string","description":"Human readable title. Must be unique within the Policy.","description_kind":"plain","required":true}},"block_types":{"basic":{"nesting_mode":"list","block":{"attributes":{"combining_function":{"type":"string","description":"How the conditions list should be combined to determine if a request\nis granted this AccessLevel. If AND is used, each Condition in\nconditions must be satisfied for the AccessLevel to be applied. If\nOR is used, at least one Condition in conditions must be satisfied\nfor the AccessLevel to be applied. Default value: \"AND\" Possible values: [\"AND\", \"OR\"]","description_kind":"plain","optional":true}},"block_types":{"conditions":{"nesting_mode":"list","block":{"attributes":{"ip_subnetworks":{"type":["list","string"],"description":"A list of CIDR block IP subnetwork specification. May be IPv4\nor IPv6.\nNote that for a CIDR IP address block, the specified IP address\nportion must be properly truncated (i.e. all the host bits must\nbe zero) or the input is considered malformed. For example,\n\"192.0.2.0/24\" is accepted but \"192.0.2.1/24\" is not. Similarly,\nfor IPv6, \"2001:db8::/32\" is accepted whereas \"2001:db8::1/32\"\nis not. The originating IP of a request must be in one of the\nlisted subnets in order for this Condition to be true.\nIf empty, all IP addresses are allowed.","description_kind":"plain","optional":true},"members":{"type":["list","string"],"description":"An allowed list of members (users, service accounts).\nUsing groups is not supported yet.\n\nThe signed-in user originating the request must be a part of one\nof the provided members. If not specified, a request may come\nfrom any user (logged in/not logged in, not present in any\ngroups, etc.).\nFormats: 'user:{emailid}', 'serviceAccount:{emailid}'","description_kind":"plain","optional":true},"negate":{"type":"bool","description":"Whether to negate the Condition. If true, the Condition becomes\na NAND over its non-empty fields, each field must be false for\nthe Condition overall to be satisfied. Defaults to false.","description_kind":"plain","optional":true},"regions":{"type":["list","string"],"description":"The request must originate from one of the provided\ncountries/regions.\nFormat: A valid ISO 3166-1 alpha-2 code.","description_kind":"plain","optional":true},"required_access_levels":{"type":["list","string"],"description":"A list of other access levels defined in the same Policy,\nreferenced by resource name. Referencing an AccessLevel which\ndoes not exist is an error. All access levels listed must be\ngranted for the Condition to be true.\nFormat: accessPolicies/{policy_id}/accessLevels/{short_name}","description_kind":"plain","optional":true}},"block_types":{"device_policy":{"nesting_mode":"list","block":{"attributes":{"allowed_device_management_levels":{"type":["list","string"],"description":"A list of allowed device management levels.\nAn empty list allows all management levels. Possible values: [\"MANAGEMENT_UNSPECIFIED\", \"NONE\", \"BASIC\", \"COMPLETE\"]","description_kind":"plain","optional":true},"allowed_encryption_statuses":{"type":["list","string"],"description":"A list of allowed encryptions statuses.\nAn empty list allows all statuses. Possible values: [\"ENCRYPTION_UNSPECIFIED\", \"ENCRYPTION_UNSUPPORTED\", \"UNENCRYPTED\", \"ENCRYPTED\"]","description_kind":"plain","optional":true},"require_admin_approval":{"type":"bool","description":"Whether the device needs to be approved by the customer admin.","description_kind":"plain","optional":true},"require_corp_owned":{"type":"bool","description":"Whether the device needs to be corp owned.","description_kind":"plain","optional":true},"require_screen_lock":{"type":"bool","description":"Whether or not screenlock is required for the DevicePolicy\nto be true. Defaults to false.","description_kind":"plain","optional":true}},"block_types":{"os_constraints":{"nesting_mode":"list","block":{"attributes":{"minimum_version":{"type":"string","description":"The minimum allowed OS version. If not set, any version\nof this OS satisfies the constraint.\nFormat: \"major.minor.patch\" such as \"10.5.301\", \"9.2.1\".","description_kind":"plain","optional":true},"os_type":{"type":"string","description":"The operating system type of the device. Possible values: [\"OS_UNSPECIFIED\", \"DESKTOP_MAC\", \"DESKTOP_WINDOWS\", \"DESKTOP_LINUX\", \"DESKTOP_CHROME_OS\", \"ANDROID\", \"IOS\"]","description_kind":"plain","required":true},"require_verified_chrome_os":{"type":"bool","description":"If you specify DESKTOP_CHROME_OS for osType, you can optionally include requireVerifiedChromeOs to require Chrome Verified Access.","description_kind":"plain","optional":true}},"description":"A list of allowed OS versions.\nAn empty list allows all types and all versions.","description_kind":"plain"}}},"description":"Device specific restrictions, all restrictions must hold for\nthe Condition to be true. If not specified, all devices are\nallowed.","description_kind":"plain"},"max_items":1}},"description":"A set of requirements for the AccessLevel to be granted.","description_kind":"plain"},"min_items":1}},"description":"A set of predefined conditions for the access level and a combining function.","description_kind":"plain"},"max_items":1},"custom":{"nesting_mode":"list","block":{"block_types":{"expr":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Description of the expression","description_kind":"plain","optional":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.","description_kind":"plain","required":true},"location":{"type":"string","description":"String indicating the location of the expression for error reporting, e.g. a file name and a position in the file","description_kind":"plain","optional":true},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its purpose.","description_kind":"plain","optional":true}},"description":"Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language.\nThis page details the objects and attributes that are used to the build the CEL expressions for \ncustom access levels - https://cloud.google.com/access-context-manager/docs/custom-access-level-spec.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Custom access level conditions are set using the Cloud Common Expression Language to represent the necessary conditions for the level to apply to a request. \nSee CEL spec at: https://github.com/google/cel-spec.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_access_context_manager_access_level_condition":{"version":0,"block":{"attributes":{"access_level":{"type":"string","description":"The name of the Access Level to add this condition to.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_subnetworks":{"type":["list","string"],"description":"A list of CIDR block IP subnetwork specification. May be IPv4\nor IPv6.\nNote that for a CIDR IP address block, the specified IP address\nportion must be properly truncated (i.e. all the host bits must\nbe zero) or the input is considered malformed. For example,\n\"192.0.2.0/24\" is accepted but \"192.0.2.1/24\" is not. Similarly,\nfor IPv6, \"2001:db8::/32\" is accepted whereas \"2001:db8::1/32\"\nis not. The originating IP of a request must be in one of the\nlisted subnets in order for this Condition to be true.\nIf empty, all IP addresses are allowed.","description_kind":"plain","optional":true},"members":{"type":["list","string"],"description":"An allowed list of members (users, service accounts).\nUsing groups is not supported yet.\n\nThe signed-in user originating the request must be a part of one\nof the provided members. If not specified, a request may come\nfrom any user (logged in/not logged in, not present in any\ngroups, etc.).\nFormats: 'user:{emailid}', 'serviceAccount:{emailid}'","description_kind":"plain","optional":true},"negate":{"type":"bool","description":"Whether to negate the Condition. If true, the Condition becomes\na NAND over its non-empty fields, each field must be false for\nthe Condition overall to be satisfied. Defaults to false.","description_kind":"plain","optional":true},"regions":{"type":["list","string"],"description":"The request must originate from one of the provided\ncountries/regions.\nFormat: A valid ISO 3166-1 alpha-2 code.","description_kind":"plain","optional":true},"required_access_levels":{"type":["list","string"],"description":"A list of other access levels defined in the same Policy,\nreferenced by resource name. Referencing an AccessLevel which\ndoes not exist is an error. All access levels listed must be\ngranted for the Condition to be true.\nFormat: accessPolicies/{policy_id}/accessLevels/{short_name}","description_kind":"plain","optional":true}},"block_types":{"device_policy":{"nesting_mode":"list","block":{"attributes":{"allowed_device_management_levels":{"type":["list","string"],"description":"A list of allowed device management levels.\nAn empty list allows all management levels. Possible values: [\"MANAGEMENT_UNSPECIFIED\", \"NONE\", \"BASIC\", \"COMPLETE\"]","description_kind":"plain","optional":true},"allowed_encryption_statuses":{"type":["list","string"],"description":"A list of allowed encryptions statuses.\nAn empty list allows all statuses. Possible values: [\"ENCRYPTION_UNSPECIFIED\", \"ENCRYPTION_UNSUPPORTED\", \"UNENCRYPTED\", \"ENCRYPTED\"]","description_kind":"plain","optional":true},"require_admin_approval":{"type":"bool","description":"Whether the device needs to be approved by the customer admin.","description_kind":"plain","optional":true},"require_corp_owned":{"type":"bool","description":"Whether the device needs to be corp owned.","description_kind":"plain","optional":true},"require_screen_lock":{"type":"bool","description":"Whether or not screenlock is required for the DevicePolicy\nto be true. Defaults to false.","description_kind":"plain","optional":true}},"block_types":{"os_constraints":{"nesting_mode":"list","block":{"attributes":{"minimum_version":{"type":"string","description":"The minimum allowed OS version. If not set, any version\nof this OS satisfies the constraint.\nFormat: \"major.minor.patch\" such as \"10.5.301\", \"9.2.1\".","description_kind":"plain","optional":true},"os_type":{"type":"string","description":"The operating system type of the device. Possible values: [\"OS_UNSPECIFIED\", \"DESKTOP_MAC\", \"DESKTOP_WINDOWS\", \"DESKTOP_LINUX\", \"DESKTOP_CHROME_OS\", \"ANDROID\", \"IOS\"]","description_kind":"plain","required":true}},"description":"A list of allowed OS versions.\nAn empty list allows all types and all versions.","description_kind":"plain"}}},"description":"Device specific restrictions, all restrictions must hold for\nthe Condition to be true. If not specified, all devices are\nallowed.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_access_context_manager_access_levels":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"parent":{"type":"string","description":"The AccessPolicy this AccessLevel lives in.\nFormat: accessPolicies/{policy_id}","description_kind":"plain","required":true}},"block_types":{"access_levels":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"Description of the AccessLevel and its use. Does not affect behavior.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Resource name for the Access Level. The short_name component must begin\nwith a letter and only include alphanumeric and '_'.\nFormat: accessPolicies/{policy_id}/accessLevels/{short_name}","description_kind":"plain","required":true},"title":{"type":"string","description":"Human readable title. Must be unique within the Policy.","description_kind":"plain","required":true}},"block_types":{"basic":{"nesting_mode":"list","block":{"attributes":{"combining_function":{"type":"string","description":"How the conditions list should be combined to determine if a request\nis granted this AccessLevel. If AND is used, each Condition in\nconditions must be satisfied for the AccessLevel to be applied. If\nOR is used, at least one Condition in conditions must be satisfied\nfor the AccessLevel to be applied. Default value: \"AND\" Possible values: [\"AND\", \"OR\"]","description_kind":"plain","optional":true}},"block_types":{"conditions":{"nesting_mode":"list","block":{"attributes":{"ip_subnetworks":{"type":["list","string"],"description":"A list of CIDR block IP subnetwork specification. May be IPv4\nor IPv6.\nNote that for a CIDR IP address block, the specified IP address\nportion must be properly truncated (i.e. all the host bits must\nbe zero) or the input is considered malformed. For example,\n\"192.0.2.0/24\" is accepted but \"192.0.2.1/24\" is not. Similarly,\nfor IPv6, \"2001:db8::/32\" is accepted whereas \"2001:db8::1/32\"\nis not. The originating IP of a request must be in one of the\nlisted subnets in order for this Condition to be true.\nIf empty, all IP addresses are allowed.","description_kind":"plain","optional":true},"members":{"type":["list","string"],"description":"An allowed list of members (users, service accounts).\nUsing groups is not supported yet.\n\nThe signed-in user originating the request must be a part of one\nof the provided members. If not specified, a request may come\nfrom any user (logged in/not logged in, not present in any\ngroups, etc.).\nFormats: 'user:{emailid}', 'serviceAccount:{emailid}'","description_kind":"plain","optional":true},"negate":{"type":"bool","description":"Whether to negate the Condition. If true, the Condition becomes\na NAND over its non-empty fields, each field must be false for\nthe Condition overall to be satisfied. Defaults to false.","description_kind":"plain","optional":true},"regions":{"type":["list","string"],"description":"The request must originate from one of the provided\ncountries/regions.\nFormat: A valid ISO 3166-1 alpha-2 code.","description_kind":"plain","optional":true},"required_access_levels":{"type":["list","string"],"description":"A list of other access levels defined in the same Policy,\nreferenced by resource name. Referencing an AccessLevel which\ndoes not exist is an error. All access levels listed must be\ngranted for the Condition to be true.\nFormat: accessPolicies/{policy_id}/accessLevels/{short_name}","description_kind":"plain","optional":true}},"block_types":{"device_policy":{"nesting_mode":"list","block":{"attributes":{"allowed_device_management_levels":{"type":["list","string"],"description":"A list of allowed device management levels.\nAn empty list allows all management levels. Possible values: [\"MANAGEMENT_UNSPECIFIED\", \"NONE\", \"BASIC\", \"COMPLETE\"]","description_kind":"plain","optional":true},"allowed_encryption_statuses":{"type":["list","string"],"description":"A list of allowed encryptions statuses.\nAn empty list allows all statuses. Possible values: [\"ENCRYPTION_UNSPECIFIED\", \"ENCRYPTION_UNSUPPORTED\", \"UNENCRYPTED\", \"ENCRYPTED\"]","description_kind":"plain","optional":true},"require_admin_approval":{"type":"bool","description":"Whether the device needs to be approved by the customer admin.","description_kind":"plain","optional":true},"require_corp_owned":{"type":"bool","description":"Whether the device needs to be corp owned.","description_kind":"plain","optional":true},"require_screen_lock":{"type":"bool","description":"Whether or not screenlock is required for the DevicePolicy\nto be true. Defaults to false.","description_kind":"plain","optional":true}},"block_types":{"os_constraints":{"nesting_mode":"list","block":{"attributes":{"minimum_version":{"type":"string","description":"The minimum allowed OS version. If not set, any version\nof this OS satisfies the constraint.\nFormat: \"major.minor.patch\" such as \"10.5.301\", \"9.2.1\".","description_kind":"plain","optional":true},"os_type":{"type":"string","description":"The operating system type of the device. Possible values: [\"OS_UNSPECIFIED\", \"DESKTOP_MAC\", \"DESKTOP_WINDOWS\", \"DESKTOP_LINUX\", \"DESKTOP_CHROME_OS\", \"ANDROID\", \"IOS\"]","description_kind":"plain","required":true}},"description":"A list of allowed OS versions.\nAn empty list allows all types and all versions.","description_kind":"plain"}}},"description":"Device specific restrictions, all restrictions must hold for\nthe Condition to be true. If not specified, all devices are\nallowed.","description_kind":"plain"},"max_items":1}},"description":"A set of requirements for the AccessLevel to be granted.","description_kind":"plain"},"min_items":1}},"description":"A set of predefined conditions for the access level and a combining function.","description_kind":"plain"},"max_items":1},"custom":{"nesting_mode":"list","block":{"block_types":{"expr":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Description of the expression","description_kind":"plain","optional":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.","description_kind":"plain","required":true},"location":{"type":"string","description":"String indicating the location of the expression for error reporting, e.g. a file name and a position in the file","description_kind":"plain","optional":true},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its purpose.","description_kind":"plain","optional":true}},"description":"Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language.\nThis page details the objects and attributes that are used to the build the CEL expressions for \ncustom access levels - https://cloud.google.com/access-context-manager/docs/custom-access-level-spec.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Custom access level conditions are set using the Cloud Common Expression Language to represent the necessary conditions for the level to apply to a request. \nSee CEL spec at: https://github.com/google/cel-spec.","description_kind":"plain"},"max_items":1}},"description":"The desired Access Levels that should replace all existing Access Levels in the Access Policy.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_access_context_manager_access_policy":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Time the AccessPolicy was created in UTC.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Resource name of the AccessPolicy. Format: {policy_id}","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The parent of this AccessPolicy in the Cloud Resource Hierarchy.\nFormat: organizations/{organization_id}","description_kind":"plain","required":true},"scopes":{"type":["list","string"],"description":"Folder or project on which this policy is applicable.\nFormat: folders/{{folder_id}} or projects/{{project_id}}","description_kind":"plain","optional":true},"title":{"type":"string","description":"Human readable title. Does not affect behavior.","description_kind":"plain","required":true},"update_time":{"type":"string","description":"Time the AccessPolicy was updated in UTC.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_access_context_manager_access_policy_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_access_context_manager_access_policy_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_access_context_manager_access_policy_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_access_context_manager_gcp_user_access_binding":{"version":0,"block":{"attributes":{"access_levels":{"type":["list","string"],"description":"Required. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: \"accessPolicies/9522/accessLevels/device_trusted\"","description_kind":"plain","required":true},"group_key":{"type":"string","description":"Required. Immutable. Google Group id whose members are subject to this binding's restrictions. See \"id\" in the G Suite Directory API's Groups resource. If a group's email address/alias is changed, this resource will continue to point at the changed group. This field does not accept group email addresses or aliases. Example: \"01d520gv4vjcrht\"","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Immutable. Assigned by the server during creation. The last segment has an arbitrary length and has only URI unreserved characters (as defined by RFC 3986 Section 2.3). Should not be specified by the client during creation. Example: \"organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N\"","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"Required. ID of the parent organization.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_access_context_manager_service_perimeter":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Time the AccessPolicy was created in UTC.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the ServicePerimeter and its use. Does not affect\nbehavior.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Resource name for the ServicePerimeter. The short_name component must\nbegin with a letter and only include alphanumeric and '_'.\nFormat: accessPolicies/{policy_id}/servicePerimeters/{short_name}","description_kind":"plain","required":true},"parent":{"type":"string","description":"The AccessPolicy this ServicePerimeter lives in.\nFormat: accessPolicies/{policy_id}","description_kind":"plain","required":true},"perimeter_type":{"type":"string","description":"Specifies the type of the Perimeter. There are two types: regular and\nbridge. Regular Service Perimeter contains resources, access levels,\nand restricted services. Every resource can be in at most\nONE regular Service Perimeter.\n\nIn addition to being in a regular service perimeter, a resource can also\nbe in zero or more perimeter bridges. A perimeter bridge only contains\nresources. Cross project operations are permitted if all effected\nresources share some perimeter (whether bridge or regular). Perimeter\nBridge does not contain access levels or services: those are governed\nentirely by the regular perimeter that resource is in.\n\nPerimeter Bridges are typically useful when building more complex\ntopologies with many independent perimeters that need to share some data\nwith a common perimeter, but should not be able to share data among\nthemselves. Default value: \"PERIMETER_TYPE_REGULAR\" Possible values: [\"PERIMETER_TYPE_REGULAR\", \"PERIMETER_TYPE_BRIDGE\"]","description_kind":"plain","optional":true},"title":{"type":"string","description":"Human readable title. Must be unique within the Policy.","description_kind":"plain","required":true},"update_time":{"type":"string","description":"Time the AccessPolicy was updated in UTC.","description_kind":"plain","computed":true},"use_explicit_dry_run_spec":{"type":"bool","description":"Use explicit dry run spec flag. Ordinarily, a dry-run spec implicitly exists\nfor all Service Perimeters, and that spec is identical to the status for those\nService Perimeters. When this flag is set, it inhibits the generation of the\nimplicit spec, thereby allowing the user to explicitly provide a\nconfiguration (\"spec\") to use in a dry-run version of the Service Perimeter.\nThis allows the user to test changes to the enforced config (\"status\") without\nactually enforcing them. This testing is done through analyzing the differences\nbetween currently enforced and suggested restrictions. useExplicitDryRunSpec must\nbet set to True if any of the fields in the spec are set to non-default values.","description_kind":"plain","optional":true}},"block_types":{"spec":{"nesting_mode":"list","block":{"attributes":{"access_levels":{"type":["list","string"],"description":"A list of AccessLevel resource names that allow resources within\nthe ServicePerimeter to be accessed from the internet.\nAccessLevels listed must be in the same policy as this\nServicePerimeter. Referencing a nonexistent AccessLevel is a\nsyntax error. If no AccessLevel names are listed, resources within\nthe perimeter can only be accessed via GCP calls with request\norigins within the perimeter. For Service Perimeter Bridge, must\nbe empty.\n\nFormat: accessPolicies/{policy_id}/accessLevels/{access_level_name}","description_kind":"plain","optional":true},"resources":{"type":["list","string"],"description":"A list of GCP resources that are inside of the service perimeter.\nCurrently only projects are allowed.\nFormat: projects/{project_number}","description_kind":"plain","optional":true},"restricted_services":{"type":["list","string"],"description":"GCP services that are subject to the Service Perimeter\nrestrictions. Must contain a list of services. For example, if\n'storage.googleapis.com' is specified, access to the storage\nbuckets inside the perimeter must meet the perimeter's access\nrestrictions.","description_kind":"plain","optional":true}},"block_types":{"egress_policies":{"nesting_mode":"list","block":{"block_types":{"egress_from":{"nesting_mode":"list","block":{"attributes":{"identities":{"type":["list","string"],"description":"A list of identities that are allowed access through this 'EgressPolicy'. \nShould be in the format of email address. The email address should \nrepresent individual user or service account only.","description_kind":"plain","optional":true},"identity_type":{"type":"string","description":"Specifies the type of identities that are allowed access to outside the \nperimeter. If left unspecified, then members of 'identities' field will \nbe allowed access. Possible values: [\"IDENTITY_TYPE_UNSPECIFIED\", \"ANY_IDENTITY\", \"ANY_USER_ACCOUNT\", \"ANY_SERVICE_ACCOUNT\"]","description_kind":"plain","optional":true}},"description":"Defines conditions on the source of a request causing this 'EgressPolicy' to apply.","description_kind":"plain"},"max_items":1},"egress_to":{"nesting_mode":"list","block":{"attributes":{"resources":{"type":["list","string"],"description":"A list of resources, currently only projects in the form \n'projects/\u003cprojectnumber\u003e', that match this to stanza. A request matches \nif it contains a resource in this list. If * is specified for resources, \nthen this 'EgressTo' rule will authorize access to all resources outside \nthe perimeter.","description_kind":"plain","optional":true}},"block_types":{"operations":{"nesting_mode":"list","block":{"attributes":{"service_name":{"type":"string","description":"The name of the API whose methods or permissions the 'IngressPolicy' or \n'EgressPolicy' want to allow. A single 'ApiOperation' with serviceName \nfield set to '*' will allow all methods AND permissions for all services.","description_kind":"plain","optional":true}},"block_types":{"method_selectors":{"nesting_mode":"list","block":{"attributes":{"method":{"type":"string","description":"Value for 'method' should be a valid method name for the corresponding \n'serviceName' in 'ApiOperation'. If '*' used as value for method, \nthen ALL methods and permissions are allowed.","description_kind":"plain","optional":true},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the \ncorresponding 'serviceName' in 'ApiOperation'.","description_kind":"plain","optional":true}},"description":"API methods or permissions to allow. Method or permission must belong \nto the service specified by 'serviceName' field. A single MethodSelector \nentry with '*' specified for the 'method' field will allow all methods \nAND permissions for the service specified in 'serviceName'.","description_kind":"plain"}}},"description":"A list of 'ApiOperations' that this egress rule applies to. A request matches \nif it contains an operation/service in this list.","description_kind":"plain"}}},"description":"Defines the conditions on the 'ApiOperation' and destination resources that \ncause this 'EgressPolicy' to apply.","description_kind":"plain"},"max_items":1}},"description":"List of EgressPolicies to apply to the perimeter. A perimeter may \nhave multiple EgressPolicies, each of which is evaluated separately.\nAccess is granted if any EgressPolicy grants it. Must be empty for \na perimeter bridge.","description_kind":"plain"}},"ingress_policies":{"nesting_mode":"list","block":{"block_types":{"ingress_from":{"nesting_mode":"list","block":{"attributes":{"identities":{"type":["list","string"],"description":"A list of identities that are allowed access through this ingress policy.\nShould be in the format of email address. The email address should represent \nindividual user or service account only.","description_kind":"plain","optional":true},"identity_type":{"type":"string","description":"Specifies the type of identities that are allowed access from outside the \nperimeter. If left unspecified, then members of 'identities' field will be \nallowed access. Possible values: [\"IDENTITY_TYPE_UNSPECIFIED\", \"ANY_IDENTITY\", \"ANY_USER_ACCOUNT\", \"ANY_SERVICE_ACCOUNT\"]","description_kind":"plain","optional":true}},"block_types":{"sources":{"nesting_mode":"list","block":{"attributes":{"access_level":{"type":"string","description":"An 'AccessLevel' resource name that allow resources within the \n'ServicePerimeters' to be accessed from the internet. 'AccessLevels' listed \nmust be in the same policy as this 'ServicePerimeter'. Referencing a nonexistent\n'AccessLevel' will cause an error. If no 'AccessLevel' names are listed, \nresources within the perimeter can only be accessed via Google Cloud calls \nwith request origins within the perimeter. \nExample 'accessPolicies/MY_POLICY/accessLevels/MY_LEVEL.' \nIf * is specified, then all IngressSources will be allowed.","description_kind":"plain","optional":true},"resource":{"type":"string","description":"A Google Cloud resource that is allowed to ingress the perimeter. \nRequests from these resources will be allowed to access perimeter data. \nCurrently only projects are allowed. Format 'projects/{project_number}' \nThe project may be in any Google Cloud organization, not just the \norganization that the perimeter is defined in. '*' is not allowed, the case \nof allowing all Google Cloud resources only is not supported.","description_kind":"plain","optional":true}},"description":"Sources that this 'IngressPolicy' authorizes access from.","description_kind":"plain"}}},"description":"Defines the conditions on the source of a request causing this 'IngressPolicy'\nto apply.","description_kind":"plain"},"max_items":1},"ingress_to":{"nesting_mode":"list","block":{"attributes":{"resources":{"type":["list","string"],"description":"A list of resources, currently only projects in the form \n'projects/\u003cprojectnumber\u003e', protected by this 'ServicePerimeter'\nthat are allowed to be accessed by sources defined in the\ncorresponding 'IngressFrom'. A request matches if it contains\na resource in this list. If '*' is specified for resources,\nthen this 'IngressTo' rule will authorize access to all \nresources inside the perimeter, provided that the request\nalso matches the 'operations' field.","description_kind":"plain","optional":true}},"block_types":{"operations":{"nesting_mode":"list","block":{"attributes":{"service_name":{"type":"string","description":"The name of the API whose methods or permissions the 'IngressPolicy' or \n'EgressPolicy' want to allow. A single 'ApiOperation' with 'serviceName' \nfield set to '*' will allow all methods AND permissions for all services.","description_kind":"plain","optional":true}},"block_types":{"method_selectors":{"nesting_mode":"list","block":{"attributes":{"method":{"type":"string","description":"Value for method should be a valid method name for the corresponding \nserviceName in 'ApiOperation'. If '*' used as value for 'method', then \nALL methods and permissions are allowed.","description_kind":"plain","optional":true},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the \ncorresponding 'serviceName' in 'ApiOperation'.","description_kind":"plain","optional":true}},"description":"API methods or permissions to allow. Method or permission must belong to \nthe service specified by serviceName field. A single 'MethodSelector' entry \nwith '*' specified for the method field will allow all methods AND \npermissions for the service specified in 'serviceName'.","description_kind":"plain"}}},"description":"A list of 'ApiOperations' the sources specified in corresponding 'IngressFrom' \nare allowed to perform in this 'ServicePerimeter'.","description_kind":"plain"}}},"description":"Defines the conditions on the 'ApiOperation' and request destination that cause\nthis 'IngressPolicy' to apply.","description_kind":"plain"},"max_items":1}},"description":"List of 'IngressPolicies' to apply to the perimeter. A perimeter may\nhave multiple 'IngressPolicies', each of which is evaluated\nseparately. Access is granted if any 'Ingress Policy' grants it.\nMust be empty for a perimeter bridge.","description_kind":"plain"}},"vpc_accessible_services":{"nesting_mode":"list","block":{"attributes":{"allowed_services":{"type":["list","string"],"description":"The list of APIs usable within the Service Perimeter.\nMust be empty unless 'enableRestriction' is True.","description_kind":"plain","optional":true},"enable_restriction":{"type":"bool","description":"Whether to restrict API calls within the Service Perimeter to the\nlist of APIs specified in 'allowedServices'.","description_kind":"plain","optional":true}},"description":"Specifies how APIs are allowed to communicate within the Service\nPerimeter.","description_kind":"plain"},"max_items":1}},"description":"Proposed (or dry run) ServicePerimeter configuration.\nThis configuration allows to specify and test ServicePerimeter configuration\nwithout enforcing actual access restrictions. Only allowed to be set when\nthe 'useExplicitDryRunSpec' flag is set.","description_kind":"plain"},"max_items":1},"status":{"nesting_mode":"list","block":{"attributes":{"access_levels":{"type":["list","string"],"description":"A list of AccessLevel resource names that allow resources within\nthe ServicePerimeter to be accessed from the internet.\nAccessLevels listed must be in the same policy as this\nServicePerimeter. Referencing a nonexistent AccessLevel is a\nsyntax error. If no AccessLevel names are listed, resources within\nthe perimeter can only be accessed via GCP calls with request\norigins within the perimeter. For Service Perimeter Bridge, must\nbe empty.\n\nFormat: accessPolicies/{policy_id}/accessLevels/{access_level_name}","description_kind":"plain","optional":true},"resources":{"type":["list","string"],"description":"A list of GCP resources that are inside of the service perimeter.\nCurrently only projects are allowed.\nFormat: projects/{project_number}","description_kind":"plain","optional":true},"restricted_services":{"type":["set","string"],"description":"GCP services that are subject to the Service Perimeter\nrestrictions. Must contain a list of services. For example, if\n'storage.googleapis.com' is specified, access to the storage\nbuckets inside the perimeter must meet the perimeter's access\nrestrictions.","description_kind":"plain","optional":true}},"block_types":{"egress_policies":{"nesting_mode":"list","block":{"block_types":{"egress_from":{"nesting_mode":"list","block":{"attributes":{"identities":{"type":["list","string"],"description":"A list of identities that are allowed access through this 'EgressPolicy'. \nShould be in the format of email address. The email address should \nrepresent individual user or service account only.","description_kind":"plain","optional":true},"identity_type":{"type":"string","description":"Specifies the type of identities that are allowed access to outside the \nperimeter. If left unspecified, then members of 'identities' field will \nbe allowed access. Possible values: [\"IDENTITY_TYPE_UNSPECIFIED\", \"ANY_IDENTITY\", \"ANY_USER_ACCOUNT\", \"ANY_SERVICE_ACCOUNT\"]","description_kind":"plain","optional":true}},"description":"Defines conditions on the source of a request causing this 'EgressPolicy' to apply.","description_kind":"plain"},"max_items":1},"egress_to":{"nesting_mode":"list","block":{"attributes":{"resources":{"type":["list","string"],"description":"A list of resources, currently only projects in the form \n'projects/\u003cprojectnumber\u003e', that match this to stanza. A request matches \nif it contains a resource in this list. If * is specified for resources, \nthen this 'EgressTo' rule will authorize access to all resources outside \nthe perimeter.","description_kind":"plain","optional":true}},"block_types":{"operations":{"nesting_mode":"list","block":{"attributes":{"service_name":{"type":"string","description":"The name of the API whose methods or permissions the 'IngressPolicy' or \n'EgressPolicy' want to allow. A single 'ApiOperation' with serviceName \nfield set to '*' will allow all methods AND permissions for all services.","description_kind":"plain","optional":true}},"block_types":{"method_selectors":{"nesting_mode":"list","block":{"attributes":{"method":{"type":"string","description":"Value for 'method' should be a valid method name for the corresponding \n'serviceName' in 'ApiOperation'. If '*' used as value for method, \nthen ALL methods and permissions are allowed.","description_kind":"plain","optional":true},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the \ncorresponding 'serviceName' in 'ApiOperation'.","description_kind":"plain","optional":true}},"description":"API methods or permissions to allow. Method or permission must belong \nto the service specified by 'serviceName' field. A single MethodSelector \nentry with '*' specified for the 'method' field will allow all methods \nAND permissions for the service specified in 'serviceName'.","description_kind":"plain"}}},"description":"A list of 'ApiOperations' that this egress rule applies to. A request matches \nif it contains an operation/service in this list.","description_kind":"plain"}}},"description":"Defines the conditions on the 'ApiOperation' and destination resources that \ncause this 'EgressPolicy' to apply.","description_kind":"plain"},"max_items":1}},"description":"List of EgressPolicies to apply to the perimeter. A perimeter may \nhave multiple EgressPolicies, each of which is evaluated separately.\nAccess is granted if any EgressPolicy grants it. Must be empty for \na perimeter bridge.","description_kind":"plain"}},"ingress_policies":{"nesting_mode":"list","block":{"block_types":{"ingress_from":{"nesting_mode":"list","block":{"attributes":{"identities":{"type":["list","string"],"description":"A list of identities that are allowed access through this ingress policy.\nShould be in the format of email address. The email address should represent \nindividual user or service account only.","description_kind":"plain","optional":true},"identity_type":{"type":"string","description":"Specifies the type of identities that are allowed access from outside the \nperimeter. If left unspecified, then members of 'identities' field will be \nallowed access. Possible values: [\"IDENTITY_TYPE_UNSPECIFIED\", \"ANY_IDENTITY\", \"ANY_USER_ACCOUNT\", \"ANY_SERVICE_ACCOUNT\"]","description_kind":"plain","optional":true}},"block_types":{"sources":{"nesting_mode":"list","block":{"attributes":{"access_level":{"type":"string","description":"An 'AccessLevel' resource name that allow resources within the \n'ServicePerimeters' to be accessed from the internet. 'AccessLevels' listed \nmust be in the same policy as this 'ServicePerimeter'. Referencing a nonexistent\n'AccessLevel' will cause an error. If no 'AccessLevel' names are listed, \nresources within the perimeter can only be accessed via Google Cloud calls \nwith request origins within the perimeter. \nExample 'accessPolicies/MY_POLICY/accessLevels/MY_LEVEL.' \nIf * is specified, then all IngressSources will be allowed.","description_kind":"plain","optional":true},"resource":{"type":"string","description":"A Google Cloud resource that is allowed to ingress the perimeter. \nRequests from these resources will be allowed to access perimeter data. \nCurrently only projects are allowed. Format 'projects/{project_number}' \nThe project may be in any Google Cloud organization, not just the \norganization that the perimeter is defined in. '*' is not allowed, the case \nof allowing all Google Cloud resources only is not supported.","description_kind":"plain","optional":true}},"description":"Sources that this 'IngressPolicy' authorizes access from.","description_kind":"plain"}}},"description":"Defines the conditions on the source of a request causing this 'IngressPolicy'\nto apply.","description_kind":"plain"},"max_items":1},"ingress_to":{"nesting_mode":"list","block":{"attributes":{"resources":{"type":["list","string"],"description":"A list of resources, currently only projects in the form \n'projects/\u003cprojectnumber\u003e', protected by this 'ServicePerimeter'\nthat are allowed to be accessed by sources defined in the\ncorresponding 'IngressFrom'. A request matches if it contains\na resource in this list. If '*' is specified for resources,\nthen this 'IngressTo' rule will authorize access to all \nresources inside the perimeter, provided that the request\nalso matches the 'operations' field.","description_kind":"plain","optional":true}},"block_types":{"operations":{"nesting_mode":"list","block":{"attributes":{"service_name":{"type":"string","description":"The name of the API whose methods or permissions the 'IngressPolicy' or \n'EgressPolicy' want to allow. A single 'ApiOperation' with 'serviceName' \nfield set to '*' will allow all methods AND permissions for all services.","description_kind":"plain","optional":true}},"block_types":{"method_selectors":{"nesting_mode":"list","block":{"attributes":{"method":{"type":"string","description":"Value for method should be a valid method name for the corresponding \nserviceName in 'ApiOperation'. If '*' used as value for 'method', then \nALL methods and permissions are allowed.","description_kind":"plain","optional":true},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the \ncorresponding 'serviceName' in 'ApiOperation'.","description_kind":"plain","optional":true}},"description":"API methods or permissions to allow. Method or permission must belong to \nthe service specified by serviceName field. A single 'MethodSelector' entry \nwith '*' specified for the method field will allow all methods AND \npermissions for the service specified in 'serviceName'.","description_kind":"plain"}}},"description":"A list of 'ApiOperations' the sources specified in corresponding 'IngressFrom' \nare allowed to perform in this 'ServicePerimeter'.","description_kind":"plain"}}},"description":"Defines the conditions on the 'ApiOperation' and request destination that cause\nthis 'IngressPolicy' to apply.","description_kind":"plain"},"max_items":1}},"description":"List of 'IngressPolicies' to apply to the perimeter. A perimeter may\nhave multiple 'IngressPolicies', each of which is evaluated\nseparately. Access is granted if any 'Ingress Policy' grants it.\nMust be empty for a perimeter bridge.","description_kind":"plain"}},"vpc_accessible_services":{"nesting_mode":"list","block":{"attributes":{"allowed_services":{"type":["set","string"],"description":"The list of APIs usable within the Service Perimeter.\nMust be empty unless 'enableRestriction' is True.","description_kind":"plain","optional":true},"enable_restriction":{"type":"bool","description":"Whether to restrict API calls within the Service Perimeter to the\nlist of APIs specified in 'allowedServices'.","description_kind":"plain","optional":true}},"description":"Specifies how APIs are allowed to communicate within the Service\nPerimeter.","description_kind":"plain"},"max_items":1}},"description":"ServicePerimeter configuration. Specifies sets of resources,\nrestricted services and access levels that determine\nperimeter content and boundaries.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_access_context_manager_service_perimeter_resource":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"perimeter_name":{"type":"string","description":"The name of the Service Perimeter to add this resource to.","description_kind":"plain","required":true},"resource":{"type":"string","description":"A GCP resource that is inside of the service perimeter.\nCurrently only projects are allowed.\nFormat: projects/{project_number}","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_access_context_manager_service_perimeters":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"parent":{"type":"string","description":"The AccessPolicy this ServicePerimeter lives in.\nFormat: accessPolicies/{policy_id}","description_kind":"plain","required":true}},"block_types":{"service_perimeters":{"nesting_mode":"set","block":{"attributes":{"create_time":{"type":"string","description":"Time the AccessPolicy was created in UTC.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the ServicePerimeter and its use. Does not affect\nbehavior.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Resource name for the ServicePerimeter. The short_name component must\nbegin with a letter and only include alphanumeric and '_'.\nFormat: accessPolicies/{policy_id}/servicePerimeters/{short_name}","description_kind":"plain","required":true},"perimeter_type":{"type":"string","description":"Specifies the type of the Perimeter. There are two types: regular and\nbridge. Regular Service Perimeter contains resources, access levels,\nand restricted services. Every resource can be in at most\nONE regular Service Perimeter.\n\nIn addition to being in a regular service perimeter, a resource can also\nbe in zero or more perimeter bridges. A perimeter bridge only contains\nresources. Cross project operations are permitted if all effected\nresources share some perimeter (whether bridge or regular). Perimeter\nBridge does not contain access levels or services: those are governed\nentirely by the regular perimeter that resource is in.\n\nPerimeter Bridges are typically useful when building more complex\ntopologies with many independent perimeters that need to share some data\nwith a common perimeter, but should not be able to share data among\nthemselves. Default value: \"PERIMETER_TYPE_REGULAR\" Possible values: [\"PERIMETER_TYPE_REGULAR\", \"PERIMETER_TYPE_BRIDGE\"]","description_kind":"plain","optional":true},"title":{"type":"string","description":"Human readable title. Must be unique within the Policy.","description_kind":"plain","required":true},"update_time":{"type":"string","description":"Time the AccessPolicy was updated in UTC.","description_kind":"plain","computed":true},"use_explicit_dry_run_spec":{"type":"bool","description":"Use explicit dry run spec flag. Ordinarily, a dry-run spec implicitly exists\nfor all Service Perimeters, and that spec is identical to the status for those\nService Perimeters. When this flag is set, it inhibits the generation of the\nimplicit spec, thereby allowing the user to explicitly provide a\nconfiguration (\"spec\") to use in a dry-run version of the Service Perimeter.\nThis allows the user to test changes to the enforced config (\"status\") without\nactually enforcing them. This testing is done through analyzing the differences\nbetween currently enforced and suggested restrictions. useExplicitDryRunSpec must\nbet set to True if any of the fields in the spec are set to non-default values.","description_kind":"plain","optional":true}},"block_types":{"spec":{"nesting_mode":"list","block":{"attributes":{"access_levels":{"type":["list","string"],"description":"A list of AccessLevel resource names that allow resources within\nthe ServicePerimeter to be accessed from the internet.\nAccessLevels listed must be in the same policy as this\nServicePerimeter. Referencing a nonexistent AccessLevel is a\nsyntax error. If no AccessLevel names are listed, resources within\nthe perimeter can only be accessed via GCP calls with request\norigins within the perimeter. For Service Perimeter Bridge, must\nbe empty.\n\nFormat: accessPolicies/{policy_id}/accessLevels/{access_level_name}","description_kind":"plain","optional":true},"resources":{"type":["list","string"],"description":"A list of GCP resources that are inside of the service perimeter.\nCurrently only projects are allowed.\nFormat: projects/{project_number}","description_kind":"plain","optional":true},"restricted_services":{"type":["list","string"],"description":"GCP services that are subject to the Service Perimeter\nrestrictions. Must contain a list of services. For example, if\n'storage.googleapis.com' is specified, access to the storage\nbuckets inside the perimeter must meet the perimeter's access\nrestrictions.","description_kind":"plain","optional":true}},"block_types":{"egress_policies":{"nesting_mode":"list","block":{"block_types":{"egress_from":{"nesting_mode":"list","block":{"attributes":{"identities":{"type":["list","string"],"description":"A list of identities that are allowed access through this 'EgressPolicy'. \nShould be in the format of email address. The email address should \nrepresent individual user or service account only.","description_kind":"plain","optional":true},"identity_type":{"type":"string","description":"Specifies the type of identities that are allowed access to outside the \nperimeter. If left unspecified, then members of 'identities' field will \nbe allowed access. Possible values: [\"IDENTITY_TYPE_UNSPECIFIED\", \"ANY_IDENTITY\", \"ANY_USER_ACCOUNT\", \"ANY_SERVICE_ACCOUNT\"]","description_kind":"plain","optional":true}},"description":"Defines conditions on the source of a request causing this 'EgressPolicy' to apply.","description_kind":"plain"},"max_items":1},"egress_to":{"nesting_mode":"list","block":{"attributes":{"resources":{"type":["list","string"],"description":"A list of resources, currently only projects in the form \n'projects/\u003cprojectnumber\u003e', that match this to stanza. A request matches \nif it contains a resource in this list. If * is specified for resources, \nthen this 'EgressTo' rule will authorize access to all resources outside \nthe perimeter.","description_kind":"plain","optional":true}},"block_types":{"operations":{"nesting_mode":"list","block":{"attributes":{"service_name":{"type":"string","description":"The name of the API whose methods or permissions the 'IngressPolicy' or \n'EgressPolicy' want to allow. A single 'ApiOperation' with serviceName \nfield set to '*' will allow all methods AND permissions for all services.","description_kind":"plain","optional":true}},"block_types":{"method_selectors":{"nesting_mode":"list","block":{"attributes":{"method":{"type":"string","description":"Value for 'method' should be a valid method name for the corresponding \n'serviceName' in 'ApiOperation'. If '*' used as value for method, \nthen ALL methods and permissions are allowed.","description_kind":"plain","optional":true},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the \ncorresponding 'serviceName' in 'ApiOperation'.","description_kind":"plain","optional":true}},"description":"API methods or permissions to allow. Method or permission must belong \nto the service specified by 'serviceName' field. A single MethodSelector \nentry with '*' specified for the 'method' field will allow all methods \nAND permissions for the service specified in 'serviceName'.","description_kind":"plain"}}},"description":"A list of 'ApiOperations' that this egress rule applies to. A request matches \nif it contains an operation/service in this list.","description_kind":"plain"}}},"description":"Defines the conditions on the 'ApiOperation' and destination resources that \ncause this 'EgressPolicy' to apply.","description_kind":"plain"},"max_items":1}},"description":"List of EgressPolicies to apply to the perimeter. A perimeter may \nhave multiple EgressPolicies, each of which is evaluated separately.\nAccess is granted if any EgressPolicy grants it. Must be empty for \na perimeter bridge.","description_kind":"plain"}},"ingress_policies":{"nesting_mode":"list","block":{"block_types":{"ingress_from":{"nesting_mode":"list","block":{"attributes":{"identities":{"type":["list","string"],"description":"A list of identities that are allowed access through this ingress policy.\nShould be in the format of email address. The email address should represent \nindividual user or service account only.","description_kind":"plain","optional":true},"identity_type":{"type":"string","description":"Specifies the type of identities that are allowed access from outside the \nperimeter. If left unspecified, then members of 'identities' field will be \nallowed access. Possible values: [\"IDENTITY_TYPE_UNSPECIFIED\", \"ANY_IDENTITY\", \"ANY_USER_ACCOUNT\", \"ANY_SERVICE_ACCOUNT\"]","description_kind":"plain","optional":true}},"block_types":{"sources":{"nesting_mode":"list","block":{"attributes":{"access_level":{"type":"string","description":"An 'AccessLevel' resource name that allow resources within the \n'ServicePerimeters' to be accessed from the internet. 'AccessLevels' listed \nmust be in the same policy as this 'ServicePerimeter'. Referencing a nonexistent\n'AccessLevel' will cause an error. If no 'AccessLevel' names are listed, \nresources within the perimeter can only be accessed via Google Cloud calls \nwith request origins within the perimeter. \nExample 'accessPolicies/MY_POLICY/accessLevels/MY_LEVEL.' \nIf * is specified, then all IngressSources will be allowed.","description_kind":"plain","optional":true},"resource":{"type":"string","description":"A Google Cloud resource that is allowed to ingress the perimeter. \nRequests from these resources will be allowed to access perimeter data. \nCurrently only projects are allowed. Format 'projects/{project_number}' \nThe project may be in any Google Cloud organization, not just the \norganization that the perimeter is defined in. '*' is not allowed, the case \nof allowing all Google Cloud resources only is not supported.","description_kind":"plain","optional":true}},"description":"Sources that this 'IngressPolicy' authorizes access from.","description_kind":"plain"}}},"description":"Defines the conditions on the source of a request causing this 'IngressPolicy'\nto apply.","description_kind":"plain"},"max_items":1},"ingress_to":{"nesting_mode":"list","block":{"attributes":{"resources":{"type":["list","string"],"description":"A list of resources, currently only projects in the form \n'projects/\u003cprojectnumber\u003e', protected by this 'ServicePerimeter'\nthat are allowed to be accessed by sources defined in the\ncorresponding 'IngressFrom'. A request matches if it contains\na resource in this list. If '*' is specified for resources,\nthen this 'IngressTo' rule will authorize access to all \nresources inside the perimeter, provided that the request\nalso matches the 'operations' field.","description_kind":"plain","optional":true}},"block_types":{"operations":{"nesting_mode":"list","block":{"attributes":{"service_name":{"type":"string","description":"The name of the API whose methods or permissions the 'IngressPolicy' or \n'EgressPolicy' want to allow. A single 'ApiOperation' with 'serviceName' \nfield set to '*' will allow all methods AND permissions for all services.","description_kind":"plain","optional":true}},"block_types":{"method_selectors":{"nesting_mode":"list","block":{"attributes":{"method":{"type":"string","description":"Value for method should be a valid method name for the corresponding \nserviceName in 'ApiOperation'. If '*' used as value for 'method', then \nALL methods and permissions are allowed.","description_kind":"plain","optional":true},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the \ncorresponding 'serviceName' in 'ApiOperation'.","description_kind":"plain","optional":true}},"description":"API methods or permissions to allow. Method or permission must belong to \nthe service specified by serviceName field. A single 'MethodSelector' entry \nwith '*' specified for the method field will allow all methods AND \npermissions for the service specified in 'serviceName'.","description_kind":"plain"}}},"description":"A list of 'ApiOperations' the sources specified in corresponding 'IngressFrom' \nare allowed to perform in this 'ServicePerimeter'.","description_kind":"plain"}}},"description":"Defines the conditions on the 'ApiOperation' and request destination that cause\nthis 'IngressPolicy' to apply.","description_kind":"plain"},"max_items":1}},"description":"List of 'IngressPolicies' to apply to the perimeter. A perimeter may\nhave multiple 'IngressPolicies', each of which is evaluated\nseparately. Access is granted if any 'Ingress Policy' grants it.\nMust be empty for a perimeter bridge.","description_kind":"plain"}},"vpc_accessible_services":{"nesting_mode":"list","block":{"attributes":{"allowed_services":{"type":["list","string"],"description":"The list of APIs usable within the Service Perimeter.\nMust be empty unless 'enableRestriction' is True.","description_kind":"plain","optional":true},"enable_restriction":{"type":"bool","description":"Whether to restrict API calls within the Service Perimeter to the\nlist of APIs specified in 'allowedServices'.","description_kind":"plain","optional":true}},"description":"Specifies how APIs are allowed to communicate within the Service\nPerimeter.","description_kind":"plain"},"max_items":1}},"description":"Proposed (or dry run) ServicePerimeter configuration.\nThis configuration allows to specify and test ServicePerimeter configuration\nwithout enforcing actual access restrictions. Only allowed to be set when\nthe 'useExplicitDryRunSpec' flag is set.","description_kind":"plain"},"max_items":1},"status":{"nesting_mode":"list","block":{"attributes":{"access_levels":{"type":["list","string"],"description":"A list of AccessLevel resource names that allow resources within\nthe ServicePerimeter to be accessed from the internet.\nAccessLevels listed must be in the same policy as this\nServicePerimeter. Referencing a nonexistent AccessLevel is a\nsyntax error. If no AccessLevel names are listed, resources within\nthe perimeter can only be accessed via GCP calls with request\norigins within the perimeter. For Service Perimeter Bridge, must\nbe empty.\n\nFormat: accessPolicies/{policy_id}/accessLevels/{access_level_name}","description_kind":"plain","optional":true},"resources":{"type":["list","string"],"description":"A list of GCP resources that are inside of the service perimeter.\nCurrently only projects are allowed.\nFormat: projects/{project_number}","description_kind":"plain","optional":true},"restricted_services":{"type":["set","string"],"description":"GCP services that are subject to the Service Perimeter\nrestrictions. Must contain a list of services. For example, if\n'storage.googleapis.com' is specified, access to the storage\nbuckets inside the perimeter must meet the perimeter's access\nrestrictions.","description_kind":"plain","optional":true}},"block_types":{"egress_policies":{"nesting_mode":"list","block":{"block_types":{"egress_from":{"nesting_mode":"list","block":{"attributes":{"identities":{"type":["list","string"],"description":"A list of identities that are allowed access through this 'EgressPolicy'. \nShould be in the format of email address. The email address should \nrepresent individual user or service account only.","description_kind":"plain","optional":true},"identity_type":{"type":"string","description":"Specifies the type of identities that are allowed access to outside the \nperimeter. If left unspecified, then members of 'identities' field will \nbe allowed access. Possible values: [\"IDENTITY_TYPE_UNSPECIFIED\", \"ANY_IDENTITY\", \"ANY_USER_ACCOUNT\", \"ANY_SERVICE_ACCOUNT\"]","description_kind":"plain","optional":true}},"description":"Defines conditions on the source of a request causing this 'EgressPolicy' to apply.","description_kind":"plain"},"max_items":1},"egress_to":{"nesting_mode":"list","block":{"attributes":{"resources":{"type":["list","string"],"description":"A list of resources, currently only projects in the form \n'projects/\u003cprojectnumber\u003e', that match this to stanza. A request matches \nif it contains a resource in this list. If * is specified for resources, \nthen this 'EgressTo' rule will authorize access to all resources outside \nthe perimeter.","description_kind":"plain","optional":true}},"block_types":{"operations":{"nesting_mode":"list","block":{"attributes":{"service_name":{"type":"string","description":"The name of the API whose methods or permissions the 'IngressPolicy' or \n'EgressPolicy' want to allow. A single 'ApiOperation' with serviceName \nfield set to '*' will allow all methods AND permissions for all services.","description_kind":"plain","optional":true}},"block_types":{"method_selectors":{"nesting_mode":"list","block":{"attributes":{"method":{"type":"string","description":"Value for 'method' should be a valid method name for the corresponding \n'serviceName' in 'ApiOperation'. If '*' used as value for method, \nthen ALL methods and permissions are allowed.","description_kind":"plain","optional":true},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the \ncorresponding 'serviceName' in 'ApiOperation'.","description_kind":"plain","optional":true}},"description":"API methods or permissions to allow. Method or permission must belong \nto the service specified by 'serviceName' field. A single MethodSelector \nentry with '*' specified for the 'method' field will allow all methods \nAND permissions for the service specified in 'serviceName'.","description_kind":"plain"}}},"description":"A list of 'ApiOperations' that this egress rule applies to. A request matches \nif it contains an operation/service in this list.","description_kind":"plain"}}},"description":"Defines the conditions on the 'ApiOperation' and destination resources that \ncause this 'EgressPolicy' to apply.","description_kind":"plain"},"max_items":1}},"description":"List of EgressPolicies to apply to the perimeter. A perimeter may \nhave multiple EgressPolicies, each of which is evaluated separately.\nAccess is granted if any EgressPolicy grants it. Must be empty for \na perimeter bridge.","description_kind":"plain"}},"ingress_policies":{"nesting_mode":"list","block":{"block_types":{"ingress_from":{"nesting_mode":"list","block":{"attributes":{"identities":{"type":["list","string"],"description":"A list of identities that are allowed access through this ingress policy.\nShould be in the format of email address. The email address should represent \nindividual user or service account only.","description_kind":"plain","optional":true},"identity_type":{"type":"string","description":"Specifies the type of identities that are allowed access from outside the \nperimeter. If left unspecified, then members of 'identities' field will be \nallowed access. Possible values: [\"IDENTITY_TYPE_UNSPECIFIED\", \"ANY_IDENTITY\", \"ANY_USER_ACCOUNT\", \"ANY_SERVICE_ACCOUNT\"]","description_kind":"plain","optional":true}},"block_types":{"sources":{"nesting_mode":"list","block":{"attributes":{"access_level":{"type":"string","description":"An 'AccessLevel' resource name that allow resources within the \n'ServicePerimeters' to be accessed from the internet. 'AccessLevels' listed \nmust be in the same policy as this 'ServicePerimeter'. Referencing a nonexistent\n'AccessLevel' will cause an error. If no 'AccessLevel' names are listed, \nresources within the perimeter can only be accessed via Google Cloud calls \nwith request origins within the perimeter. \nExample 'accessPolicies/MY_POLICY/accessLevels/MY_LEVEL.' \nIf * is specified, then all IngressSources will be allowed.","description_kind":"plain","optional":true},"resource":{"type":"string","description":"A Google Cloud resource that is allowed to ingress the perimeter. \nRequests from these resources will be allowed to access perimeter data. \nCurrently only projects are allowed. Format 'projects/{project_number}' \nThe project may be in any Google Cloud organization, not just the \norganization that the perimeter is defined in. '*' is not allowed, the case \nof allowing all Google Cloud resources only is not supported.","description_kind":"plain","optional":true}},"description":"Sources that this 'IngressPolicy' authorizes access from.","description_kind":"plain"}}},"description":"Defines the conditions on the source of a request causing this 'IngressPolicy'\nto apply.","description_kind":"plain"},"max_items":1},"ingress_to":{"nesting_mode":"list","block":{"attributes":{"resources":{"type":["list","string"],"description":"A list of resources, currently only projects in the form \n'projects/\u003cprojectnumber\u003e', protected by this 'ServicePerimeter'\nthat are allowed to be accessed by sources defined in the\ncorresponding 'IngressFrom'. A request matches if it contains\na resource in this list. If '*' is specified for resources,\nthen this 'IngressTo' rule will authorize access to all \nresources inside the perimeter, provided that the request\nalso matches the 'operations' field.","description_kind":"plain","optional":true}},"block_types":{"operations":{"nesting_mode":"list","block":{"attributes":{"service_name":{"type":"string","description":"The name of the API whose methods or permissions the 'IngressPolicy' or \n'EgressPolicy' want to allow. A single 'ApiOperation' with 'serviceName' \nfield set to '*' will allow all methods AND permissions for all services.","description_kind":"plain","optional":true}},"block_types":{"method_selectors":{"nesting_mode":"list","block":{"attributes":{"method":{"type":"string","description":"Value for method should be a valid method name for the corresponding \nserviceName in 'ApiOperation'. If '*' used as value for 'method', then \nALL methods and permissions are allowed.","description_kind":"plain","optional":true},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the \ncorresponding 'serviceName' in 'ApiOperation'.","description_kind":"plain","optional":true}},"description":"API methods or permissions to allow. Method or permission must belong to \nthe service specified by serviceName field. A single 'MethodSelector' entry \nwith '*' specified for the method field will allow all methods AND \npermissions for the service specified in 'serviceName'.","description_kind":"plain"}}},"description":"A list of 'ApiOperations' the sources specified in corresponding 'IngressFrom' \nare allowed to perform in this 'ServicePerimeter'.","description_kind":"plain"}}},"description":"Defines the conditions on the 'ApiOperation' and request destination that cause\nthis 'IngressPolicy' to apply.","description_kind":"plain"},"max_items":1}},"description":"List of 'IngressPolicies' to apply to the perimeter. A perimeter may\nhave multiple 'IngressPolicies', each of which is evaluated\nseparately. Access is granted if any 'Ingress Policy' grants it.\nMust be empty for a perimeter bridge.","description_kind":"plain"}},"vpc_accessible_services":{"nesting_mode":"list","block":{"attributes":{"allowed_services":{"type":["set","string"],"description":"The list of APIs usable within the Service Perimeter.\nMust be empty unless 'enableRestriction' is True.","description_kind":"plain","optional":true},"enable_restriction":{"type":"bool","description":"Whether to restrict API calls within the Service Perimeter to the\nlist of APIs specified in 'allowedServices'.","description_kind":"plain","optional":true}},"description":"Specifies how APIs are allowed to communicate within the Service\nPerimeter.","description_kind":"plain"},"max_items":1}},"description":"ServicePerimeter configuration. Specifies sets of resources,\nrestricted services and access levels that determine\nperimeter content and boundaries.","description_kind":"plain"},"max_items":1}},"description":"The desired Service Perimeters that should replace all existing Service Perimeters in the Access Policy.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_active_directory_domain":{"version":0,"block":{"attributes":{"admin":{"type":"string","description":"The name of delegated administrator account used to perform Active Directory operations. \nIf not specified, setupadmin will be used.","description_kind":"plain","optional":true},"authorized_networks":{"type":["set","string"],"description":"The full names of the Google Compute Engine networks the domain instance is connected to. The domain is only available on networks listed in authorizedNetworks.\nIf CIDR subnets overlap between networks, domain creation will fail.","description_kind":"plain","optional":true},"domain_name":{"type":"string","description":"The fully qualified domain name. e.g. mydomain.myorganization.com, with the restrictions, \nhttps://cloud.google.com/managed-microsoft-ad/reference/rest/v1/projects.locations.global.domains.","description_kind":"plain","required":true},"fqdn":{"type":"string","description":"The fully-qualified domain name of the exposed domain used by clients to connect to the service. \nSimilar to what would be chosen for an Active Directory set up on an internal network.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Resource labels that can contain user-provided metadata","description_kind":"plain","optional":true},"locations":{"type":["list","string"],"description":"Locations where domain needs to be provisioned. [regions][compute/docs/regions-zones/] \ne.g. us-west1 or us-east4 Service supports up to 4 locations at once. Each location will use a /26 block.","description_kind":"plain","required":true},"name":{"type":"string","description":"The unique name of the domain using the format: 'projects/{project}/locations/global/domains/{domainName}'.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"reserved_ip_range":{"type":"string","description":"The CIDR range of internal addresses that are reserved for this domain. Reserved networks must be /24 or larger. \nRanges must be unique and non-overlapping with existing subnets in authorizedNetworks","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_active_directory_domain_trust":{"version":0,"block":{"attributes":{"domain":{"type":"string","description":"The fully qualified domain name. e.g. mydomain.myorganization.com, with the restrictions, \nhttps://cloud.google.com/managed-microsoft-ad/reference/rest/v1/projects.locations.global.domains.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"selective_authentication":{"type":"bool","description":"Whether the trusted side has forest/domain wide access or selective access to an approved set of resources.","description_kind":"plain","optional":true},"target_dns_ip_addresses":{"type":["set","string"],"description":"The target DNS server IP addresses which can resolve the remote domain involved in the trust.","description_kind":"plain","required":true},"target_domain_name":{"type":"string","description":"The fully qualified target domain name which will be in trust with the current domain.","description_kind":"plain","required":true},"trust_direction":{"type":"string","description":"The trust direction, which decides if the current domain is trusted, trusting, or both. Possible values: [\"INBOUND\", \"OUTBOUND\", \"BIDIRECTIONAL\"]","description_kind":"plain","required":true},"trust_handshake_secret":{"type":"string","description":"The trust secret used for the handshake with the target domain. This will not be stored.","description_kind":"plain","required":true,"sensitive":true},"trust_type":{"type":"string","description":"The type of trust represented by the trust resource. Possible values: [\"FOREST\", \"EXTERNAL\"]","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_apigee_endpoint_attachment":{"version":0,"block":{"attributes":{"endpoint_attachment_id":{"type":"string","description":"ID of the endpoint attachment.","description_kind":"plain","required":true},"host":{"type":"string","description":"Host that can be used in either HTTP Target Endpoint directly, or as the host in Target Server.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"Location of the endpoint attachment.","description_kind":"plain","required":true},"name":{"type":"string","description":"Name of the Endpoint Attachment in the following format:\norganizations/{organization}/endpointAttachments/{endpointAttachment}.","description_kind":"plain","computed":true},"org_id":{"type":"string","description":"The Apigee Organization associated with the Apigee instance,\nin the format 'organizations/{{org_name}}'.","description_kind":"plain","required":true},"service_attachment":{"type":"string","description":"Format: projects/*/regions/*/serviceAttachments/*","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_apigee_envgroup":{"version":0,"block":{"attributes":{"hostnames":{"type":["list","string"],"description":"Hostnames of the environment group.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource ID of the environment group.","description_kind":"plain","required":true},"org_id":{"type":"string","description":"The Apigee Organization associated with the Apigee environment group,\nin the format 'organizations/{{org_name}}'.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_apigee_envgroup_attachment":{"version":0,"block":{"attributes":{"envgroup_id":{"type":"string","description":"The Apigee environment group associated with the Apigee environment,\nin the format 'organizations/{{org_name}}/envgroups/{{envgroup_name}}'.","description_kind":"plain","required":true},"environment":{"type":"string","description":"The resource ID of the environment.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the newly created attachment (output parameter).","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_apigee_environment":{"version":0,"block":{"attributes":{"api_proxy_type":{"type":"string","description":"Optional. API Proxy type supported by the environment. The type can be set when creating\nthe Environment and cannot be changed. Possible values: [\"API_PROXY_TYPE_UNSPECIFIED\", \"PROGRAMMABLE\", \"CONFIGURABLE\"]","description_kind":"plain","optional":true,"computed":true},"deployment_type":{"type":"string","description":"Optional. Deployment type supported by the environment. The deployment type can be\nset when creating the environment and cannot be changed. When you enable archive\ndeployment, you will be prevented from performing a subset of actions within the\nenvironment, including:\nManaging the deployment of API proxy or shared flow revisions;\nCreating, updating, or deleting resource files;\nCreating, updating, or deleting target servers. Possible values: [\"DEPLOYMENT_TYPE_UNSPECIFIED\", \"PROXY\", \"ARCHIVE\"]","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description":"Description of the environment.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"Display name of the environment.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource ID of the environment.","description_kind":"plain","required":true},"org_id":{"type":"string","description":"The Apigee Organization associated with the Apigee environment,\nin the format 'organizations/{{org_name}}'.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_apigee_environment_iam_binding":{"version":0,"block":{"attributes":{"env_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"org_id":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_apigee_environment_iam_member":{"version":0,"block":{"attributes":{"env_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"org_id":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_apigee_environment_iam_policy":{"version":0,"block":{"attributes":{"env_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"org_id":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_apigee_instance":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Description of the instance.","description_kind":"plain","optional":true},"disk_encryption_key_name":{"type":"string","description":"Customer Managed Encryption Key (CMEK) used for disk and volume encryption. Required for Apigee paid subscriptions only.\nUse the following format: 'projects/([^/]+)/locations/([^/]+)/keyRings/([^/]+)/cryptoKeys/([^/]+)'","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"Display name of the instance.","description_kind":"plain","optional":true},"host":{"type":"string","description":"Output only. Hostname or IP address of the exposed Apigee endpoint used by clients to connect to the service.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_range":{"type":"string","description":"IP range represents the customer-provided CIDR block of length 22 that will be used for\nthe Apigee instance creation. This optional range, if provided, should be freely\navailable as part of larger named range the customer has allocated to the Service\nNetworking peering. If this is not provided, Apigee will automatically request for any\navailable /22 CIDR block from Service Networking. The customer should use this CIDR block\nfor configuring their firewall needs to allow traffic from Apigee.\nInput format: \"a.b.c.d/22\"","description_kind":"plain","optional":true},"location":{"type":"string","description":"Required. Compute Engine location where the instance resides.","description_kind":"plain","required":true},"name":{"type":"string","description":"Resource ID of the instance.","description_kind":"plain","required":true},"org_id":{"type":"string","description":"The Apigee Organization associated with the Apigee instance,\nin the format 'organizations/{{org_name}}'.","description_kind":"plain","required":true},"peering_cidr_range":{"type":"string","description":"The size of the CIDR block range that will be reserved by the instance. For valid values, \nsee [CidrRange](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.instances#CidrRange) on the documentation.","description_kind":"plain","optional":true,"computed":true},"port":{"type":"string","description":"Output only. Port number of the exposed Apigee endpoint.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_apigee_instance_attachment":{"version":0,"block":{"attributes":{"environment":{"type":"string","description":"The resource ID of the environment.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"The Apigee instance associated with the Apigee environment,\nin the format 'organisations/{{org_name}}/instances/{{instance_name}}'.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the newly created attachment (output parameter).","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_apigee_organization":{"version":0,"block":{"attributes":{"analytics_region":{"type":"string","description":"Primary GCP region for analytics data storage. For valid values, see [Create an Apigee organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org).","description_kind":"plain","optional":true},"authorized_network":{"type":"string","description":"Compute Engine network used for Service Networking to be peered with Apigee runtime instances.\nSee [Getting started with the Service Networking API](https://cloud.google.com/service-infrastructure/docs/service-networking/getting-started).\nValid only when 'RuntimeType' is set to CLOUD. The value can be updated only when there are no runtime instances. For example: \"default\".","description_kind":"plain","optional":true},"billing_type":{"type":"string","description":"Billing type of the Apigee organization. See [Apigee pricing](https://cloud.google.com/apigee/pricing).","description_kind":"plain","optional":true,"computed":true},"ca_certificate":{"type":"string","description":"Output only. Base64-encoded public certificate for the root CA of the Apigee organization.\nValid only when 'RuntimeType' is CLOUD. A base64-encoded string.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the Apigee organization.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The display name of the Apigee organization.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Output only. Name of the Apigee organization.","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project ID associated with the Apigee organization.","description_kind":"plain","required":true},"runtime_database_encryption_key_name":{"type":"string","description":"Cloud KMS key name used for encrypting the data that is stored and replicated across runtime instances.\nUpdate is not allowed after the organization is created.\nIf not specified, a Google-Managed encryption key will be used.\nValid only when 'RuntimeType' is CLOUD. For example: 'projects/foo/locations/us/keyRings/bar/cryptoKeys/baz'.","description_kind":"plain","optional":true},"runtime_type":{"type":"string","description":"Runtime type of the Apigee organization based on the Apigee subscription purchased. Default value: \"CLOUD\" Possible values: [\"CLOUD\", \"HYBRID\"]","description_kind":"plain","optional":true},"subscription_type":{"type":"string","description":"Output only. Subscription type of the Apigee organization.\nValid values include trial (free, limited, and for evaluation purposes only) or paid (full subscription has been purchased).","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_apikeys_key":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Human-readable display name of this API key. Modifiable by user.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_string":{"type":"string","description":"Output only. An encrypted and signed value held by this key. This field can be accessed only through the `GetKeyString` method.","description_kind":"plain","computed":true,"sensitive":true},"name":{"type":"string","description":"The resource name of the key. The name must be unique within the project, must conform with RFC-1034, is restricted to lower-cased letters, and has a maximum length of 63 characters. In another word, the name must match the regular expression: [a-z]([a-z0-9-]{0,61}[a-z0-9])?.","description_kind":"plain","required":true},"project":{"type":"string","description":"The project for the resource","description_kind":"plain","optional":true,"computed":true}},"block_types":{"restrictions":{"nesting_mode":"list","block":{"block_types":{"android_key_restrictions":{"nesting_mode":"list","block":{"block_types":{"allowed_applications":{"nesting_mode":"list","block":{"attributes":{"package_name":{"type":"string","description":"The package name of the application.","description_kind":"plain","required":true},"sha1_fingerprint":{"type":"string","description":"The SHA1 fingerprint of the application. For example, both sha1 formats are acceptable : DA:39:A3:EE:5E:6B:4B:0D:32:55:BF:EF:95:60:18:90:AF:D8:07:09 or DA39A3EE5E6B4B0D3255BFEF95601890AFD80709. Output format is the latter.","description_kind":"plain","required":true}},"description":"A list of Android applications that are allowed to make API calls with this key.","description_kind":"plain"},"min_items":1}},"description":"The Android apps that are allowed to use the key.","description_kind":"plain"},"max_items":1},"api_targets":{"nesting_mode":"list","block":{"attributes":{"methods":{"type":["list","string"],"description":"Optional. List of one or more methods that can be called. If empty, all methods for the service are allowed. A wildcard (*) can be used as the last symbol. Valid examples: `google.cloud.translate.v2.TranslateService.GetSupportedLanguage` `TranslateText` `Get*` `translate.googleapis.com.Get*`","description_kind":"plain","optional":true},"service":{"type":"string","description":"The service for this restriction. It should be the canonical service name, for example: `translate.googleapis.com`. You can use `gcloud services list` to get a list of services that are enabled in the project.","description_kind":"plain","required":true}},"description":"A restriction for a specific service and optionally one or more specific methods. Requests are allowed if they match any of these restrictions. If no restrictions are specified, all targets are allowed.","description_kind":"plain"}},"browser_key_restrictions":{"nesting_mode":"list","block":{"attributes":{"allowed_referrers":{"type":["list","string"],"description":"A list of regular expressions for the referrer URLs that are allowed to make API calls with this key.","description_kind":"plain","required":true}},"description":"The HTTP referrers (websites) that are allowed to use the key.","description_kind":"plain"},"max_items":1},"ios_key_restrictions":{"nesting_mode":"list","block":{"attributes":{"allowed_bundle_ids":{"type":["list","string"],"description":"A list of bundle IDs that are allowed when making API calls with this key.","description_kind":"plain","required":true}},"description":"The iOS apps that are allowed to use the key.","description_kind":"plain"},"max_items":1},"server_key_restrictions":{"nesting_mode":"list","block":{"attributes":{"allowed_ips":{"type":["list","string"],"description":"A list of the caller IP addresses that are allowed to make API calls with this key.","description_kind":"plain","required":true}},"description":"The IP addresses of callers that are allowed to use the key.","description_kind":"plain"},"max_items":1}},"description":"Key restrictions.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_app_engine_application":{"version":0,"block":{"attributes":{"app_id":{"type":"string","description":"Identifier of the app.","description_kind":"plain","computed":true},"auth_domain":{"type":"string","description":"The domain to authenticate users with when using App Engine's User API.","description_kind":"plain","optional":true,"computed":true},"code_bucket":{"type":"string","description":"The GCS bucket code is being stored in for this app.","description_kind":"plain","computed":true},"database_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"default_bucket":{"type":"string","description":"The GCS bucket content is being stored in for this app.","description_kind":"plain","computed":true},"default_hostname":{"type":"string","description":"The default hostname for this app.","description_kind":"plain","computed":true},"gcr_domain":{"type":"string","description":"The GCR domain used for storing managed Docker images for this app.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location_id":{"type":"string","description":"The location to serve the app from.","description_kind":"plain","required":true},"name":{"type":"string","description":"Unique name of the app.","description_kind":"plain","computed":true},"project":{"type":"string","description":"The project ID to create the application under.","description_kind":"plain","optional":true,"computed":true},"serving_status":{"type":"string","description":"The serving status of the app.","description_kind":"plain","optional":true,"computed":true},"url_dispatch_rule":{"type":["list",["object",{"domain":"string","path":"string","service":"string"}]],"description":"A list of dispatch rule blocks. Each block has a domain, path, and service field.","description_kind":"plain","computed":true}},"block_types":{"feature_settings":{"nesting_mode":"list","block":{"attributes":{"split_health_checks":{"type":"bool","description_kind":"plain","required":true}},"description":"A block of optional settings to configure specific App Engine features:","description_kind":"plain"},"max_items":1},"iap":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Adapted for use with the app","description_kind":"plain","optional":true},"oauth2_client_id":{"type":"string","description":"OAuth2 client ID to use for the authentication flow.","description_kind":"plain","required":true},"oauth2_client_secret":{"type":"string","description":"OAuth2 client secret to use for the authentication flow. The SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 field.","description_kind":"plain","required":true,"sensitive":true},"oauth2_client_secret_sha256":{"type":"string","description":"Hex-encoded SHA-256 hash of the client secret.","description_kind":"plain","computed":true,"sensitive":true}},"description":"Settings for enabling Cloud Identity Aware Proxy","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_app_engine_application_url_dispatch_rules":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"dispatch_rules":{"nesting_mode":"list","block":{"attributes":{"domain":{"type":"string","description":"Domain name to match against. The wildcard \"*\" is supported if specified before a period: \"*.\".\nDefaults to matching all domains: \"*\".","description_kind":"plain","optional":true},"path":{"type":"string","description":"Pathname within the host. Must start with a \"/\". A single \"*\" can be included at the end of the path.\nThe sum of the lengths of the domain and path may not exceed 100 characters.","description_kind":"plain","required":true},"service":{"type":"string","description":"Pathname within the host. Must start with a \"/\". A single \"*\" can be included at the end of the path.\nThe sum of the lengths of the domain and path may not exceed 100 characters.","description_kind":"plain","required":true}},"description":"Rules to match an HTTP request and dispatch that request to a service.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_app_engine_domain_mapping":{"version":0,"block":{"attributes":{"domain_name":{"type":"string","description":"Relative name of the domain serving the application. Example: example.com.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Full path to the DomainMapping resource in the API. Example: apps/myapp/domainMapping/example.com.","description_kind":"plain","computed":true},"override_strategy":{"type":"string","description":"Whether the domain creation should override any existing mappings for this domain.\nBy default, overrides are rejected. Default value: \"STRICT\" Possible values: [\"STRICT\", \"OVERRIDE\"]","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_records":{"type":["list",["object",{"name":"string","rrdata":"string","type":"string"}]],"description":"The resource records required to configure this domain mapping. These records must be added to the domain's DNS\nconfiguration in order to serve the application via this domain mapping.","description_kind":"plain","computed":true}},"block_types":{"ssl_settings":{"nesting_mode":"list","block":{"attributes":{"certificate_id":{"type":"string","description":"ID of the AuthorizedCertificate resource configuring SSL for the application. Clearing this field will\nremove SSL support.\nBy default, a managed certificate is automatically created for every domain mapping. To omit SSL support\nor to configure SSL manually, specify 'SslManagementType.MANUAL' on a 'CREATE' or 'UPDATE' request. You must be\nauthorized to administer the 'AuthorizedCertificate' resource to manually map it to a DomainMapping resource.\nExample: 12345.","description_kind":"plain","optional":true,"computed":true},"pending_managed_certificate_id":{"type":"string","description":"ID of the managed 'AuthorizedCertificate' resource currently being provisioned, if applicable. Until the new\nmanaged certificate has been successfully provisioned, the previous SSL state will be preserved. Once the\nprovisioning process completes, the 'certificateId' field will reflect the new managed certificate and this\nfield will be left empty. To remove SSL support while there is still a pending managed certificate, clear the\n'certificateId' field with an update request.","description_kind":"plain","computed":true},"ssl_management_type":{"type":"string","description":"SSL management type for this domain. If 'AUTOMATIC', a managed certificate is automatically provisioned.\nIf 'MANUAL', 'certificateId' must be manually specified in order to configure SSL for this domain. Possible values: [\"AUTOMATIC\", \"MANUAL\"]","description_kind":"plain","required":true}},"description":"SSL configuration for this domain. If unconfigured, this domain will not serve with SSL.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_app_engine_firewall_rule":{"version":0,"block":{"attributes":{"action":{"type":"string","description":"The action to take if this rule matches. Possible values: [\"UNSPECIFIED_ACTION\", \"ALLOW\", \"DENY\"]","description_kind":"plain","required":true},"description":{"type":"string","description":"An optional string description of this rule.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"priority":{"type":"number","description":"A positive integer that defines the order of rule evaluation.\nRules with the lowest priority are evaluated first.\n\nA default rule at priority Int32.MaxValue matches all IPv4 and\nIPv6 traffic when no previous rule matches. Only the action of\nthis rule can be modified by the user.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"source_range":{"type":"string","description":"IP address or range, defined using CIDR notation, of requests that this rule applies to.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_app_engine_flexible_app_version":{"version":0,"block":{"attributes":{"beta_settings":{"type":["map","string"],"description":"Metadata settings that are supplied to this version to enable beta runtime features.","description_kind":"plain","optional":true},"default_expiration":{"type":"string","description":"Duration that static files should be cached by web proxies and browsers.\nOnly applicable if the corresponding StaticFilesHandler does not specify its own expiration time.","description_kind":"plain","optional":true},"delete_service_on_destroy":{"type":"bool","description_kind":"plain","optional":true},"env_variables":{"type":["map","string"],"description":"Environment variables available to the application. As these are not returned in the API request, Terraform will not detect any changes made outside of the Terraform config.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"inbound_services":{"type":["set","string"],"description":"A list of the types of messages that this application is able to receive. Possible values: [\"INBOUND_SERVICE_MAIL\", \"INBOUND_SERVICE_MAIL_BOUNCE\", \"INBOUND_SERVICE_XMPP_ERROR\", \"INBOUND_SERVICE_XMPP_MESSAGE\", \"INBOUND_SERVICE_XMPP_SUBSCRIBE\", \"INBOUND_SERVICE_XMPP_PRESENCE\", \"INBOUND_SERVICE_CHANNEL_PRESENCE\", \"INBOUND_SERVICE_WARMUP\"]","description_kind":"plain","optional":true},"instance_class":{"type":"string","description":"Instance class that is used to run this version. Valid values are\nAutomaticScaling: F1, F2, F4, F4_1G\nManualScaling: B1, B2, B4, B8, B4_1G\nDefaults to F1 for AutomaticScaling and B1 for ManualScaling.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Full path to the Version resource in the API. Example, \"v1\".","description_kind":"plain","computed":true},"nobuild_files_regex":{"type":"string","description":"Files that match this pattern will not be built into this version. Only applicable for Go runtimes.","description_kind":"plain","optional":true},"noop_on_destroy":{"type":"bool","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"runtime":{"type":"string","description":"Desired runtime. Example python27.","description_kind":"plain","required":true},"runtime_api_version":{"type":"string","description":"The version of the API in the given runtime environment.\nPlease see the app.yaml reference for valid values at 'https://cloud.google.com/appengine/docs/standard/\u003clanguage\u003e/config/appref'\\\nSubstitute '\u003clanguage\u003e' with 'python', 'java', 'php', 'ruby', 'go' or 'nodejs'.","description_kind":"plain","optional":true,"computed":true},"runtime_channel":{"type":"string","description":"The channel of the runtime to use. Only available for some runtimes.","description_kind":"plain","optional":true},"runtime_main_executable_path":{"type":"string","description":"The path or name of the app's main executable.","description_kind":"plain","optional":true},"service":{"type":"string","description":"AppEngine service resource. Can contain numbers, letters, and hyphens.","description_kind":"plain","required":true},"serving_status":{"type":"string","description":"Current serving status of this version. Only the versions with a SERVING status create instances and can be billed. Default value: \"SERVING\" Possible values: [\"SERVING\", \"STOPPED\"]","description_kind":"plain","optional":true},"version_id":{"type":"string","description":"Relative name of the version within the service. For example, 'v1'. Version names can contain only lowercase letters, numbers, or hyphens.\nReserved names,\"default\", \"latest\", and any name with the prefix \"ah-\".","description_kind":"plain","optional":true}},"block_types":{"api_config":{"nesting_mode":"list","block":{"attributes":{"auth_fail_action":{"type":"string","description":"Action to take when users access resources that require authentication. Default value: \"AUTH_FAIL_ACTION_REDIRECT\" Possible values: [\"AUTH_FAIL_ACTION_REDIRECT\", \"AUTH_FAIL_ACTION_UNAUTHORIZED\"]","description_kind":"plain","optional":true},"login":{"type":"string","description":"Level of login required to access this resource. Default value: \"LOGIN_OPTIONAL\" Possible values: [\"LOGIN_OPTIONAL\", \"LOGIN_ADMIN\", \"LOGIN_REQUIRED\"]","description_kind":"plain","optional":true},"script":{"type":"string","description":"Path to the script from the application root directory.","description_kind":"plain","required":true},"security_level":{"type":"string","description":"Security (HTTPS) enforcement for this URL. Possible values: [\"SECURE_DEFAULT\", \"SECURE_NEVER\", \"SECURE_OPTIONAL\", \"SECURE_ALWAYS\"]","description_kind":"plain","optional":true},"url":{"type":"string","description":"URL to serve the endpoint at.","description_kind":"plain","optional":true}},"description":"Serving configuration for Google Cloud Endpoints.","description_kind":"plain"},"max_items":1},"automatic_scaling":{"nesting_mode":"list","block":{"attributes":{"cool_down_period":{"type":"string","description":"The time period that the Autoscaler should wait before it starts collecting information from a new instance.\nThis prevents the autoscaler from collecting information when the instance is initializing,\nduring which the collected usage would not be reliable. Default: 120s","description_kind":"plain","optional":true},"max_concurrent_requests":{"type":"number","description":"Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.\n\nDefaults to a runtime-specific value.","description_kind":"plain","optional":true,"computed":true},"max_idle_instances":{"type":"number","description":"Maximum number of idle instances that should be maintained for this version.","description_kind":"plain","optional":true},"max_pending_latency":{"type":"string","description":"Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.","description_kind":"plain","optional":true},"max_total_instances":{"type":"number","description":"Maximum number of instances that should be started to handle requests for this version. Default: 20","description_kind":"plain","optional":true},"min_idle_instances":{"type":"number","description":"Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.","description_kind":"plain","optional":true},"min_pending_latency":{"type":"string","description":"Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.","description_kind":"plain","optional":true},"min_total_instances":{"type":"number","description":"Minimum number of running instances that should be maintained for this version. Default: 2","description_kind":"plain","optional":true}},"block_types":{"cpu_utilization":{"nesting_mode":"list","block":{"attributes":{"aggregation_window_length":{"type":"string","description":"Period of time over which CPU utilization is calculated.","description_kind":"plain","optional":true},"target_utilization":{"type":"number","description":"Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.","description_kind":"plain","required":true}},"description":"Target scaling by CPU usage.","description_kind":"plain"},"min_items":1,"max_items":1},"disk_utilization":{"nesting_mode":"list","block":{"attributes":{"target_read_bytes_per_second":{"type":"number","description":"Target bytes read per second.","description_kind":"plain","optional":true},"target_read_ops_per_second":{"type":"number","description":"Target ops read per seconds.","description_kind":"plain","optional":true},"target_write_bytes_per_second":{"type":"number","description":"Target bytes written per second.","description_kind":"plain","optional":true},"target_write_ops_per_second":{"type":"number","description":"Target ops written per second.","description_kind":"plain","optional":true}},"description":"Target scaling by disk usage.","description_kind":"plain"},"max_items":1},"network_utilization":{"nesting_mode":"list","block":{"attributes":{"target_received_bytes_per_second":{"type":"number","description":"Target bytes received per second.","description_kind":"plain","optional":true},"target_received_packets_per_second":{"type":"number","description":"Target packets received per second.","description_kind":"plain","optional":true},"target_sent_bytes_per_second":{"type":"number","description":"Target bytes sent per second.","description_kind":"plain","optional":true},"target_sent_packets_per_second":{"type":"number","description":"Target packets sent per second.","description_kind":"plain","optional":true}},"description":"Target scaling by network usage.","description_kind":"plain"},"max_items":1},"request_utilization":{"nesting_mode":"list","block":{"attributes":{"target_concurrent_requests":{"type":"number","description":"Target number of concurrent requests.","description_kind":"plain","optional":true},"target_request_count_per_second":{"type":"string","description":"Target requests per second.","description_kind":"plain","optional":true}},"description":"Target scaling by request utilization.","description_kind":"plain"},"max_items":1}},"description":"Automatic scaling is based on request rate, response latencies, and other application metrics.","description_kind":"plain"},"max_items":1},"deployment":{"nesting_mode":"list","block":{"block_types":{"cloud_build_options":{"nesting_mode":"list","block":{"attributes":{"app_yaml_path":{"type":"string","description":"Path to the yaml file used in deployment, used to determine runtime configuration details.","description_kind":"plain","required":true},"cloud_build_timeout":{"type":"string","description":"The Cloud Build timeout used as part of any dependent builds performed by version creation. Defaults to 10 minutes.\n\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true}},"description":"Options for the build operations performed as a part of the version deployment. Only applicable when creating a version using source code directly.","description_kind":"plain"},"max_items":1},"container":{"nesting_mode":"list","block":{"attributes":{"image":{"type":"string","description":"URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest.\nExamples: \"gcr.io/my-project/image:tag\" or \"gcr.io/my-project/image@digest\"","description_kind":"plain","required":true}},"description":"The Docker image for the container that runs the version.","description_kind":"plain"},"max_items":1},"files":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"sha1_sum":{"type":"string","description":"SHA1 checksum of the file","description_kind":"plain","optional":true},"source_url":{"type":"string","description":"Source URL","description_kind":"plain","required":true}},"description":"Manifest of the files stored in Google Cloud Storage that are included as part of this version.\nAll files must be readable using the credentials supplied with this call.","description_kind":"plain"}},"zip":{"nesting_mode":"list","block":{"attributes":{"files_count":{"type":"number","description":"files count","description_kind":"plain","optional":true},"source_url":{"type":"string","description":"Source URL","description_kind":"plain","required":true}},"description":"Zip File","description_kind":"plain"},"max_items":1}},"description":"Code and application artifacts that make up this version.","description_kind":"plain"},"max_items":1},"endpoints_api_service":{"nesting_mode":"list","block":{"attributes":{"config_id":{"type":"string","description":"Endpoints service configuration ID as specified by the Service Management API. For example \"2016-09-19r1\".\n\nBy default, the rollout strategy for Endpoints is \"FIXED\". This means that Endpoints starts up with a particular configuration ID.\nWhen a new configuration is rolled out, Endpoints must be given the new configuration ID. The configId field is used to give the configuration ID\nand is required in this case.\n\nEndpoints also has a rollout strategy called \"MANAGED\". When using this, Endpoints fetches the latest configuration and does not need\nthe configuration ID. In this case, configId must be omitted.","description_kind":"plain","optional":true},"disable_trace_sampling":{"type":"bool","description":"Enable or disable trace sampling. By default, this is set to false for enabled.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Endpoints service name which is the name of the \"service\" resource in the Service Management API.\nFor example \"myapi.endpoints.myproject.cloud.goog\"","description_kind":"plain","required":true},"rollout_strategy":{"type":"string","description":"Endpoints rollout strategy. If FIXED, configId must be specified. If MANAGED, configId must be omitted. Default value: \"FIXED\" Possible values: [\"FIXED\", \"MANAGED\"]","description_kind":"plain","optional":true}},"description":"Code and application artifacts that make up this version.","description_kind":"plain"},"max_items":1},"entrypoint":{"nesting_mode":"list","block":{"attributes":{"shell":{"type":"string","description":"The format should be a shell command that can be fed to bash -c.","description_kind":"plain","required":true}},"description":"The entrypoint for the application.","description_kind":"plain"},"max_items":1},"handlers":{"nesting_mode":"list","block":{"attributes":{"auth_fail_action":{"type":"string","description":"Actions to take when the user is not logged in. Possible values: [\"AUTH_FAIL_ACTION_REDIRECT\", \"AUTH_FAIL_ACTION_UNAUTHORIZED\"]","description_kind":"plain","optional":true},"login":{"type":"string","description":"Methods to restrict access to a URL based on login status. Possible values: [\"LOGIN_OPTIONAL\", \"LOGIN_ADMIN\", \"LOGIN_REQUIRED\"]","description_kind":"plain","optional":true},"redirect_http_response_code":{"type":"string","description":"30x code to use when performing redirects for the secure field. Possible values: [\"REDIRECT_HTTP_RESPONSE_CODE_301\", \"REDIRECT_HTTP_RESPONSE_CODE_302\", \"REDIRECT_HTTP_RESPONSE_CODE_303\", \"REDIRECT_HTTP_RESPONSE_CODE_307\"]","description_kind":"plain","optional":true},"security_level":{"type":"string","description":"Security (HTTPS) enforcement for this URL. Possible values: [\"SECURE_DEFAULT\", \"SECURE_NEVER\", \"SECURE_OPTIONAL\", \"SECURE_ALWAYS\"]","description_kind":"plain","optional":true},"url_regex":{"type":"string","description":"URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings.\nAll URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.","description_kind":"plain","optional":true}},"block_types":{"script":{"nesting_mode":"list","block":{"attributes":{"script_path":{"type":"string","description":"Path to the script from the application root directory.","description_kind":"plain","required":true}},"description":"Executes a script to handle the requests that match this URL pattern.\nOnly the auto value is supported for Node.js in the App Engine standard environment, for example \"script:\" \"auto\".","description_kind":"plain"},"max_items":1},"static_files":{"nesting_mode":"list","block":{"attributes":{"application_readable":{"type":"bool","description":"Whether files should also be uploaded as code data. By default, files declared in static file handlers are\nuploaded as static data and are only served to end users; they cannot be read by the application. If enabled,\nuploads are charged against both your code and static data storage resource quotas.","description_kind":"plain","optional":true},"expiration":{"type":"string","description":"Time a static file served by this handler should be cached by web proxies and browsers.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example \"3.5s\".\nDefault is '0s'","description_kind":"plain","optional":true},"http_headers":{"type":["map","string"],"description":"HTTP headers to use for all responses from these URLs.\nAn object containing a list of \"key:value\" value pairs.\".","description_kind":"plain","optional":true},"mime_type":{"type":"string","description":"MIME type used to serve all files served by this handler.\nDefaults to file-specific MIME types, which are derived from each file's filename extension.","description_kind":"plain","optional":true},"path":{"type":"string","description":"Path to the static files matched by the URL pattern, from the application root directory.\nThe path can refer to text matched in groupings in the URL pattern.","description_kind":"plain","optional":true},"require_matching_file":{"type":"bool","description":"Whether this handler should match the request if the file referenced by the handler does not exist.","description_kind":"plain","optional":true},"upload_path_regex":{"type":"string","description":"Regular expression that matches the file paths for all files that should be referenced by this handler.","description_kind":"plain","optional":true}},"description":"Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files.\nStatic file handlers describe which files in the application directory are static files, and which URLs serve them.","description_kind":"plain"},"max_items":1}},"description":"An ordered list of URL-matching patterns that should be applied to incoming requests.\nThe first matching URL handles the request and other request handlers are not attempted.","description_kind":"plain"}},"liveness_check":{"nesting_mode":"list","block":{"attributes":{"check_interval":{"type":"string","description":"Interval between health checks.","description_kind":"plain","optional":true},"failure_threshold":{"type":"number","description":"Number of consecutive failed checks required before considering the VM unhealthy. Default: 4.","description_kind":"plain","optional":true},"host":{"type":"string","description":"Host header to send when performing a HTTP Readiness check. Example: \"myapp.appspot.com\"","description_kind":"plain","optional":true},"initial_delay":{"type":"string","description":"The initial delay before starting to execute the checks. Default: \"300s\"","description_kind":"plain","optional":true},"path":{"type":"string","description":"The request path.","description_kind":"plain","required":true},"success_threshold":{"type":"number","description":"Number of consecutive successful checks required before considering the VM healthy. Default: 2.","description_kind":"plain","optional":true},"timeout":{"type":"string","description":"Time before the check is considered failed. Default: \"4s\"","description_kind":"plain","optional":true}},"description":"Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances.","description_kind":"plain"},"min_items":1,"max_items":1},"manual_scaling":{"nesting_mode":"list","block":{"attributes":{"instances":{"type":"number","description":"Number of instances to assign to the service at the start.\n\n**Note:** When managing the number of instances at runtime through the App Engine Admin API or the (now deprecated) Python 2\nModules API set_num_instances() you must use 'lifecycle.ignore_changes = [\"manual_scaling\"[0].instances]' to prevent drift detection.","description_kind":"plain","required":true}},"description":"A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.","description_kind":"plain"},"max_items":1},"network":{"nesting_mode":"list","block":{"attributes":{"forwarded_ports":{"type":["list","string"],"description":"List of ports, or port pairs, to forward from the virtual machine to the application container.","description_kind":"plain","optional":true},"instance_tag":{"type":"string","description":"Tag to apply to the instance during creation.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Google Compute Engine network where the virtual machines are created. Specify the short name, not the resource path.","description_kind":"plain","required":true},"session_affinity":{"type":"bool","description":"Enable session affinity.","description_kind":"plain","optional":true},"subnetwork":{"type":"string","description":"Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.\n\nIf the network that the instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.\nIf the network that the instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetworkName) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.\nIf the network that the instance is being created in is a custom Subnet Mode Network, then the subnetworkName must be specified and the IP address is created from the IPCidrRange of the subnetwork.\nIf specified, the subnetwork must exist in the same region as the App Engine flexible environment application.","description_kind":"plain","optional":true}},"description":"Extra network settings","description_kind":"plain"},"max_items":1},"readiness_check":{"nesting_mode":"list","block":{"attributes":{"app_start_timeout":{"type":"string","description":"A maximum time limit on application initialization, measured from moment the application successfully\nreplies to a healthcheck until it is ready to serve traffic. Default: \"300s\"","description_kind":"plain","optional":true},"check_interval":{"type":"string","description":"Interval between health checks. Default: \"5s\".","description_kind":"plain","optional":true},"failure_threshold":{"type":"number","description":"Number of consecutive failed checks required before removing traffic. Default: 2.","description_kind":"plain","optional":true},"host":{"type":"string","description":"Host header to send when performing a HTTP Readiness check. Example: \"myapp.appspot.com\"","description_kind":"plain","optional":true},"path":{"type":"string","description":"The request path.","description_kind":"plain","required":true},"success_threshold":{"type":"number","description":"Number of consecutive successful checks required before receiving traffic. Default: 2.","description_kind":"plain","optional":true},"timeout":{"type":"string","description":"Time before the check is considered failed. Default: \"4s\"","description_kind":"plain","optional":true}},"description":"Configures readiness health checking for instances. Unhealthy instances are not put into the backend traffic rotation.","description_kind":"plain"},"min_items":1,"max_items":1},"resources":{"nesting_mode":"list","block":{"attributes":{"cpu":{"type":"number","description":"Number of CPU cores needed.","description_kind":"plain","optional":true},"disk_gb":{"type":"number","description":"Disk size (GB) needed.","description_kind":"plain","optional":true},"memory_gb":{"type":"number","description":"Memory (GB) needed.","description_kind":"plain","optional":true}},"block_types":{"volumes":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Unique name for the volume.","description_kind":"plain","required":true},"size_gb":{"type":"number","description":"Volume size in gigabytes.","description_kind":"plain","required":true},"volume_type":{"type":"string","description":"Underlying volume type, e.g. 'tmpfs'.","description_kind":"plain","required":true}},"description":"List of ports, or port pairs, to forward from the virtual machine to the application container.","description_kind":"plain"}}},"description":"Machine resources for a version.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"vpc_access_connector":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Full Serverless VPC Access Connector name e.g. /projects/my-project/locations/us-central1/connectors/c1.","description_kind":"plain","required":true}},"description":"Enables VPC connectivity for standard apps.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_app_engine_service_network_settings":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service":{"type":"string","description":"The name of the service these settings apply to.","description_kind":"plain","required":true}},"block_types":{"network_settings":{"nesting_mode":"list","block":{"attributes":{"ingress_traffic_allowed":{"type":"string","description":"The ingress settings for version or service. Default value: \"INGRESS_TRAFFIC_ALLOWED_UNSPECIFIED\" Possible values: [\"INGRESS_TRAFFIC_ALLOWED_UNSPECIFIED\", \"INGRESS_TRAFFIC_ALLOWED_ALL\", \"INGRESS_TRAFFIC_ALLOWED_INTERNAL_ONLY\", \"INGRESS_TRAFFIC_ALLOWED_INTERNAL_AND_LB\"]","description_kind":"plain","optional":true}},"description":"Ingress settings for this service. Will apply to all versions.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_app_engine_service_split_traffic":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"migrate_traffic":{"type":"bool","description":"If set to true traffic will be migrated to this version.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service":{"type":"string","description":"The name of the service these settings apply to.","description_kind":"plain","required":true}},"block_types":{"split":{"nesting_mode":"list","block":{"attributes":{"allocations":{"type":["map","string"],"description":"Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.","description_kind":"plain","required":true},"shard_by":{"type":"string","description":"Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed. Possible values: [\"UNSPECIFIED\", \"COOKIE\", \"IP\", \"RANDOM\"]","description_kind":"plain","optional":true}},"description":"Mapping that defines fractional HTTP traffic diversion to different versions within the service.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_app_engine_standard_app_version":{"version":0,"block":{"attributes":{"delete_service_on_destroy":{"type":"bool","description_kind":"plain","optional":true},"env_variables":{"type":["map","string"],"description":"Environment variables available to the application.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"inbound_services":{"type":["set","string"],"description":"A list of the types of messages that this application is able to receive. Possible values: [\"INBOUND_SERVICE_MAIL\", \"INBOUND_SERVICE_MAIL_BOUNCE\", \"INBOUND_SERVICE_XMPP_ERROR\", \"INBOUND_SERVICE_XMPP_MESSAGE\", \"INBOUND_SERVICE_XMPP_SUBSCRIBE\", \"INBOUND_SERVICE_XMPP_PRESENCE\", \"INBOUND_SERVICE_CHANNEL_PRESENCE\", \"INBOUND_SERVICE_WARMUP\"]","description_kind":"plain","optional":true},"instance_class":{"type":"string","description":"Instance class that is used to run this version. Valid values are\nAutomaticScaling: F1, F2, F4, F4_1G\nBasicScaling or ManualScaling: B1, B2, B4, B4_1G, B8\nDefaults to F1 for AutomaticScaling and B2 for ManualScaling and BasicScaling. If no scaling is specified, AutomaticScaling is chosen.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Full path to the Version resource in the API. Example, \"v1\".","description_kind":"plain","computed":true},"noop_on_destroy":{"type":"bool","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"runtime":{"type":"string","description":"Desired runtime. Example python27.","description_kind":"plain","required":true},"runtime_api_version":{"type":"string","description":"The version of the API in the given runtime environment.\nPlease see the app.yaml reference for valid values at 'https://cloud.google.com/appengine/docs/standard/\u003clanguage\u003e/config/appref'\\\nSubstitute '\u003clanguage\u003e' with 'python', 'java', 'php', 'ruby', 'go' or 'nodejs'.","description_kind":"plain","optional":true},"service":{"type":"string","description":"AppEngine service resource","description_kind":"plain","required":true},"threadsafe":{"type":"bool","description":"Whether multiple requests can be dispatched to this version at once.","description_kind":"plain","optional":true},"version_id":{"type":"string","description":"Relative name of the version within the service. For example, 'v1'. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names,\"default\", \"latest\", and any name with the prefix \"ah-\".","description_kind":"plain","optional":true}},"block_types":{"automatic_scaling":{"nesting_mode":"list","block":{"attributes":{"max_concurrent_requests":{"type":"number","description":"Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.\n\nDefaults to a runtime-specific value.","description_kind":"plain","optional":true},"max_idle_instances":{"type":"number","description":"Maximum number of idle instances that should be maintained for this version.","description_kind":"plain","optional":true},"max_pending_latency":{"type":"string","description":"Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true},"min_idle_instances":{"type":"number","description":"Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.","description_kind":"plain","optional":true},"min_pending_latency":{"type":"string","description":"Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true}},"block_types":{"standard_scheduler_settings":{"nesting_mode":"list","block":{"attributes":{"max_instances":{"type":"number","description":"Maximum number of instances to run for this version. Set to zero to disable maxInstances configuration.","description_kind":"plain","optional":true},"min_instances":{"type":"number","description":"Minimum number of instances to run for this version. Set to zero to disable minInstances configuration.","description_kind":"plain","optional":true},"target_cpu_utilization":{"type":"number","description":"Target CPU utilization ratio to maintain when scaling. Should be a value in the range [0.50, 0.95], zero, or a negative value.","description_kind":"plain","optional":true},"target_throughput_utilization":{"type":"number","description":"Target throughput utilization ratio to maintain when scaling. Should be a value in the range [0.50, 0.95], zero, or a negative value.","description_kind":"plain","optional":true}},"description":"Scheduler settings for standard environment.","description_kind":"plain"},"max_items":1}},"description":"Automatic scaling is based on request rate, response latencies, and other application metrics.","description_kind":"plain"},"max_items":1},"basic_scaling":{"nesting_mode":"list","block":{"attributes":{"idle_timeout":{"type":"string","description":"Duration of time after the last request that an instance must wait before the instance is shut down.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\". Defaults to 900s.","description_kind":"plain","optional":true},"max_instances":{"type":"number","description":"Maximum number of instances to create for this version. Must be in the range [1.0, 200.0].","description_kind":"plain","required":true}},"description":"Basic scaling creates instances when your application receives requests. Each instance will be shut down when the application becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.","description_kind":"plain"},"max_items":1},"deployment":{"nesting_mode":"list","block":{"block_types":{"files":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"sha1_sum":{"type":"string","description":"SHA1 checksum of the file","description_kind":"plain","optional":true},"source_url":{"type":"string","description":"Source URL","description_kind":"plain","required":true}},"description":"Manifest of the files stored in Google Cloud Storage that are included as part of this version.\nAll files must be readable using the credentials supplied with this call.","description_kind":"plain"}},"zip":{"nesting_mode":"list","block":{"attributes":{"files_count":{"type":"number","description":"files count","description_kind":"plain","optional":true},"source_url":{"type":"string","description":"Source URL","description_kind":"plain","required":true}},"description":"Zip File","description_kind":"plain"},"max_items":1}},"description":"Code and application artifacts that make up this version.","description_kind":"plain"},"min_items":1,"max_items":1},"entrypoint":{"nesting_mode":"list","block":{"attributes":{"shell":{"type":"string","description":"The format should be a shell command that can be fed to bash -c.","description_kind":"plain","required":true}},"description":"The entrypoint for the application.","description_kind":"plain"},"min_items":1,"max_items":1},"handlers":{"nesting_mode":"list","block":{"attributes":{"auth_fail_action":{"type":"string","description":"Actions to take when the user is not logged in. Possible values: [\"AUTH_FAIL_ACTION_REDIRECT\", \"AUTH_FAIL_ACTION_UNAUTHORIZED\"]","description_kind":"plain","optional":true},"login":{"type":"string","description":"Methods to restrict access to a URL based on login status. Possible values: [\"LOGIN_OPTIONAL\", \"LOGIN_ADMIN\", \"LOGIN_REQUIRED\"]","description_kind":"plain","optional":true},"redirect_http_response_code":{"type":"string","description":"30x code to use when performing redirects for the secure field. Possible values: [\"REDIRECT_HTTP_RESPONSE_CODE_301\", \"REDIRECT_HTTP_RESPONSE_CODE_302\", \"REDIRECT_HTTP_RESPONSE_CODE_303\", \"REDIRECT_HTTP_RESPONSE_CODE_307\"]","description_kind":"plain","optional":true},"security_level":{"type":"string","description":"Security (HTTPS) enforcement for this URL. Possible values: [\"SECURE_DEFAULT\", \"SECURE_NEVER\", \"SECURE_OPTIONAL\", \"SECURE_ALWAYS\"]","description_kind":"plain","optional":true},"url_regex":{"type":"string","description":"URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings.\nAll URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.","description_kind":"plain","optional":true}},"block_types":{"script":{"nesting_mode":"list","block":{"attributes":{"script_path":{"type":"string","description":"Path to the script from the application root directory.","description_kind":"plain","required":true}},"description":"Executes a script to handle the requests that match this URL pattern.\nOnly the auto value is supported for Node.js in the App Engine standard environment, for example \"script:\" \"auto\".","description_kind":"plain"},"max_items":1},"static_files":{"nesting_mode":"list","block":{"attributes":{"application_readable":{"type":"bool","description":"Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as\nstatic data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged\nagainst both your code and static data storage resource quotas.","description_kind":"plain","optional":true},"expiration":{"type":"string","description":"Time a static file served by this handler should be cached by web proxies and browsers.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example \"3.5s\".","description_kind":"plain","optional":true},"http_headers":{"type":["map","string"],"description":"HTTP headers to use for all responses from these URLs.\nAn object containing a list of \"key:value\" value pairs.\".","description_kind":"plain","optional":true},"mime_type":{"type":"string","description":"MIME type used to serve all files served by this handler.\nDefaults to file-specific MIME types, which are derived from each file's filename extension.","description_kind":"plain","optional":true},"path":{"type":"string","description":"Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.","description_kind":"plain","optional":true},"require_matching_file":{"type":"bool","description":"Whether this handler should match the request if the file referenced by the handler does not exist.","description_kind":"plain","optional":true},"upload_path_regex":{"type":"string","description":"Regular expression that matches the file paths for all files that should be referenced by this handler.","description_kind":"plain","optional":true}},"description":"Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them.","description_kind":"plain"},"max_items":1}},"description":"An ordered list of URL-matching patterns that should be applied to incoming requests.\nThe first matching URL handles the request and other request handlers are not attempted.","description_kind":"plain"}},"libraries":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the library. Example \"django\".","description_kind":"plain","optional":true},"version":{"type":"string","description":"Version of the library to select, or \"latest\".","description_kind":"plain","optional":true}},"description":"Configuration for third-party Python runtime libraries that are required by the application.","description_kind":"plain"}},"manual_scaling":{"nesting_mode":"list","block":{"attributes":{"instances":{"type":"number","description":"Number of instances to assign to the service at the start.\n\n**Note:** When managing the number of instances at runtime through the App Engine Admin API or the (now deprecated) Python 2\nModules API set_num_instances() you must use 'lifecycle.ignore_changes = [\"manual_scaling\"[0].instances]' to prevent drift detection.","description_kind":"plain","required":true}},"description":"A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"vpc_access_connector":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Full Serverless VPC Access Connector name e.g. /projects/my-project/locations/us-central1/connectors/c1.","description_kind":"plain","required":true}},"description":"Enables VPC connectivity for standard apps.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_assured_workloads_workload":{"version":0,"block":{"attributes":{"billing_account":{"type":"string","description":"Required. Input only. The billing account used for the resources which are direct children of workload. This billing account is initially associated with the resources created as part of Workload creation. After the initial creation of these resources, the customer can change the assigned billing account. The resource name has the form `billingAccounts/{billing_account_id}`. For example, 'billingAccounts/012345-567890-ABCDEF`.","description_kind":"plain","required":true},"compliance_regime":{"type":"string","description":"Required. Immutable. Compliance Regime associated with this workload. Possible values: COMPLIANCE_REGIME_UNSPECIFIED, IL4, CJIS, FEDRAMP_HIGH, FEDRAMP_MODERATE, US_REGIONAL_ACCESS","description_kind":"plain","required":true},"create_time":{"type":"string","description":"Output only. Immutable. The Workload creation timestamp.","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"Required. The user-assigned display name of the Workload. When present it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, and spaces. Example: My Workload","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Optional. Labels applied to the workload.","description_kind":"plain","optional":true},"location":{"type":"string","description":"The location for the resource","description_kind":"plain","required":true},"name":{"type":"string","description":"Output only. The resource name of the workload.","description_kind":"plain","computed":true},"organization":{"type":"string","description":"The organization for the resource","description_kind":"plain","required":true},"provisioned_resources_parent":{"type":"string","description":"Input only. The parent resource for the resources managed by this Assured Workload. May be either an organization or a folder. Must be the same or a child of the Workload parent. If not specified all resources are created under the Workload parent. Formats: folders/{folder_id}, organizations/{organization_id}","description_kind":"plain","optional":true},"resources":{"type":["list",["object",{"resource_id":"number","resource_type":"string"}]],"description":"Output only. The resources associated with this workload. These resources will be created when creating the workload. If any of the projects already exist, the workload creation will fail. Always read only.","description_kind":"plain","computed":true}},"block_types":{"kms_settings":{"nesting_mode":"list","block":{"attributes":{"next_rotation_time":{"type":"string","description":"Required. Input only. Immutable. The time at which the Key Management Service will automatically create a new version of the crypto key and mark it as the primary.","description_kind":"plain","required":true},"rotation_period":{"type":"string","description":"Required. Input only. Immutable. will be advanced by this period when the Key Management Service automatically rotates a key. Must be at least 24 hours and at most 876,000 hours.","description_kind":"plain","required":true}},"description":"Input only. Settings used to create a CMEK crypto key. When set a project with a KMS CMEK key is provisioned. This field is mandatory for a subset of Compliance Regimes.","description_kind":"plain"},"max_items":1},"resource_settings":{"nesting_mode":"list","block":{"attributes":{"resource_id":{"type":"string","description":"Resource identifier. For a project this represents project_number. If the project is already taken, the workload creation will fail.","description_kind":"plain","optional":true},"resource_type":{"type":"string","description":"Indicates the type of resource. This field should be specified to correspond the id to the right project type (CONSUMER_PROJECT or ENCRYPTION_KEYS_PROJECT) Possible values: RESOURCE_TYPE_UNSPECIFIED, CONSUMER_PROJECT, ENCRYPTION_KEYS_PROJECT, KEYRING, CONSUMER_FOLDER","description_kind":"plain","optional":true}},"description":"Input only. Resource properties that are used to customize workload resources. These properties (such as custom project id) will be used to create workload resources if possible. This field is optional.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_bigquery_data_transfer_config":{"version":0,"block":{"attributes":{"data_refresh_window_days":{"type":"number","description":"The number of days to look back to automatically refresh the data.\nFor example, if dataRefreshWindowDays = 10, then every day BigQuery\nreingests data for [today-10, today-1], rather than ingesting data for\njust [today-1]. Only valid if the data source supports the feature.\nSet the value to 0 to use the default value.","description_kind":"plain","optional":true},"data_source_id":{"type":"string","description":"The data source id. Cannot be changed once the transfer config is created.","description_kind":"plain","required":true},"destination_dataset_id":{"type":"string","description":"The BigQuery target dataset id.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"When set to true, no runs are scheduled for a given transfer.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The user specified display name for the transfer config.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The geographic location where the transfer config should reside.\nExamples: US, EU, asia-northeast1. The default value is US.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource name of the transfer config. Transfer config names have the\nform projects/{projectId}/locations/{location}/transferConfigs/{configId}.\nWhere configId is usually a uuid, but this is not required.\nThe name is ignored when creating a transfer config.","description_kind":"plain","computed":true},"notification_pubsub_topic":{"type":"string","description":"Pub/Sub topic where notifications will be sent after transfer runs\nassociated with this transfer config finish.","description_kind":"plain","optional":true},"params":{"type":["map","string"],"description":"Parameters specific to each data source. For more information see the bq tab in the 'Setting up a data transfer'\nsection for each data source. For example the parameters for Cloud Storage transfers are listed here:\nhttps://cloud.google.com/bigquery-transfer/docs/cloud-storage-transfer#bq","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"schedule":{"type":"string","description":"Data transfer schedule. If the data source does not support a custom\nschedule, this should be empty. If it is empty, the default value for\nthe data source will be used. The specified times are in UTC. Examples\nof valid format: 1st,3rd monday of month 15:30, every wed,fri of jan,\njun 13:15, and first sunday of quarter 00:00. See more explanation\nabout the format here:\nhttps://cloud.google.com/appengine/docs/flexible/python/scheduling-jobs-with-cron-yaml#the_schedule_format\nNOTE: the granularity should be at least 8 hours, or less frequent.","description_kind":"plain","optional":true},"service_account_name":{"type":"string","description":"Service account email. If this field is set, transfer config will\nbe created with this service account credentials. It requires that\nrequesting user calling this API has permissions to act as this service account.","description_kind":"plain","optional":true}},"block_types":{"email_preferences":{"nesting_mode":"list","block":{"attributes":{"enable_failure_email":{"type":"bool","description":"If true, email notifications will be sent on transfer run failures.","description_kind":"plain","required":true}},"description":"Email notifications will be sent according to these preferences to the\nemail address of the user who owns this transfer config.","description_kind":"plain"},"max_items":1},"schedule_options":{"nesting_mode":"list","block":{"attributes":{"disable_auto_scheduling":{"type":"bool","description":"If true, automatic scheduling of data transfer runs for this\nconfiguration will be disabled. The runs can be started on ad-hoc\nbasis using transferConfigs.startManualRuns API. When automatic\nscheduling is disabled, the TransferConfig.schedule field will\nbe ignored.","description_kind":"plain","optional":true},"end_time":{"type":"string","description":"Defines time to stop scheduling transfer runs. A transfer run cannot be\nscheduled at or after the end time. The end time can be changed at any\nmoment. The time when a data transfer can be triggered manually is not\nlimited by this option.","description_kind":"plain","optional":true},"start_time":{"type":"string","description":"Specifies time to start scheduling transfer runs. The first run will be\nscheduled at or after the start time according to a recurrence pattern\ndefined in the schedule string. The start time can be changed at any\nmoment. The time when a data transfer can be triggered manually is not\nlimited by this option.","description_kind":"plain","optional":true}},"description":"Options customizing the data transfer schedule.","description_kind":"plain"},"max_items":1},"sensitive_params":{"nesting_mode":"list","block":{"attributes":{"secret_access_key":{"type":"string","description":"The Secret Access Key of the AWS account transferring data from.","description_kind":"plain","required":true,"sensitive":true}},"description":"Different parameters are configured primarily using the the 'params' field on this\nresource. This block contains the parameters which contain secrets or passwords so that they can be marked\nsensitive and hidden from plan output. The name of the field, eg: secret_access_key, will be the key\nin the 'params' map in the api request.\n\nCredentials may not be specified in both locations and will cause an error. Changing from one location\nto a different credential configuration in the config will require an apply to update state.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_bigquery_dataset":{"version":0,"block":{"attributes":{"creation_time":{"type":"number","description":"The time when this dataset was created, in milliseconds since the\nepoch.","description_kind":"plain","computed":true},"dataset_id":{"type":"string","description":"A unique ID for this dataset, without the project name. The ID\nmust contain only letters (a-z, A-Z), numbers (0-9), or\nunderscores (_). The maximum length is 1,024 characters.","description_kind":"plain","required":true},"default_partition_expiration_ms":{"type":"number","description":"The default partition expiration for all partitioned tables in\nthe dataset, in milliseconds.\n\n\nOnce this property is set, all newly-created partitioned tables in\nthe dataset will have an 'expirationMs' property in the 'timePartitioning'\nsettings set to this value, and changing the value will only\naffect new tables, not existing ones. The storage in a partition will\nhave an expiration time of its partition time plus this value.\nSetting this property overrides the use of 'defaultTableExpirationMs'\nfor partitioned tables: only one of 'defaultTableExpirationMs' and\n'defaultPartitionExpirationMs' will be used for any new partitioned\ntable. If you provide an explicit 'timePartitioning.expirationMs' when\ncreating or updating a partitioned table, that value takes precedence\nover the default partition expiration time indicated by this property.","description_kind":"plain","optional":true},"default_table_expiration_ms":{"type":"number","description":"The default lifetime of all tables in the dataset, in milliseconds.\nThe minimum value is 3600000 milliseconds (one hour).\n\n\nOnce this property is set, all newly-created tables in the dataset\nwill have an 'expirationTime' property set to the creation time plus\nthe value in this property, and changing the value will only affect\nnew tables, not existing ones. When the 'expirationTime' for a given\ntable is reached, that table will be deleted automatically.\nIf a table's 'expirationTime' is modified or removed before the\ntable expires, or if you provide an explicit 'expirationTime' when\ncreating a table, that value takes precedence over the default\nexpiration time indicated by this property.","description_kind":"plain","optional":true},"delete_contents_on_destroy":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description":"A user-friendly description of the dataset","description_kind":"plain","optional":true},"etag":{"type":"string","description":"A hash of the resource.","description_kind":"plain","computed":true},"friendly_name":{"type":"string","description":"A descriptive name for the dataset","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The labels associated with this dataset. You can use these to\norganize and group your datasets","description_kind":"plain","optional":true},"last_modified_time":{"type":"number","description":"The date when this dataset or any of its tables was last modified, in\nmilliseconds since the epoch.","description_kind":"plain","computed":true},"location":{"type":"string","description":"The geographic location where the dataset should reside.\nSee [official docs](https://cloud.google.com/bigquery/docs/dataset-locations).\n\n\nThere are two types of locations, regional or multi-regional. A regional\nlocation is a specific geographic place, such as Tokyo, and a multi-regional\nlocation is a large geographic area, such as the United States, that\ncontains at least two geographic places.\n\n\nThe default value is multi-regional location 'US'.\nChanging this forces a new resource to be created.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"access":{"nesting_mode":"set","block":{"attributes":{"domain":{"type":"string","description":"A domain to grant access to. Any users signed in with the\ndomain specified will be granted the specified access","description_kind":"plain","optional":true},"group_by_email":{"type":"string","description":"An email address of a Google Group to grant access to.","description_kind":"plain","optional":true},"role":{"type":"string","description":"Describes the rights granted to the user specified by the other\nmember of the access object. Basic, predefined, and custom roles\nare supported. Predefined roles that have equivalent basic roles\nare swapped by the API to their basic counterparts. See\n[official docs](https://cloud.google.com/bigquery/docs/access-control).","description_kind":"plain","optional":true},"special_group":{"type":"string","description":"A special group to grant access to. Possible values include:\n\n\n* 'projectOwners': Owners of the enclosing project.\n\n\n* 'projectReaders': Readers of the enclosing project.\n\n\n* 'projectWriters': Writers of the enclosing project.\n\n\n* 'allAuthenticatedUsers': All authenticated BigQuery users.","description_kind":"plain","optional":true},"user_by_email":{"type":"string","description":"An email address of a user to grant access to. For example:\nfred@example.com","description_kind":"plain","optional":true}},"block_types":{"dataset":{"nesting_mode":"list","block":{"attributes":{"target_types":{"type":["list","string"],"description":"Which resources in the dataset this entry applies to. Currently, only views are supported,\nbut additional target types may be added in the future. Possible values: VIEWS","description_kind":"plain","required":true}},"block_types":{"dataset":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The ID of the dataset containing this table.","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The ID of the project containing this table.","description_kind":"plain","required":true}},"description":"The dataset this entry applies to","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Grants all resources of particular types in a particular dataset read access to the current dataset.","description_kind":"plain"},"max_items":1},"view":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The ID of the dataset containing this table.","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The ID of the project containing this table.","description_kind":"plain","required":true},"table_id":{"type":"string","description":"The ID of the table. The ID must contain only letters (a-z,\nA-Z), numbers (0-9), or underscores (_). The maximum length\nis 1,024 characters.","description_kind":"plain","required":true}},"description":"A view from a different dataset to grant access to. Queries\nexecuted against that view will have read access to tables in\nthis dataset. The role field is not required when this field is\nset. If that view is updated by any user, access to the view\nneeds to be granted again via an update operation.","description_kind":"plain"},"max_items":1}},"description":"An array of objects that define dataset access for one or more entities.","description_kind":"plain"}},"default_encryption_configuration":{"nesting_mode":"list","block":{"attributes":{"kms_key_name":{"type":"string","description":"Describes the Cloud KMS encryption key that will be used to protect destination\nBigQuery table. The BigQuery Service Account associated with your project requires\naccess to this encryption key.","description_kind":"plain","required":true}},"description":"The default encryption key for all tables in the dataset. Once this property is set,\nall newly-created partitioned tables in the dataset will have encryption key set to\nthis value, unless table creation request (or query) overrides the key.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_bigquery_dataset_access":{"version":0,"block":{"attributes":{"api_updated_member":{"type":"bool","description":"If true, represents that that the iam_member in the config was translated to a different member type by the API, and is stored in state as a different member type","description_kind":"plain","computed":true},"dataset_id":{"type":"string","description":"A unique ID for this dataset, without the project name. The ID\nmust contain only letters (a-z, A-Z), numbers (0-9), or\nunderscores (_). The maximum length is 1,024 characters.","description_kind":"plain","required":true},"domain":{"type":"string","description":"A domain to grant access to. Any users signed in with the\ndomain specified will be granted the specified access","description_kind":"plain","optional":true},"group_by_email":{"type":"string","description":"An email address of a Google Group to grant access to.","description_kind":"plain","optional":true},"iam_member":{"type":"string","description":"Some other type of member that appears in the IAM Policy but isn't a user,\ngroup, domain, or special group. For example: 'allUsers'","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description":"Describes the rights granted to the user specified by the other\nmember of the access object. Basic, predefined, and custom roles are\nsupported. Predefined roles that have equivalent basic roles are\nswapped by the API to their basic counterparts, and will show a diff\npost-create. See\n[official docs](https://cloud.google.com/bigquery/docs/access-control).","description_kind":"plain","optional":true},"special_group":{"type":"string","description":"A special group to grant access to. Possible values include:\n\n\n* 'projectOwners': Owners of the enclosing project.\n\n\n* 'projectReaders': Readers of the enclosing project.\n\n\n* 'projectWriters': Writers of the enclosing project.\n\n\n* 'allAuthenticatedUsers': All authenticated BigQuery users.","description_kind":"plain","optional":true},"user_by_email":{"type":"string","description":"An email address of a user to grant access to. For example:\nfred@example.com","description_kind":"plain","optional":true}},"block_types":{"dataset":{"nesting_mode":"list","block":{"attributes":{"target_types":{"type":["list","string"],"description":"Which resources in the dataset this entry applies to. Currently, only views are supported,\nbut additional target types may be added in the future. Possible values: VIEWS","description_kind":"plain","required":true}},"block_types":{"dataset":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The ID of the dataset containing this table.","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The ID of the project containing this table.","description_kind":"plain","required":true}},"description":"The dataset this entry applies to","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Grants all resources of particular types in a particular dataset read access to the current dataset.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"view":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The ID of the dataset containing this table.","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The ID of the project containing this table.","description_kind":"plain","required":true},"table_id":{"type":"string","description":"The ID of the table. The ID must contain only letters (a-z,\nA-Z), numbers (0-9), or underscores (_). The maximum length\nis 1,024 characters.","description_kind":"plain","required":true}},"description":"A view from a different dataset to grant access to. Queries\nexecuted against that view will have read access to tables in\nthis dataset. The role field is not required when this field is\nset. If that view is updated by any user, access to the view\nneeds to be granted again via an update operation.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_bigquery_dataset_iam_binding":{"version":0,"block":{"attributes":{"dataset_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_bigquery_dataset_iam_member":{"version":0,"block":{"attributes":{"dataset_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_bigquery_dataset_iam_policy":{"version":0,"block":{"attributes":{"dataset_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_bigquery_job":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"job_id":{"type":"string","description":"The ID of the job. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 1,024 characters.","description_kind":"plain","required":true},"job_timeout_ms":{"type":"string","description":"Job timeout in milliseconds. If this time limit is exceeded, BigQuery may attempt to terminate the job.","description_kind":"plain","optional":true},"job_type":{"type":"string","description":"The type of the job.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"The labels associated with this job. You can use these to organize and group your jobs.","description_kind":"plain","optional":true},"location":{"type":"string","description":"The geographic location of the job. The default value is US.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":["list",["object",{"error_result":["list",["object",{"location":"string","message":"string","reason":"string"}]],"errors":["list",["object",{"location":"string","message":"string","reason":"string"}]],"state":"string"}]],"description":"The status of this job. Examine this value when polling an asynchronous job to see if the job is complete.","description_kind":"plain","computed":true},"user_email":{"type":"string","description":"Email address of the user who ran the job.","description_kind":"plain","computed":true}},"block_types":{"copy":{"nesting_mode":"list","block":{"attributes":{"create_disposition":{"type":"string","description":"Specifies whether the job is allowed to create new tables. The following values are supported:\nCREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table.\nCREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result.\nCreation, truncation and append actions occur as one atomic update upon job completion Default value: \"CREATE_IF_NEEDED\" Possible values: [\"CREATE_IF_NEEDED\", \"CREATE_NEVER\"]","description_kind":"plain","optional":true},"write_disposition":{"type":"string","description":"Specifies the action that occurs if the destination table already exists. The following values are supported:\nWRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data and uses the schema from the query result.\nWRITE_APPEND: If the table already exists, BigQuery appends the data to the table.\nWRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result.\nEach action is atomic and only occurs if BigQuery is able to complete the job successfully.\nCreation, truncation and append actions occur as one atomic update upon job completion. Default value: \"WRITE_EMPTY\" Possible values: [\"WRITE_TRUNCATE\", \"WRITE_APPEND\", \"WRITE_EMPTY\"]","description_kind":"plain","optional":true}},"block_types":{"destination_encryption_configuration":{"nesting_mode":"list","block":{"attributes":{"kms_key_name":{"type":"string","description":"Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table.\nThe BigQuery Service Account associated with your project requires access to this encryption key.","description_kind":"plain","required":true},"kms_key_version":{"type":"string","description":"Describes the Cloud KMS encryption key version used to protect destination BigQuery table.","description_kind":"plain","computed":true}},"description":"Custom encryption configuration (e.g., Cloud KMS keys)","description_kind":"plain"},"max_items":1},"destination_table":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The ID of the dataset containing this table.","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The ID of the project containing this table.","description_kind":"plain","optional":true,"computed":true},"table_id":{"type":"string","description":"The table. Can be specified '{{table_id}}' if 'project_id' and 'dataset_id' are also set,\nor of the form 'projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}' if not.","description_kind":"plain","required":true}},"description":"The destination table.","description_kind":"plain"},"max_items":1},"source_tables":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The ID of the dataset containing this table.","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The ID of the project containing this table.","description_kind":"plain","optional":true,"computed":true},"table_id":{"type":"string","description":"The table. Can be specified '{{table_id}}' if 'project_id' and 'dataset_id' are also set,\nor of the form 'projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}' if not.","description_kind":"plain","required":true}},"description":"Source tables to copy.","description_kind":"plain"},"min_items":1}},"description":"Copies a table.","description_kind":"plain"},"max_items":1},"extract":{"nesting_mode":"list","block":{"attributes":{"compression":{"type":"string","description":"The compression type to use for exported files. Possible values include GZIP, DEFLATE, SNAPPY, and NONE.\nThe default value is NONE. DEFLATE and SNAPPY are only supported for Avro.","description_kind":"plain","optional":true},"destination_format":{"type":"string","description":"The exported file format. Possible values include CSV, NEWLINE_DELIMITED_JSON and AVRO for tables and SAVED_MODEL for models.\nThe default value for tables is CSV. Tables with nested or repeated fields cannot be exported as CSV.\nThe default value for models is SAVED_MODEL.","description_kind":"plain","optional":true,"computed":true},"destination_uris":{"type":["list","string"],"description":"A list of fully-qualified Google Cloud Storage URIs where the extracted table should be written.","description_kind":"plain","required":true},"field_delimiter":{"type":"string","description":"When extracting data in CSV format, this defines the delimiter to use between fields in the exported data.\nDefault is ','","description_kind":"plain","optional":true,"computed":true},"print_header":{"type":"bool","description":"Whether to print out a header row in the results. Default is true.","description_kind":"plain","optional":true},"use_avro_logical_types":{"type":"bool","description":"Whether to use logical types when extracting to AVRO format.","description_kind":"plain","optional":true}},"block_types":{"source_model":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The ID of the dataset containing this model.","description_kind":"plain","required":true},"model_id":{"type":"string","description":"The ID of the model.","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The ID of the project containing this model.","description_kind":"plain","required":true}},"description":"A reference to the model being exported.","description_kind":"plain"},"max_items":1},"source_table":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The ID of the dataset containing this table.","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The ID of the project containing this table.","description_kind":"plain","optional":true,"computed":true},"table_id":{"type":"string","description":"The table. Can be specified '{{table_id}}' if 'project_id' and 'dataset_id' are also set,\nor of the form 'projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}' if not.","description_kind":"plain","required":true}},"description":"A reference to the table being exported.","description_kind":"plain"},"max_items":1}},"description":"Configures an extract job.","description_kind":"plain"},"max_items":1},"load":{"nesting_mode":"list","block":{"attributes":{"allow_jagged_rows":{"type":"bool","description":"Accept rows that are missing trailing optional columns. The missing values are treated as nulls.\nIf false, records with missing trailing columns are treated as bad records, and if there are too many bad records,\nan invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats.","description_kind":"plain","optional":true},"allow_quoted_newlines":{"type":"bool","description":"Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file.\nThe default value is false.","description_kind":"plain","optional":true},"autodetect":{"type":"bool","description":"Indicates if we should automatically infer the options and schema for CSV and JSON sources.","description_kind":"plain","optional":true},"create_disposition":{"type":"string","description":"Specifies whether the job is allowed to create new tables. The following values are supported:\nCREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table.\nCREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result.\nCreation, truncation and append actions occur as one atomic update upon job completion Default value: \"CREATE_IF_NEEDED\" Possible values: [\"CREATE_IF_NEEDED\", \"CREATE_NEVER\"]","description_kind":"plain","optional":true},"encoding":{"type":"string","description":"The character encoding of the data. The supported values are UTF-8 or ISO-8859-1.\nThe default value is UTF-8. BigQuery decodes the data after the raw, binary data\nhas been split using the values of the quote and fieldDelimiter properties.","description_kind":"plain","optional":true},"field_delimiter":{"type":"string","description":"The separator for fields in a CSV file. The separator can be any ISO-8859-1 single-byte character.\nTo use a character in the range 128-255, you must encode the character as UTF8. BigQuery converts\nthe string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the\ndata in its raw, binary state. BigQuery also supports the escape sequence \"\\t\" to specify a tab separator.\nThe default value is a comma (',').","description_kind":"plain","optional":true,"computed":true},"ignore_unknown_values":{"type":"bool","description":"Indicates if BigQuery should allow extra values that are not represented in the table schema.\nIf true, the extra values are ignored. If false, records with extra columns are treated as bad records,\nand if there are too many bad records, an invalid error is returned in the job result.\nThe default value is false. The sourceFormat property determines what BigQuery treats as an extra value:\nCSV: Trailing columns\nJSON: Named values that don't match any column names","description_kind":"plain","optional":true},"max_bad_records":{"type":"number","description":"The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value,\nan invalid error is returned in the job result. The default value is 0, which requires that all records are valid.","description_kind":"plain","optional":true},"null_marker":{"type":"string","description":"Specifies a string that represents a null value in a CSV file. For example, if you specify \"\\N\", BigQuery interprets \"\\N\" as a null value\nwhen loading a CSV file. The default value is the empty string. If you set this property to a custom value, BigQuery throws an error if an\nempty string is present for all data types except for STRING and BYTE. For STRING and BYTE columns, BigQuery interprets the empty string as\nan empty value.","description_kind":"plain","optional":true},"projection_fields":{"type":["list","string"],"description":"If sourceFormat is set to \"DATASTORE_BACKUP\", indicates which entity properties to load into BigQuery from a Cloud Datastore backup.\nProperty names are case sensitive and must be top-level properties. If no properties are specified, BigQuery loads all properties.\nIf any named property isn't found in the Cloud Datastore backup, an invalid error is returned in the job result.","description_kind":"plain","optional":true},"quote":{"type":"string","description":"The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding,\nand then uses the first byte of the encoded string to split the data in its raw, binary state.\nThe default value is a double-quote ('\"'). If your data does not contain quoted sections, set the property value to an empty string.\nIf your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true.","description_kind":"plain","optional":true,"computed":true},"schema_update_options":{"type":["list","string"],"description":"Allows the schema of the destination table to be updated as a side effect of the load job if a schema is autodetected or\nsupplied in the job configuration. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND;\nwhen writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators.\nFor normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified:\nALLOW_FIELD_ADDITION: allow adding a nullable field to the schema.\nALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.","description_kind":"plain","optional":true},"skip_leading_rows":{"type":"number","description":"The number of rows at the top of a CSV file that BigQuery will skip when loading the data.\nThe default value is 0. This property is useful if you have header rows in the file that should be skipped.\nWhen autodetect is on, the behavior is the following:\nskipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected,\nthe row is read as data. Otherwise data is read starting from the second row.\nskipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row.\nskipLeadingRows = N \u003e 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected,\nrow N is just skipped. Otherwise row N is used to extract column names for the detected schema.","description_kind":"plain","optional":true},"source_format":{"type":"string","description":"The format of the data files. For CSV files, specify \"CSV\". For datastore backups, specify \"DATASTORE_BACKUP\".\nFor newline-delimited JSON, specify \"NEWLINE_DELIMITED_JSON\". For Avro, specify \"AVRO\". For parquet, specify \"PARQUET\".\nFor orc, specify \"ORC\". [Beta] For Bigtable, specify \"BIGTABLE\".\nThe default value is CSV.","description_kind":"plain","optional":true},"source_uris":{"type":["list","string"],"description":"The fully-qualified URIs that point to your data in Google Cloud.\nFor Google Cloud Storage URIs: Each URI can contain one '*' wildcard character\nand it must come after the 'bucket' name. Size limits related to load jobs apply\nto external data sources. For Google Cloud Bigtable URIs: Exactly one URI can be\nspecified and it has be a fully specified and valid HTTPS URL for a Google Cloud Bigtable table.\nFor Google Cloud Datastore backups: Exactly one URI can be specified. Also, the '*' wildcard character is not allowed.","description_kind":"plain","required":true},"write_disposition":{"type":"string","description":"Specifies the action that occurs if the destination table already exists. The following values are supported:\nWRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data and uses the schema from the query result.\nWRITE_APPEND: If the table already exists, BigQuery appends the data to the table.\nWRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result.\nEach action is atomic and only occurs if BigQuery is able to complete the job successfully.\nCreation, truncation and append actions occur as one atomic update upon job completion. Default value: \"WRITE_EMPTY\" Possible values: [\"WRITE_TRUNCATE\", \"WRITE_APPEND\", \"WRITE_EMPTY\"]","description_kind":"plain","optional":true}},"block_types":{"destination_encryption_configuration":{"nesting_mode":"list","block":{"attributes":{"kms_key_name":{"type":"string","description":"Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table.\nThe BigQuery Service Account associated with your project requires access to this encryption key.","description_kind":"plain","required":true},"kms_key_version":{"type":"string","description":"Describes the Cloud KMS encryption key version used to protect destination BigQuery table.","description_kind":"plain","computed":true}},"description":"Custom encryption configuration (e.g., Cloud KMS keys)","description_kind":"plain"},"max_items":1},"destination_table":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The ID of the dataset containing this table.","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The ID of the project containing this table.","description_kind":"plain","optional":true,"computed":true},"table_id":{"type":"string","description":"The table. Can be specified '{{table_id}}' if 'project_id' and 'dataset_id' are also set,\nor of the form 'projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}' if not.","description_kind":"plain","required":true}},"description":"The destination table to load the data into.","description_kind":"plain"},"min_items":1,"max_items":1},"time_partitioning":{"nesting_mode":"list","block":{"attributes":{"expiration_ms":{"type":"string","description":"Number of milliseconds for which to keep the storage for a partition. A wrapper is used here because 0 is an invalid value.","description_kind":"plain","optional":true},"field":{"type":"string","description":"If not set, the table is partitioned by pseudo column '_PARTITIONTIME'; if set, the table is partitioned by this field.\nThe field must be a top-level TIMESTAMP or DATE field. Its mode must be NULLABLE or REQUIRED.\nA wrapper is used here because an empty string is an invalid value.","description_kind":"plain","optional":true},"type":{"type":"string","description":"The only type supported is DAY, which will generate one partition per day. Providing an empty string used to cause an error,\nbut in OnePlatform the field will be treated as unset.","description_kind":"plain","required":true}},"description":"Time-based partitioning specification for the destination table.","description_kind":"plain"},"max_items":1}},"description":"Configures a load job.","description_kind":"plain"},"max_items":1},"query":{"nesting_mode":"list","block":{"attributes":{"allow_large_results":{"type":"bool","description":"If true and query uses legacy SQL dialect, allows the query to produce arbitrarily large result tables at a slight cost in performance.\nRequires destinationTable to be set. For standard SQL queries, this flag is ignored and large results are always allowed.\nHowever, you must still set destinationTable when result size exceeds the allowed maximum response size.","description_kind":"plain","optional":true},"create_disposition":{"type":"string","description":"Specifies whether the job is allowed to create new tables. The following values are supported:\nCREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table.\nCREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result.\nCreation, truncation and append actions occur as one atomic update upon job completion Default value: \"CREATE_IF_NEEDED\" Possible values: [\"CREATE_IF_NEEDED\", \"CREATE_NEVER\"]","description_kind":"plain","optional":true},"flatten_results":{"type":"bool","description":"If true and query uses legacy SQL dialect, flattens all nested and repeated fields in the query results.\nallowLargeResults must be true if this is set to false. For standard SQL queries, this flag is ignored and results are never flattened.","description_kind":"plain","optional":true},"maximum_billing_tier":{"type":"number","description":"Limits the billing tier for this job. Queries that have resource usage beyond this tier will fail (without incurring a charge).\nIf unspecified, this will be set to your project default.","description_kind":"plain","optional":true},"maximum_bytes_billed":{"type":"string","description":"Limits the bytes billed for this job. Queries that will have bytes billed beyond this limit will fail (without incurring a charge).\nIf unspecified, this will be set to your project default.","description_kind":"plain","optional":true},"parameter_mode":{"type":"string","description":"Standard SQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.","description_kind":"plain","optional":true},"priority":{"type":"string","description":"Specifies a priority for the query. Default value: \"INTERACTIVE\" Possible values: [\"INTERACTIVE\", \"BATCH\"]","description_kind":"plain","optional":true},"query":{"type":"string","description":"SQL query text to execute. The useLegacySql field can be used to indicate whether the query uses legacy SQL or standard SQL.\n*NOTE*: queries containing [DML language](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language)\n('DELETE', 'UPDATE', 'MERGE', 'INSERT') must specify 'create_disposition = \"\"' and 'write_disposition = \"\"'.","description_kind":"plain","required":true},"schema_update_options":{"type":["list","string"],"description":"Allows the schema of the destination table to be updated as a side effect of the query job.\nSchema update options are supported in two cases: when writeDisposition is WRITE_APPEND;\nwhen writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table,\nspecified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema.\nOne or more of the following values are specified:\nALLOW_FIELD_ADDITION: allow adding a nullable field to the schema.\nALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.","description_kind":"plain","optional":true},"use_legacy_sql":{"type":"bool","description":"Specifies whether to use BigQuery's legacy SQL dialect for this query. The default value is true.\nIf set to false, the query will use BigQuery's standard SQL.","description_kind":"plain","optional":true},"use_query_cache":{"type":"bool","description":"Whether to look for the result in the query cache. The query cache is a best-effort cache that will be flushed whenever\ntables in the query are modified. Moreover, the query cache is only available when a query does not have a destination table specified.\nThe default value is true.","description_kind":"plain","optional":true},"write_disposition":{"type":"string","description":"Specifies the action that occurs if the destination table already exists. The following values are supported:\nWRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data and uses the schema from the query result.\nWRITE_APPEND: If the table already exists, BigQuery appends the data to the table.\nWRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result.\nEach action is atomic and only occurs if BigQuery is able to complete the job successfully.\nCreation, truncation and append actions occur as one atomic update upon job completion. Default value: \"WRITE_EMPTY\" Possible values: [\"WRITE_TRUNCATE\", \"WRITE_APPEND\", \"WRITE_EMPTY\"]","description_kind":"plain","optional":true}},"block_types":{"default_dataset":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The dataset. Can be specified '{{dataset_id}}' if 'project_id' is also set,\nor of the form 'projects/{{project}}/datasets/{{dataset_id}}' if not.","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The ID of the project containing this table.","description_kind":"plain","optional":true,"computed":true}},"description":"Specifies the default dataset to use for unqualified table names in the query. Note that this does not alter behavior of unqualified dataset names.","description_kind":"plain"},"max_items":1},"destination_encryption_configuration":{"nesting_mode":"list","block":{"attributes":{"kms_key_name":{"type":"string","description":"Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table.\nThe BigQuery Service Account associated with your project requires access to this encryption key.","description_kind":"plain","required":true},"kms_key_version":{"type":"string","description":"Describes the Cloud KMS encryption key version used to protect destination BigQuery table.","description_kind":"plain","computed":true}},"description":"Custom encryption configuration (e.g., Cloud KMS keys)","description_kind":"plain"},"max_items":1},"destination_table":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The ID of the dataset containing this table.","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The ID of the project containing this table.","description_kind":"plain","optional":true,"computed":true},"table_id":{"type":"string","description":"The table. Can be specified '{{table_id}}' if 'project_id' and 'dataset_id' are also set,\nor of the form 'projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}' if not.","description_kind":"plain","required":true}},"description":"Describes the table where the query results should be stored.\nThis property must be set for large results that exceed the maximum response size.\nFor queries that produce anonymous (cached) results, this field will be populated by BigQuery.","description_kind":"plain"},"max_items":1},"script_options":{"nesting_mode":"list","block":{"attributes":{"key_result_statement":{"type":"string","description":"Determines which statement in the script represents the \"key result\",\nused to populate the schema and query results of the script job. Possible values: [\"LAST\", \"FIRST_SELECT\"]","description_kind":"plain","optional":true},"statement_byte_budget":{"type":"string","description":"Limit on the number of bytes billed per statement. Exceeding this budget results in an error.","description_kind":"plain","optional":true},"statement_timeout_ms":{"type":"string","description":"Timeout period for each statement in a script.","description_kind":"plain","optional":true}},"description":"Options controlling the execution of scripts.","description_kind":"plain"},"max_items":1},"user_defined_function_resources":{"nesting_mode":"list","block":{"attributes":{"inline_code":{"type":"string","description":"An inline resource that contains code for a user-defined function (UDF).\nProviding a inline code resource is equivalent to providing a URI for a file containing the same code.","description_kind":"plain","optional":true},"resource_uri":{"type":"string","description":"A code resource to load from a Google Cloud Storage URI (gs://bucket/path).","description_kind":"plain","optional":true}},"description":"Describes user-defined function resources used in the query.","description_kind":"plain"}}},"description":"Configures a query job.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_bigquery_reservation":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ignore_idle_slots":{"type":"bool","description":"If false, any query using this reservation will use idle slots from other reservations within\nthe same admin project. If true, a query using this reservation will execute with the slot\ncapacity specified above at most.","description_kind":"plain","optional":true},"location":{"type":"string","description":"The geographic location where the transfer config should reside.\nExamples: US, EU, asia-northeast1. The default value is US.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the reservation. This field must only contain alphanumeric characters or dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"slot_capacity":{"type":"number","description":"Minimum slots available to this reservation. A slot is a unit of computational power in BigQuery, and serves as the\nunit of parallelism. Queries using this reservation might use more slots during runtime if ignoreIdleSlots is set to false.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_bigquery_reservation_assignment":{"version":0,"block":{"attributes":{"assignee":{"type":"string","description":"The resource which will use the reservation. E.g. projects/myproject, folders/123, organizations/456.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"job_type":{"type":"string","description":"Types of job, which could be specified when using the reservation. Possible values: JOB_TYPE_UNSPECIFIED, PIPELINE, QUERY","description_kind":"plain","required":true},"location":{"type":"string","description":"The location for the resource","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Output only. The resource name of the assignment.","description_kind":"plain","computed":true},"project":{"type":"string","description":"The project for the resource","description_kind":"plain","optional":true,"computed":true},"reservation":{"type":"string","description":"The reservation for the resource","description_kind":"plain","required":true},"state":{"type":"string","description":"Assignment will remain in PENDING state if no active capacity commitment is present. It will become ACTIVE when some capacity commitment becomes active. Possible values: STATE_UNSPECIFIED, PENDING, ACTIVE","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_bigquery_routine":{"version":0,"block":{"attributes":{"creation_time":{"type":"number","description":"The time when this routine was created, in milliseconds since the\nepoch.","description_kind":"plain","computed":true},"dataset_id":{"type":"string","description":"The ID of the dataset containing this routine","description_kind":"plain","required":true},"definition_body":{"type":"string","description":"The body of the routine. For functions, this is the expression in the AS clause.\nIf language=SQL, it is the substring inside (but excluding) the parentheses.","description_kind":"plain","required":true},"description":{"type":"string","description":"The description of the routine if defined.","description_kind":"plain","optional":true},"determinism_level":{"type":"string","description":"The determinism level of the JavaScript UDF if defined. Possible values: [\"DETERMINISM_LEVEL_UNSPECIFIED\", \"DETERMINISTIC\", \"NOT_DETERMINISTIC\"]","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"imported_libraries":{"type":["list","string"],"description":"Optional. If language = \"JAVASCRIPT\", this field stores the path of the\nimported JAVASCRIPT libraries.","description_kind":"plain","optional":true},"language":{"type":"string","description":"The language of the routine. Possible values: [\"SQL\", \"JAVASCRIPT\"]","description_kind":"plain","optional":true},"last_modified_time":{"type":"number","description":"The time when this routine was modified, in milliseconds since the\nepoch.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"return_table_type":{"type":"string","description":"Optional. Can be set only if routineType = \"TABLE_VALUED_FUNCTION\".\n\nIf absent, the return table type is inferred from definitionBody at query time in each query\nthat references this routine. If present, then the columns in the evaluated table result will\nbe cast to match the column types specificed in return table type, at query time.","description_kind":"plain","optional":true},"return_type":{"type":"string","description":"A JSON schema for the return type. Optional if language = \"SQL\"; required otherwise.\nIf absent, the return type is inferred from definitionBody at query time in each query\nthat references this routine. If present, then the evaluated result will be cast to\nthe specified returned type at query time. ~\u003e**NOTE**: Because this field expects a JSON\nstring, any changes to the string will create a diff, even if the JSON itself hasn't\nchanged. If the API returns a different value for the same schema, e.g. it switche\nd the order of values or replaced STRUCT field type with RECORD field type, we currently\ncannot suppress the recurring diff this causes. As a workaround, we recommend using\nthe schema as returned by the API.","description_kind":"plain","optional":true},"routine_id":{"type":"string","description":"The ID of the the routine. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 256 characters.","description_kind":"plain","required":true},"routine_type":{"type":"string","description":"The type of routine. Possible values: [\"SCALAR_FUNCTION\", \"PROCEDURE\", \"TABLE_VALUED_FUNCTION\"]","description_kind":"plain","optional":true}},"block_types":{"arguments":{"nesting_mode":"list","block":{"attributes":{"argument_kind":{"type":"string","description":"Defaults to FIXED_TYPE. Default value: \"FIXED_TYPE\" Possible values: [\"FIXED_TYPE\", \"ANY_TYPE\"]","description_kind":"plain","optional":true},"data_type":{"type":"string","description":"A JSON schema for the data type. Required unless argumentKind = ANY_TYPE.\n~\u003e**NOTE**: Because this field expects a JSON string, any changes to the string\nwill create a diff, even if the JSON itself hasn't changed. If the API returns\na different value for the same schema, e.g. it switched the order of values\nor replaced STRUCT field type with RECORD field type, we currently cannot\nsuppress the recurring diff this causes. As a workaround, we recommend using\nthe schema as returned by the API.","description_kind":"plain","optional":true},"mode":{"type":"string","description":"Specifies whether the argument is input or output. Can be set for procedures only. Possible values: [\"IN\", \"OUT\", \"INOUT\"]","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of this argument. Can be absent for function return argument.","description_kind":"plain","optional":true}},"description":"Input/output argument of a function or a stored procedure.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_bigquery_table":{"version":0,"block":{"attributes":{"clustering":{"type":["list","string"],"description":"Specifies column names to use for data clustering. Up to four top-level columns are allowed, and should be specified in descending priority order.","description_kind":"plain","optional":true},"creation_time":{"type":"number","description":"The time when this table was created, in milliseconds since the epoch.","description_kind":"plain","computed":true},"dataset_id":{"type":"string","description":"The dataset ID to create the table in. Changing this forces a new resource to be created.","description_kind":"plain","required":true},"deletion_protection":{"type":"bool","description":"Whether or not to allow Terraform to destroy the instance. Unless this field is set to false in Terraform state, a terraform destroy or terraform apply that would delete the instance will fail.","description_kind":"plain","optional":true},"description":{"type":"string","description":"The field description.","description_kind":"plain","optional":true},"etag":{"type":"string","description":"A hash of the resource.","description_kind":"plain","computed":true},"expiration_time":{"type":"number","description":"The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.","description_kind":"plain","optional":true,"computed":true},"friendly_name":{"type":"string","description":"A descriptive name for the table.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A mapping of labels to assign to the resource.","description_kind":"plain","optional":true},"last_modified_time":{"type":"number","description":"The time when this table was last modified, in milliseconds since the epoch.","description_kind":"plain","computed":true},"location":{"type":"string","description":"The geographic location where the table resides. This value is inherited from the dataset.","description_kind":"plain","computed":true},"num_bytes":{"type":"number","description":"The geographic location where the table resides. This value is inherited from the dataset.","description_kind":"plain","computed":true},"num_long_term_bytes":{"type":"number","description":"The number of bytes in the table that are considered \"long-term storage\".","description_kind":"plain","computed":true},"num_rows":{"type":"number","description":"The number of rows of data in this table, excluding any data in the streaming buffer.","description_kind":"plain","computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs.","description_kind":"plain","optional":true,"computed":true},"schema":{"type":"string","description":"A JSON schema for the table.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"table_id":{"type":"string","description":"A unique ID for the resource. Changing this forces a new resource to be created.","description_kind":"plain","required":true},"type":{"type":"string","description":"Describes the table type.","description_kind":"plain","computed":true}},"block_types":{"encryption_configuration":{"nesting_mode":"list","block":{"attributes":{"kms_key_name":{"type":"string","description":"The self link or full name of a key which should be used to encrypt this table. Note that the default bigquery service account will need to have encrypt/decrypt permissions on this key - you may want to see the google_bigquery_default_service_account datasource and the google_kms_crypto_key_iam_binding resource.","description_kind":"plain","required":true},"kms_key_version":{"type":"string","description":"The self link or full name of the kms key version used to encrypt this table.","description_kind":"plain","computed":true}},"description":"Specifies how the table should be encrypted. If left blank, the table will be encrypted with a Google-managed key; that process is transparent to the user.","description_kind":"plain"},"max_items":1},"external_data_configuration":{"nesting_mode":"list","block":{"attributes":{"autodetect":{"type":"bool","description":"Let BigQuery try to autodetect the schema and format of the table.","description_kind":"plain","required":true},"compression":{"type":"string","description":"The compression type of the data source. Valid values are \"NONE\" or \"GZIP\".","description_kind":"plain","optional":true},"ignore_unknown_values":{"type":"bool","description":"Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false.","description_kind":"plain","optional":true},"max_bad_records":{"type":"number","description":"The maximum number of bad records that BigQuery can ignore when reading data.","description_kind":"plain","optional":true},"schema":{"type":"string","description":"A JSON schema for the external table. Schema is required for CSV and JSON formats and is disallowed for Google Cloud Bigtable, Cloud Datastore backups, and Avro formats when using external tables.","description_kind":"plain","optional":true,"computed":true},"source_format":{"type":"string","description":"The data format. Supported values are: \"CSV\", \"GOOGLE_SHEETS\", \"NEWLINE_DELIMITED_JSON\", \"AVRO\", \"PARQUET\", \"ORC\" and \"DATASTORE_BACKUP\". To use \"GOOGLE_SHEETS\" the scopes must include \"googleapis.com/auth/drive.readonly\".","description_kind":"plain","required":true},"source_uris":{"type":["list","string"],"description":"A list of the fully-qualified URIs that point to your data in Google Cloud.","description_kind":"plain","required":true}},"block_types":{"csv_options":{"nesting_mode":"list","block":{"attributes":{"allow_jagged_rows":{"type":"bool","description":"Indicates if BigQuery should accept rows that are missing trailing optional columns.","description_kind":"plain","optional":true},"allow_quoted_newlines":{"type":"bool","description":"Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.","description_kind":"plain","optional":true},"encoding":{"type":"string","description":"The character encoding of the data. The supported values are UTF-8 or ISO-8859-1.","description_kind":"plain","optional":true},"field_delimiter":{"type":"string","description":"The separator for fields in a CSV file.","description_kind":"plain","optional":true},"quote":{"type":"string","description":"The value that is used to quote data sections in a CSV file. If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allow_quoted_newlines property to true. The API-side default is \", specified in Terraform escaped as \\\". Due to limitations with Terraform default values, this value is required to be explicitly set.","description_kind":"plain","required":true},"skip_leading_rows":{"type":"number","description":"The number of rows at the top of a CSV file that BigQuery will skip when reading the data.","description_kind":"plain","optional":true}},"description":"Additional properties to set if source_format is set to \"CSV\".","description_kind":"plain"},"max_items":1},"google_sheets_options":{"nesting_mode":"list","block":{"attributes":{"range":{"type":"string","description":"Range of a sheet to query from. Only used when non-empty. At least one of range or skip_leading_rows must be set. Typical format: \"sheet_name!top_left_cell_id:bottom_right_cell_id\" For example: \"sheet1!A1:B20\"","description_kind":"plain","optional":true},"skip_leading_rows":{"type":"number","description":"The number of rows at the top of the sheet that BigQuery will skip when reading the data. At least one of range or skip_leading_rows must be set.","description_kind":"plain","optional":true}},"description":"Additional options if source_format is set to \"GOOGLE_SHEETS\".","description_kind":"plain"},"max_items":1},"hive_partitioning_options":{"nesting_mode":"list","block":{"attributes":{"mode":{"type":"string","description":"When set, what mode of hive partitioning to use when reading data.","description_kind":"plain","optional":true},"require_partition_filter":{"type":"bool","description":"If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified.","description_kind":"plain","optional":true},"source_uri_prefix":{"type":"string","description":"When hive partition detection is requested, a common for all source uris must be required. The prefix must end immediately before the partition key encoding begins.","description_kind":"plain","optional":true}},"description":"When set, configures hive partitioning support. Not all storage formats support hive partitioning -- requesting hive partitioning on an unsupported format will lead to an error, as will providing an invalid specification.","description_kind":"plain"},"max_items":1}},"description":"Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table.","description_kind":"plain"},"max_items":1},"materialized_view":{"nesting_mode":"list","block":{"attributes":{"enable_refresh":{"type":"bool","description":"Specifies if BigQuery should automatically refresh materialized view when the base table is updated. The default is true.","description_kind":"plain","optional":true},"query":{"type":"string","description":"A query whose result is persisted.","description_kind":"plain","required":true},"refresh_interval_ms":{"type":"number","description":"Specifies maximum frequency at which this materialized view will be refreshed. The default is 1800000","description_kind":"plain","optional":true}},"description":"If specified, configures this table as a materialized view.","description_kind":"plain"},"max_items":1},"range_partitioning":{"nesting_mode":"list","block":{"attributes":{"field":{"type":"string","description":"The field used to determine how to create a range-based partition.","description_kind":"plain","required":true}},"block_types":{"range":{"nesting_mode":"list","block":{"attributes":{"end":{"type":"number","description":"End of the range partitioning, exclusive.","description_kind":"plain","required":true},"interval":{"type":"number","description":"The width of each range within the partition.","description_kind":"plain","required":true},"start":{"type":"number","description":"Start of the range partitioning, inclusive.","description_kind":"plain","required":true}},"description":"Information required to partition based on ranges. Structure is documented below.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"If specified, configures range-based partitioning for this table.","description_kind":"plain"},"max_items":1},"time_partitioning":{"nesting_mode":"list","block":{"attributes":{"expiration_ms":{"type":"number","description":"Number of milliseconds for which to keep the storage for a partition.","description_kind":"plain","optional":true,"computed":true},"field":{"type":"string","description":"The field used to determine how to create a time-based partition. If time-based partitioning is enabled without this value, the table is partitioned based on the load time.","description_kind":"plain","optional":true},"require_partition_filter":{"type":"bool","description":"If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified.","description_kind":"plain","optional":true},"type":{"type":"string","description":"The supported types are DAY, HOUR, MONTH, and YEAR, which will generate one partition per day, hour, month, and year, respectively.","description_kind":"plain","required":true}},"description":"If specified, configures time-based partitioning for this table.","description_kind":"plain"},"max_items":1},"view":{"nesting_mode":"list","block":{"attributes":{"query":{"type":"string","description":"A query that BigQuery executes when the view is referenced.","description_kind":"plain","required":true},"use_legacy_sql":{"type":"bool","description":"Specifies whether to use BigQuery's legacy SQL for this view. The default value is true. If set to false, the view will use BigQuery's standard SQL","description_kind":"plain","optional":true}},"description":"If specified, configures this table as a view.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_bigquery_table_iam_binding":{"version":0,"block":{"attributes":{"dataset_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"table_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_bigquery_table_iam_member":{"version":0,"block":{"attributes":{"dataset_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"table_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_bigquery_table_iam_policy":{"version":0,"block":{"attributes":{"dataset_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"table_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_bigtable_app_profile":{"version":0,"block":{"attributes":{"app_profile_id":{"type":"string","description":"The unique name of the app profile in the form '[_a-zA-Z0-9][-_.a-zA-Z0-9]*'.","description_kind":"plain","required":true},"description":{"type":"string","description":"Long form description of the use case for this app profile.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ignore_warnings":{"type":"bool","description":"If true, ignore safety checks when deleting/updating the app profile.","description_kind":"plain","optional":true},"instance":{"type":"string","description":"The name of the instance to create the app profile within.","description_kind":"plain","optional":true},"multi_cluster_routing_cluster_ids":{"type":["list","string"],"description":"The set of clusters to route to. The order is ignored; clusters will be tried in order of distance. If left empty, all clusters are eligible.","description_kind":"plain","optional":true},"multi_cluster_routing_use_any":{"type":"bool","description":"If true, read/write requests are routed to the nearest cluster in the instance, and will fail over to the nearest cluster that is available\nin the event of transient errors or delays. Clusters in a region are considered equidistant. Choosing this option sacrifices read-your-writes\nconsistency to improve availability.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The unique name of the requested app profile. Values are of the form 'projects/\u003cproject\u003e/instances/\u003cinstance\u003e/appProfiles/\u003cappProfileId\u003e'.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"single_cluster_routing":{"nesting_mode":"list","block":{"attributes":{"allow_transactional_writes":{"type":"bool","description":"If true, CheckAndMutateRow and ReadModifyWriteRow requests are allowed by this app profile.\nIt is unsafe to send these requests to the same table/row/column in multiple clusters.","description_kind":"plain","optional":true},"cluster_id":{"type":"string","description":"The cluster to which read/write requests should be routed.","description_kind":"plain","required":true}},"description":"Use a single-cluster routing policy.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_bigtable_gc_policy":{"version":0,"block":{"attributes":{"column_family":{"type":"string","description":"The name of the column family.","description_kind":"plain","required":true},"gc_rules":{"type":"string","description":"Serialized JSON string for garbage collection policy. Conflicts with \"mode\", \"max_age\" and \"max_version\".","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_name":{"type":"string","description":"The name of the Bigtable instance.","description_kind":"plain","required":true},"mode":{"type":"string","description":"If multiple policies are set, you should choose between UNION OR INTERSECTION.","description_kind":"plain","optional":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"table":{"type":"string","description":"The name of the table.","description_kind":"plain","required":true}},"block_types":{"max_age":{"nesting_mode":"list","block":{"attributes":{"days":{"type":"number","description":"Number of days before applying GC policy.","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"duration":{"type":"string","description":"Duration before applying GC policy","description_kind":"plain","optional":true,"computed":true}},"description":"GC policy that applies to all cells older than the given age.","description_kind":"plain"},"max_items":1},"max_version":{"nesting_mode":"list","block":{"attributes":{"number":{"type":"number","description":"Number of version before applying the GC policy.","description_kind":"plain","required":true}},"description":"GC policy that applies to all versions of a cell except for the most recent.","description_kind":"plain"}}},"description_kind":"plain"}},"google_bigtable_instance":{"version":1,"block":{"attributes":{"deletion_protection":{"type":"bool","description":"Whether or not to allow Terraform to destroy the instance. Unless this field is set to false in Terraform state, a terraform destroy or terraform apply that would delete the instance will fail.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The human-readable display name of the Bigtable instance. Defaults to the instance name.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_type":{"type":"string","description":"The instance type to create. One of \"DEVELOPMENT\" or \"PRODUCTION\". Defaults to \"PRODUCTION\".","description_kind":"plain","deprecated":true,"optional":true},"labels":{"type":["map","string"],"description":"A mapping of labels to assign to the resource.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name (also called Instance Id in the Cloud Console) of the Cloud Bigtable instance.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"cluster":{"nesting_mode":"list","block":{"attributes":{"cluster_id":{"type":"string","description":"The ID of the Cloud Bigtable cluster.","description_kind":"plain","required":true},"kms_key_name":{"type":"string","description":"Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the cloudkms.cryptoKeyEncrypterDecrypter role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster. 3) All clusters within an instance must use the same CMEK key. Values are of the form projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}","description_kind":"plain","optional":true,"computed":true},"num_nodes":{"type":"number","description":"The number of nodes in your Cloud Bigtable cluster. Required, with a minimum of 1 for a PRODUCTION instance. Must be left unset for a DEVELOPMENT instance.","description_kind":"plain","optional":true,"computed":true},"storage_type":{"type":"string","description":"The storage type to use. One of \"SSD\" or \"HDD\". Defaults to \"SSD\".","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone to create the Cloud Bigtable cluster in. Each cluster must have a different zone in the same region. Zones that support Bigtable instances are noted on the Cloud Bigtable locations page.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"autoscaling_config":{"nesting_mode":"list","block":{"attributes":{"cpu_target":{"type":"number","description":"The target CPU utilization for autoscaling. Value must be between 10 and 80.","description_kind":"plain","required":true},"max_nodes":{"type":"number","description":"The maximum number of nodes for autoscaling.","description_kind":"plain","required":true},"min_nodes":{"type":"number","description":"The minimum number of nodes for autoscaling.","description_kind":"plain","required":true}},"description":"A list of Autoscaling configurations. Only one element is used and allowed.","description_kind":"plain"},"max_items":1}},"description":"A block of cluster configuration options. This can be specified at least once.","description_kind":"plain"}}},"description_kind":"plain"}},"google_bigtable_instance_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_bigtable_instance_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_bigtable_instance_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_bigtable_table":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_name":{"type":"string","description":"The name of the Bigtable instance.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the table.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"split_keys":{"type":["list","string"],"description":"A list of predefined keys to split the table on. !\u003e Warning: Modifying the split_keys of an existing table will cause Terraform to delete/recreate the entire google_bigtable_table resource.","description_kind":"plain","optional":true}},"block_types":{"column_family":{"nesting_mode":"set","block":{"attributes":{"family":{"type":"string","description":"The name of the column family.","description_kind":"plain","required":true}},"description":"A group of columns within a table which share a common configuration. This can be specified multiple times.","description_kind":"plain"}}},"description_kind":"plain"}},"google_bigtable_table_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"table":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_bigtable_table_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"table":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_bigtable_table_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"table":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_billing_account_iam_binding":{"version":0,"block":{"attributes":{"billing_account_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_billing_account_iam_member":{"version":0,"block":{"attributes":{"billing_account_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_billing_account_iam_policy":{"version":0,"block":{"attributes":{"billing_account_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_billing_budget":{"version":1,"block":{"attributes":{"billing_account":{"type":"string","description":"ID of the billing account to set a budget on.","description_kind":"plain","required":true},"display_name":{"type":"string","description":"User data for display name in UI. Must be \u003c= 60 chars.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Resource name of the budget. The resource name\nimplies the scope of a budget. Values are of the form\nbillingAccounts/{billingAccountId}/budgets/{budgetId}.","description_kind":"plain","computed":true}},"block_types":{"all_updates_rule":{"nesting_mode":"list","block":{"attributes":{"disable_default_iam_recipients":{"type":"bool","description":"Boolean. When set to true, disables default notifications sent\nwhen a threshold is exceeded. Default recipients are\nthose with Billing Account Administrators and Billing\nAccount Users IAM roles for the target account.","description_kind":"plain","optional":true},"monitoring_notification_channels":{"type":["list","string"],"description":"The full resource name of a monitoring notification\nchannel in the form\nprojects/{project_id}/notificationChannels/{channel_id}.\nA maximum of 5 channels are allowed.","description_kind":"plain","optional":true},"pubsub_topic":{"type":"string","description":"The name of the Cloud Pub/Sub topic where budget related\nmessages will be published, in the form\nprojects/{project_id}/topics/{topic_id}. Updates are sent\nat regular intervals to the topic.","description_kind":"plain","optional":true},"schema_version":{"type":"string","description":"The schema version of the notification. Only \"1.0\" is\naccepted. It represents the JSON schema as defined in\nhttps://cloud.google.com/billing/docs/how-to/budgets#notification_format.","description_kind":"plain","optional":true}},"description":"Defines notifications that are sent on every update to the\nbilling account's spend, regardless of the thresholds defined\nusing threshold rules.","description_kind":"plain"},"max_items":1},"amount":{"nesting_mode":"list","block":{"attributes":{"last_period_amount":{"type":"bool","description":"Configures a budget amount that is automatically set to 100% of\nlast period's spend.\nBoolean. Set value to true to use. Do not set to false, instead\nuse the 'specified_amount' block.","description_kind":"plain","optional":true}},"block_types":{"specified_amount":{"nesting_mode":"list","block":{"attributes":{"currency_code":{"type":"string","description":"The 3-letter currency code defined in ISO 4217.","description_kind":"plain","optional":true,"computed":true},"nanos":{"type":"number","description":"Number of nano (10^-9) units of the amount.\nThe value must be between -999,999,999 and +999,999,999\ninclusive. If units is positive, nanos must be positive or\nzero. If units is zero, nanos can be positive, zero, or\nnegative. If units is negative, nanos must be negative or\nzero. For example $-1.75 is represented as units=-1 and\nnanos=-750,000,000.","description_kind":"plain","optional":true},"units":{"type":"string","description":"The whole units of the amount. For example if currencyCode\nis \"USD\", then 1 unit is one US dollar.","description_kind":"plain","optional":true}},"description":"A specified amount to use as the budget. currencyCode is\noptional. If specified, it must match the currency of the\nbilling account. The currencyCode is provided on output.","description_kind":"plain"},"max_items":1}},"description":"The budgeted amount for each usage period.","description_kind":"plain"},"min_items":1,"max_items":1},"budget_filter":{"nesting_mode":"list","block":{"attributes":{"credit_types":{"type":["list","string"],"description":"A set of subaccounts of the form billingAccounts/{account_id},\nspecifying that usage from only this set of subaccounts should\nbe included in the budget. If a subaccount is set to the name of\nthe parent account, usage from the parent account will be included.\nIf the field is omitted, the report will include usage from the parent\naccount and all subaccounts, if they exist.","description_kind":"plain","optional":true,"computed":true},"credit_types_treatment":{"type":"string","description":"Specifies how credits should be treated when determining spend\nfor threshold calculations. Default value: \"INCLUDE_ALL_CREDITS\" Possible values: [\"INCLUDE_ALL_CREDITS\", \"EXCLUDE_ALL_CREDITS\", \"INCLUDE_SPECIFIED_CREDITS\"]","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"A single label and value pair specifying that usage from only\nthis set of labeled resources should be included in the budget.","description_kind":"plain","optional":true,"computed":true},"projects":{"type":["set","string"],"description":"A set of projects of the form projects/{project_number},\nspecifying that usage from only this set of projects should be\nincluded in the budget. If omitted, the report will include\nall usage for the billing account, regardless of which project\nthe usage occurred on.","description_kind":"plain","optional":true},"services":{"type":["list","string"],"description":"A set of services of the form services/{service_id},\nspecifying that usage from only this set of services should be\nincluded in the budget. If omitted, the report will include\nusage for all the services. The service names are available\nthrough the Catalog API:\nhttps://cloud.google.com/billing/v1/how-tos/catalog-api.","description_kind":"plain","optional":true,"computed":true},"subaccounts":{"type":["list","string"],"description":"A set of subaccounts of the form billingAccounts/{account_id},\nspecifying that usage from only this set of subaccounts should\nbe included in the budget. If a subaccount is set to the name of\nthe parent account, usage from the parent account will be included.\nIf the field is omitted, the report will include usage from the parent\naccount and all subaccounts, if they exist.","description_kind":"plain","optional":true,"computed":true}},"description":"Filters that define which resources are used to compute the actual\nspend against the budget.","description_kind":"plain"},"max_items":1},"threshold_rules":{"nesting_mode":"list","block":{"attributes":{"spend_basis":{"type":"string","description":"The type of basis used to determine if spend has passed\nthe threshold. Default value: \"CURRENT_SPEND\" Possible values: [\"CURRENT_SPEND\", \"FORECASTED_SPEND\"]","description_kind":"plain","optional":true},"threshold_percent":{"type":"number","description":"Send an alert when this threshold is exceeded. This is a\n1.0-based percentage, so 0.5 = 50%. Must be \u003e= 0.","description_kind":"plain","required":true}},"description":"Rules that trigger alerts (notifications of thresholds being\ncrossed) when spend exceeds the specified percentages of the\nbudget.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_billing_subaccount":{"version":0,"block":{"attributes":{"billing_account_id":{"type":"string","description_kind":"plain","computed":true},"deletion_policy":{"type":"string","description_kind":"plain","optional":true},"display_name":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"master_billing_account":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","computed":true},"open":{"type":"bool","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_binary_authorization_attestor":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A descriptive comment. This field may be updated. The field may be\ndisplayed in chooser dialogs.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"attestation_authority_note":{"nesting_mode":"list","block":{"attributes":{"delegation_service_account_email":{"type":"string","description":"This field will contain the service account email address that\nthis Attestor will use as the principal when querying Container\nAnalysis. Attestor administrators must grant this service account\nthe IAM role needed to read attestations from the noteReference in\nContainer Analysis (containeranalysis.notes.occurrences.viewer).\nThis email address is fixed for the lifetime of the Attestor, but\ncallers should not make any other assumptions about the service\naccount email; future versions may use an email based on a\ndifferent naming pattern.","description_kind":"plain","computed":true},"note_reference":{"type":"string","description":"The resource name of a ATTESTATION_AUTHORITY Note, created by the\nuser. If the Note is in a different project from the Attestor, it\nshould be specified in the format 'projects/*/notes/*' (or the legacy\n'providers/*/notes/*'). This field may not be updated.\nAn attestation by this attestor is stored as a Container Analysis\nATTESTATION_AUTHORITY Occurrence that names a container image\nand that links to this Note.","description_kind":"plain","required":true}},"block_types":{"public_keys":{"nesting_mode":"list","block":{"attributes":{"ascii_armored_pgp_public_key":{"type":"string","description":"ASCII-armored representation of a PGP public key, as the\nentire output by the command\n'gpg --export --armor foo@example.com' (either LF or CRLF\nline endings). When using this field, id should be left\nblank. The BinAuthz API handlers will calculate the ID\nand fill it in automatically. BinAuthz computes this ID\nas the OpenPGP RFC4880 V4 fingerprint, represented as\nupper-case hex. If id is provided by the caller, it will\nbe overwritten by the API-calculated ID.","description_kind":"plain","optional":true},"comment":{"type":"string","description":"A descriptive comment. This field may be updated.","description_kind":"plain","optional":true},"id":{"type":"string","description":"The ID of this public key. Signatures verified by BinAuthz\nmust include the ID of the public key that can be used to\nverify them, and that ID must match the contents of this\nfield exactly. Additional restrictions on this field can\nbe imposed based on which public key type is encapsulated.\nSee the documentation on publicKey cases below for details.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"pkix_public_key":{"nesting_mode":"list","block":{"attributes":{"public_key_pem":{"type":"string","description":"A PEM-encoded public key, as described in\n'https://tools.ietf.org/html/rfc7468#section-13'","description_kind":"plain","optional":true},"signature_algorithm":{"type":"string","description":"The signature algorithm used to verify a message against\na signature using this key. These signature algorithm must\nmatch the structure and any object identifiers encoded in\npublicKeyPem (i.e. this algorithm must match that of the\npublic key).","description_kind":"plain","optional":true}},"description":"A raw PKIX SubjectPublicKeyInfo format public key.\n\nNOTE: id may be explicitly provided by the caller when using this\ntype of public key, but it MUST be a valid RFC3986 URI. If id is left\nblank, a default one will be computed based on the digest of the DER\nencoding of the public key.","description_kind":"plain"},"max_items":1}},"description":"Public keys that verify attestations signed by this attestor. This\nfield may be updated.\nIf this field is non-empty, one of the specified public keys must\nverify that an attestation was signed by this attestor for the\nimage specified in the admission request.\nIf this field is empty, this attestor always returns that no valid\nattestations exist.","description_kind":"plain"}}},"description":"A Container Analysis ATTESTATION_AUTHORITY Note, created by the user.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_binary_authorization_attestor_iam_binding":{"version":0,"block":{"attributes":{"attestor":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_binary_authorization_attestor_iam_member":{"version":0,"block":{"attributes":{"attestor":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_binary_authorization_attestor_iam_policy":{"version":0,"block":{"attributes":{"attestor":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_binary_authorization_policy":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A descriptive comment.","description_kind":"plain","optional":true},"global_policy_evaluation_mode":{"type":"string","description":"Controls the evaluation of a Google-maintained global admission policy\nfor common system-level images. Images not covered by the global\npolicy will be subject to the project admission policy. Possible values: [\"ENABLE\", \"DISABLE\"]","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"admission_whitelist_patterns":{"nesting_mode":"list","block":{"attributes":{"name_pattern":{"type":"string","description":"An image name pattern to whitelist, in the form\n'registry/path/to/image'. This supports a trailing * as a\nwildcard, but this is allowed only in text after the registry/\npart.","description_kind":"plain","required":true}},"description":"A whitelist of image patterns to exclude from admission rules. If an\nimage's name matches a whitelist pattern, the image's admission\nrequests will always be permitted regardless of your admission rules.","description_kind":"plain"}},"cluster_admission_rules":{"nesting_mode":"set","block":{"attributes":{"cluster":{"type":"string","description_kind":"plain","required":true},"enforcement_mode":{"type":"string","description":"The action when a pod creation is denied by the admission rule. Possible values: [\"ENFORCED_BLOCK_AND_AUDIT_LOG\", \"DRYRUN_AUDIT_LOG_ONLY\"]","description_kind":"plain","required":true},"evaluation_mode":{"type":"string","description":"How this admission rule will be evaluated. Possible values: [\"ALWAYS_ALLOW\", \"REQUIRE_ATTESTATION\", \"ALWAYS_DENY\"]","description_kind":"plain","required":true},"require_attestations_by":{"type":["set","string"],"description":"The resource names of the attestors that must attest to a\ncontainer image. If the attestor is in a different project from the\npolicy, it should be specified in the format 'projects/*/attestors/*'.\nEach attestor must exist before a policy can reference it. To add an\nattestor to a policy the principal issuing the policy change\nrequest must be able to read the attestor resource.\n\nNote: this field must be non-empty when the evaluation_mode field\nspecifies REQUIRE_ATTESTATION, otherwise it must be empty.","description_kind":"plain","optional":true}},"description":"Per-cluster admission rules. An admission rule specifies either that\nall container images used in a pod creation request must be attested\nto by one or more attestors, that all pod creations will be allowed,\nor that all pod creations will be denied. There can be at most one\nadmission rule per cluster spec.\n\n\nIdentifier format: '{{location}}.{{clusterId}}'.\nA location is either a compute zone (e.g. 'us-central1-a') or a region\n(e.g. 'us-central1').","description_kind":"plain"}},"default_admission_rule":{"nesting_mode":"list","block":{"attributes":{"enforcement_mode":{"type":"string","description":"The action when a pod creation is denied by the admission rule. Possible values: [\"ENFORCED_BLOCK_AND_AUDIT_LOG\", \"DRYRUN_AUDIT_LOG_ONLY\"]","description_kind":"plain","required":true},"evaluation_mode":{"type":"string","description":"How this admission rule will be evaluated. Possible values: [\"ALWAYS_ALLOW\", \"REQUIRE_ATTESTATION\", \"ALWAYS_DENY\"]","description_kind":"plain","required":true},"require_attestations_by":{"type":["set","string"],"description":"The resource names of the attestors that must attest to a\ncontainer image. If the attestor is in a different project from the\npolicy, it should be specified in the format 'projects/*/attestors/*'.\nEach attestor must exist before a policy can reference it. To add an\nattestor to a policy the principal issuing the policy change\nrequest must be able to read the attestor resource.\n\nNote: this field must be non-empty when the evaluation_mode field\nspecifies REQUIRE_ATTESTATION, otherwise it must be empty.","description_kind":"plain","optional":true}},"description":"Default admission rule for a cluster without a per-cluster admission\nrule.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloud_asset_folder_feed":{"version":0,"block":{"attributes":{"asset_names":{"type":["list","string"],"description":"A list of the full names of the assets to receive updates. You must specify either or both of \nassetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are\nexported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1.\nSee https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info.","description_kind":"plain","optional":true},"asset_types":{"type":["list","string"],"description":"A list of types of the assets to receive updates. You must specify either or both of assetNames\nand assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to\nthe feed. For example: \"compute.googleapis.com/Disk\"\nSee https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all\nsupported asset types.","description_kind":"plain","optional":true},"billing_project":{"type":"string","description":"The project whose identity will be used when sending messages to the\ndestination pubsub topic. It also specifies the project for API \nenablement check, quota, and billing.","description_kind":"plain","required":true},"content_type":{"type":"string","description":"Asset content type. If not specified, no content but the asset name and type will be returned. Possible values: [\"CONTENT_TYPE_UNSPECIFIED\", \"RESOURCE\", \"IAM_POLICY\", \"ORG_POLICY\", \"ACCESS_POLICY\"]","description_kind":"plain","optional":true},"feed_id":{"type":"string","description":"This is the client-assigned asset feed identifier and it needs to be unique under a specific parent.","description_kind":"plain","required":true},"folder":{"type":"string","description":"The folder this feed should be created in.","description_kind":"plain","required":true},"folder_id":{"type":"string","description":"The ID of the folder where this feed has been created. Both [FOLDER_NUMBER]\nand folders/[FOLDER_NUMBER] are accepted.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The format will be folders/{folder_number}/feeds/{client-assigned_feed_identifier}.","description_kind":"plain","computed":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Description of the expression. This is a longer text which describes the expression,\ne.g. when hovered over it in a UI.","description_kind":"plain","optional":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.","description_kind":"plain","required":true},"location":{"type":"string","description":"String indicating the location of the expression for error reporting, e.g. a file \nname and a position in the file.","description_kind":"plain","optional":true},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its purpose.\nThis can be used e.g. in UIs which allow to enter the expression.","description_kind":"plain","optional":true}},"description":"A condition which determines whether an asset update should be published. If specified, an asset\nwill be returned only when the expression evaluates to true. When set, expression field\nmust be a valid CEL expression on a TemporalAsset with name temporal_asset. Example: a Feed with\nexpression \"temporal_asset.deleted == true\" will only publish Asset deletions. Other fields of\ncondition are optional.","description_kind":"plain"},"max_items":1},"feed_output_config":{"nesting_mode":"list","block":{"block_types":{"pubsub_destination":{"nesting_mode":"list","block":{"attributes":{"topic":{"type":"string","description":"Destination on Cloud Pubsub topic.","description_kind":"plain","required":true}},"description":"Destination on Cloud Pubsub.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Output configuration for asset feed destination.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloud_asset_organization_feed":{"version":0,"block":{"attributes":{"asset_names":{"type":["list","string"],"description":"A list of the full names of the assets to receive updates. You must specify either or both of \nassetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are\nexported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1.\nSee https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info.","description_kind":"plain","optional":true},"asset_types":{"type":["list","string"],"description":"A list of types of the assets to receive updates. You must specify either or both of assetNames\nand assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to\nthe feed. For example: \"compute.googleapis.com/Disk\"\nSee https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all\nsupported asset types.","description_kind":"plain","optional":true},"billing_project":{"type":"string","description":"The project whose identity will be used when sending messages to the\ndestination pubsub topic. It also specifies the project for API \nenablement check, quota, and billing.","description_kind":"plain","required":true},"content_type":{"type":"string","description":"Asset content type. If not specified, no content but the asset name and type will be returned. Possible values: [\"CONTENT_TYPE_UNSPECIFIED\", \"RESOURCE\", \"IAM_POLICY\", \"ORG_POLICY\", \"ACCESS_POLICY\"]","description_kind":"plain","optional":true},"feed_id":{"type":"string","description":"This is the client-assigned asset feed identifier and it needs to be unique under a specific parent.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The format will be organizations/{organization_number}/feeds/{client-assigned_feed_identifier}.","description_kind":"plain","computed":true},"org_id":{"type":"string","description":"The organization this feed should be created in.","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Description of the expression. This is a longer text which describes the expression,\ne.g. when hovered over it in a UI.","description_kind":"plain","optional":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.","description_kind":"plain","required":true},"location":{"type":"string","description":"String indicating the location of the expression for error reporting, e.g. a file \nname and a position in the file.","description_kind":"plain","optional":true},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its purpose.\nThis can be used e.g. in UIs which allow to enter the expression.","description_kind":"plain","optional":true}},"description":"A condition which determines whether an asset update should be published. If specified, an asset\nwill be returned only when the expression evaluates to true. When set, expression field\nmust be a valid CEL expression on a TemporalAsset with name temporal_asset. Example: a Feed with\nexpression \"temporal_asset.deleted == true\" will only publish Asset deletions. Other fields of\ncondition are optional.","description_kind":"plain"},"max_items":1},"feed_output_config":{"nesting_mode":"list","block":{"block_types":{"pubsub_destination":{"nesting_mode":"list","block":{"attributes":{"topic":{"type":"string","description":"Destination on Cloud Pubsub topic.","description_kind":"plain","required":true}},"description":"Destination on Cloud Pubsub.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Output configuration for asset feed destination.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloud_asset_project_feed":{"version":0,"block":{"attributes":{"asset_names":{"type":["list","string"],"description":"A list of the full names of the assets to receive updates. You must specify either or both of \nassetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are\nexported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1.\nSee https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info.","description_kind":"plain","optional":true},"asset_types":{"type":["list","string"],"description":"A list of types of the assets to receive updates. You must specify either or both of assetNames\nand assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to\nthe feed. For example: \"compute.googleapis.com/Disk\"\nSee https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all\nsupported asset types.","description_kind":"plain","optional":true},"billing_project":{"type":"string","description":"The project whose identity will be used when sending messages to the\ndestination pubsub topic. It also specifies the project for API \nenablement check, quota, and billing. If not specified, the resource's\nproject will be used.","description_kind":"plain","optional":true},"content_type":{"type":"string","description":"Asset content type. If not specified, no content but the asset name and type will be returned. Possible values: [\"CONTENT_TYPE_UNSPECIFIED\", \"RESOURCE\", \"IAM_POLICY\", \"ORG_POLICY\", \"ACCESS_POLICY\"]","description_kind":"plain","optional":true},"feed_id":{"type":"string","description":"This is the client-assigned asset feed identifier and it needs to be unique under a specific parent.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The format will be projects/{projectNumber}/feeds/{client-assigned_feed_identifier}.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Description of the expression. This is a longer text which describes the expression,\ne.g. when hovered over it in a UI.","description_kind":"plain","optional":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.","description_kind":"plain","required":true},"location":{"type":"string","description":"String indicating the location of the expression for error reporting, e.g. a file \nname and a position in the file.","description_kind":"plain","optional":true},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its purpose.\nThis can be used e.g. in UIs which allow to enter the expression.","description_kind":"plain","optional":true}},"description":"A condition which determines whether an asset update should be published. If specified, an asset\nwill be returned only when the expression evaluates to true. When set, expression field\nmust be a valid CEL expression on a TemporalAsset with name temporal_asset. Example: a Feed with\nexpression \"temporal_asset.deleted == true\" will only publish Asset deletions. Other fields of\ncondition are optional.","description_kind":"plain"},"max_items":1},"feed_output_config":{"nesting_mode":"list","block":{"block_types":{"pubsub_destination":{"nesting_mode":"list","block":{"attributes":{"topic":{"type":"string","description":"Destination on Cloud Pubsub topic.","description_kind":"plain","required":true}},"description":"Destination on Cloud Pubsub.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Output configuration for asset feed destination.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloud_identity_group":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"The time when the Group was created.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An extended description to help users determine the purpose of a Group.\nMust not be longer than 4,096 characters.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The display name of the Group.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"initial_group_config":{"type":"string","description":"The initial configuration options for creating a Group.\n\nSee the\n[API reference](https://cloud.google.com/identity/docs/reference/rest/v1beta1/groups/create#initialgroupconfig)\nfor possible values. Default value: \"EMPTY\" Possible values: [\"INITIAL_GROUP_CONFIG_UNSPECIFIED\", \"WITH_INITIAL_OWNER\", \"EMPTY\"]","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"The labels that apply to the Group.\n\nMust not contain more than one entry. Must contain the entry\n'cloudidentity.googleapis.com/groups.discussion_forum': '' if the Group is a Google Group or\n'system/groups/external': '' if the Group is an external-identity-mapped group.","description_kind":"plain","required":true},"name":{"type":"string","description":"Resource name of the Group in the format: groups/{group_id}, where group_id\nis the unique ID assigned to the Group.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The resource name of the entity under which this Group resides in the\nCloud Identity resource hierarchy.\n\nMust be of the form identitysources/{identity_source_id} for external-identity-mapped\ngroups or customers/{customer_id} for Google Groups.","description_kind":"plain","required":true},"update_time":{"type":"string","description":"The time when the Group was last updated.","description_kind":"plain","computed":true}},"block_types":{"group_key":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description":"The ID of the entity.\n\nFor Google-managed entities, the id must be the email address of an existing\ngroup or user.\n\nFor external-identity-mapped entities, the id must be a string conforming\nto the Identity Source's requirements.\n\nMust be unique within a namespace.","description_kind":"plain","required":true},"namespace":{"type":"string","description":"The namespace in which the entity exists.\n\nIf not specified, the EntityKey represents a Google-managed entity\nsuch as a Google user or a Google Group.\n\nIf specified, the EntityKey represents an external-identity-mapped group.\nThe namespace must correspond to an identity source created in Admin Console\nand must be in the form of 'identitysources/{identity_source_id}'.","description_kind":"plain","optional":true}},"description":"EntityKey of the Group.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloud_identity_group_membership":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"The time when the Membership was created.","description_kind":"plain","computed":true},"group":{"type":"string","description":"The name of the Group to create this membership in.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of the Membership, of the form groups/{group_id}/memberships/{membership_id}.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of the membership.","description_kind":"plain","computed":true},"update_time":{"type":"string","description":"The time when the Membership was last updated.","description_kind":"plain","computed":true}},"block_types":{"preferred_member_key":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description":"The ID of the entity.\n\nFor Google-managed entities, the id must be the email address of an existing\ngroup or user.\n\nFor external-identity-mapped entities, the id must be a string conforming\nto the Identity Source's requirements.\n\nMust be unique within a namespace.","description_kind":"plain","required":true},"namespace":{"type":"string","description":"The namespace in which the entity exists.\n\nIf not specified, the EntityKey represents a Google-managed entity\nsuch as a Google user or a Google Group.\n\nIf specified, the EntityKey represents an external-identity-mapped group.\nThe namespace must correspond to an identity source created in Admin Console\nand must be in the form of 'identitysources/{identity_source_id}'.","description_kind":"plain","optional":true}},"description":"EntityKey of the member.","description_kind":"plain"},"max_items":1},"roles":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description":"The name of the MembershipRole. Must be one of OWNER, MANAGER, MEMBER. Possible values: [\"OWNER\", \"MANAGER\", \"MEMBER\"]","description_kind":"plain","required":true}},"description":"The MembershipRoles that apply to the Membership.\nMust not contain duplicate MembershipRoles with the same name.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloud_run_domain_mapping":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location of the cloud run instance. eg us-central1","description_kind":"plain","required":true},"name":{"type":"string","description":"Name should be a [verified](https://support.google.com/webmasters/answer/9008080) domain","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":["list",["object",{"conditions":["list",["object",{"message":"string","reason":"string","status":"string","type":"string"}]],"mapped_route_name":"string","observed_generation":"number","resource_records":["list",["object",{"name":"string","rrdata":"string","type":"string"}]]}]],"description":"The current status of the DomainMapping.","description_kind":"plain","computed":true}},"block_types":{"metadata":{"nesting_mode":"list","block":{"attributes":{"annotations":{"type":["map","string"],"description":"Annotations is a key value map stored with a resource that\nmay be set by external tools to store and retrieve arbitrary metadata. More\ninfo: http://kubernetes.io/docs/user-guide/annotations\n\n**Note**: The Cloud Run API may add additional annotations that were not provided in your config.\nIf terraform plan shows a diff where a server-side annotation is added, you can add it to your config\nor apply the lifecycle.ignore_changes rule to the metadata.0.annotations field.","description_kind":"plain","optional":true,"computed":true},"generation":{"type":"number","description":"A sequence number representing a specific generation of the desired state.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Map of string keys and values that can be used to organize and categorize\n(scope and select) objects. May match selectors of replication controllers\nand routes.\nMore info: http://kubernetes.io/docs/user-guide/labels","description_kind":"plain","optional":true,"computed":true},"namespace":{"type":"string","description":"In Cloud Run the namespace must be equal to either the\nproject ID or project number.","description_kind":"plain","required":true},"resource_version":{"type":"string","description":"An opaque value that represents the internal version of this object that\ncan be used by clients to determine when objects have changed. May be used\nfor optimistic concurrency, change detection, and the watch operation on a\nresource or set of resources. They may only be valid for a\nparticular resource or set of resources.\n\nMore info:\nhttps://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"SelfLink is a URL representing this object.","description_kind":"plain","computed":true},"uid":{"type":"string","description":"UID is a unique id generated by the server on successful creation of a resource and is not\nallowed to change on PUT operations.\n\nMore info: http://kubernetes.io/docs/user-guide/identifiers#uids","description_kind":"plain","computed":true}},"description":"Metadata associated with this DomainMapping.","description_kind":"plain"},"min_items":1,"max_items":1},"spec":{"nesting_mode":"list","block":{"attributes":{"certificate_mode":{"type":"string","description":"The mode of the certificate. Default value: \"AUTOMATIC\" Possible values: [\"NONE\", \"AUTOMATIC\"]","description_kind":"plain","optional":true},"force_override":{"type":"bool","description":"If set, the mapping will override any mapping set before this spec was set.\nIt is recommended that the user leaves this empty to receive an error\nwarning about a potential conflict and only set it once the respective UI\nhas given such a warning.","description_kind":"plain","optional":true},"route_name":{"type":"string","description":"The name of the Cloud Run Service that this DomainMapping applies to.\nThe route must exist.","description_kind":"plain","required":true}},"description":"The spec for this DomainMapping.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloud_run_service":{"version":1,"block":{"attributes":{"autogenerate_revision_name":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location of the cloud run instance. eg us-central1","description_kind":"plain","required":true},"name":{"type":"string","description":"Name must be unique within a namespace, within a Cloud Run region.\nIs required when creating resources. Name is primarily intended\nfor creation idempotence and configuration definition. Cannot be updated.\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":["list",["object",{"conditions":["list",["object",{"message":"string","reason":"string","status":"string","type":"string"}]],"latest_created_revision_name":"string","latest_ready_revision_name":"string","observed_generation":"number","url":"string"}]],"description":"The current status of the Service.","description_kind":"plain","computed":true}},"block_types":{"metadata":{"nesting_mode":"list","block":{"attributes":{"annotations":{"type":["map","string"],"description":"Annotations is a key value map stored with a resource that\nmay be set by external tools to store and retrieve arbitrary metadata. More\ninfo: http://kubernetes.io/docs/user-guide/annotations\n\n**Note**: The Cloud Run API may add additional annotations that were not provided in your config.\nIf terraform plan shows a diff where a server-side annotation is added, you can add it to your config\nor apply the lifecycle.ignore_changes rule to the metadata.0.annotations field.\n\nCloud Run (fully managed) uses the following annotation keys to configure features on a Service:\n\n- 'run.googleapis.com/ingress' sets the [ingress settings](https://cloud.google.com/sdk/gcloud/reference/run/deploy#--ingress)\n for the Service. For example, '\"run.googleapis.com/ingress\" = \"all\"'.","description_kind":"plain","optional":true,"computed":true},"generation":{"type":"number","description":"A sequence number representing a specific generation of the desired state.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Map of string keys and values that can be used to organize and categorize\n(scope and select) objects. May match selectors of replication controllers\nand routes.\nMore info: http://kubernetes.io/docs/user-guide/labels","description_kind":"plain","optional":true,"computed":true},"namespace":{"type":"string","description":"In Cloud Run the namespace must be equal to either the\nproject ID or project number.","description_kind":"plain","optional":true,"computed":true},"resource_version":{"type":"string","description":"An opaque value that represents the internal version of this object that\ncan be used by clients to determine when objects have changed. May be used\nfor optimistic concurrency, change detection, and the watch operation on a\nresource or set of resources. They may only be valid for a\nparticular resource or set of resources.\n\nMore info:\nhttps://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"SelfLink is a URL representing this object.","description_kind":"plain","computed":true},"uid":{"type":"string","description":"UID is a unique id generated by the server on successful creation of a resource and is not\nallowed to change on PUT operations.\n\nMore info: http://kubernetes.io/docs/user-guide/identifiers#uids","description_kind":"plain","computed":true}},"description":"Metadata associated with this Service, including name, namespace, labels,\nand annotations.","description_kind":"plain"},"max_items":1},"template":{"nesting_mode":"list","block":{"block_types":{"metadata":{"nesting_mode":"list","block":{"attributes":{"annotations":{"type":["map","string"],"description":"Annotations is a key value map stored with a resource that\nmay be set by external tools to store and retrieve arbitrary metadata. More\ninfo: http://kubernetes.io/docs/user-guide/annotations\n\n**Note**: The Cloud Run API may add additional annotations that were not provided in your config.\nIf terraform plan shows a diff where a server-side annotation is added, you can add it to your config\nor apply the lifecycle.ignore_changes rule to the metadata.0.annotations field.","description_kind":"plain","optional":true,"computed":true},"generation":{"type":"number","description":"A sequence number representing a specific generation of the desired state.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Map of string keys and values that can be used to organize and categorize\n(scope and select) objects. May match selectors of replication controllers\nand routes.\nMore info: http://kubernetes.io/docs/user-guide/labels","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name must be unique within a namespace, within a Cloud Run region.\nIs required when creating resources. Name is primarily intended\nfor creation idempotence and configuration definition. Cannot be updated.\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names","description_kind":"plain","optional":true,"computed":true},"namespace":{"type":"string","description":"In Cloud Run the namespace must be equal to either the\nproject ID or project number. It will default to the resource's project.","description_kind":"plain","optional":true,"computed":true},"resource_version":{"type":"string","description":"An opaque value that represents the internal version of this object that\ncan be used by clients to determine when objects have changed. May be used\nfor optimistic concurrency, change detection, and the watch operation on a\nresource or set of resources. They may only be valid for a\nparticular resource or set of resources.\n\nMore info:\nhttps://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"SelfLink is a URL representing this object.","description_kind":"plain","computed":true},"uid":{"type":"string","description":"UID is a unique id generated by the server on successful creation of a resource and is not\nallowed to change on PUT operations.\n\nMore info: http://kubernetes.io/docs/user-guide/identifiers#uids","description_kind":"plain","computed":true}},"description":"Optional metadata for this Revision, including labels and annotations.\nName will be generated by the Configuration. To set minimum instances\nfor this revision, use the \"autoscaling.knative.dev/minScale\" annotation\nkey. To set maximum instances for this revision, use the\n\"autoscaling.knative.dev/maxScale\" annotation key. To set Cloud SQL\nconnections for the revision, use the \"run.googleapis.com/cloudsql-instances\"\nannotation key.","description_kind":"plain"},"max_items":1},"spec":{"nesting_mode":"list","block":{"attributes":{"container_concurrency":{"type":"number","description":"ContainerConcurrency specifies the maximum allowed in-flight (concurrent)\nrequests per container of the Revision. Values are:\n- '0' thread-safe, the system should manage the max concurrency. This is\n the default value.\n- '1' not-thread-safe. Single concurrency\n- '2-N' thread-safe, max concurrency of N","description_kind":"plain","optional":true,"computed":true},"service_account_name":{"type":"string","description":"Email address of the IAM service account associated with the revision of the\nservice. The service account represents the identity of the running revision,\nand determines what permissions the revision has. If not provided, the revision\nwill use the project's default service account.","description_kind":"plain","optional":true,"computed":true},"serving_state":{"type":"string","description":"ServingState holds a value describing the state the resources\nare in for this Revision.\nIt is expected\nthat the system will manipulate this based on routability and load.","description_kind":"plain","deprecated":true,"computed":true},"timeout_seconds":{"type":"number","description":"TimeoutSeconds holds the max duration the instance is allowed for responding to a request.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"containers":{"nesting_mode":"list","block":{"attributes":{"args":{"type":["list","string"],"description":"Arguments to the entrypoint.\nThe docker image's CMD is used if this is not provided.\nVariable references $(VAR_NAME) are expanded using the container's\nenvironment. If a variable cannot be resolved, the reference in the input\nstring will be unchanged. The $(VAR_NAME) syntax can be escaped with a\ndouble $$, ie: $$(VAR_NAME). Escaped references will never be expanded,\nregardless of whether the variable exists or not.\nMore info:\nhttps://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell","description_kind":"plain","optional":true},"command":{"type":["list","string"],"description":"Entrypoint array. Not executed within a shell.\nThe docker image's ENTRYPOINT is used if this is not provided.\nVariable references $(VAR_NAME) are expanded using the container's\nenvironment. If a variable cannot be resolved, the reference in the input\nstring will be unchanged. The $(VAR_NAME) syntax can be escaped with a\ndouble $$, ie: $$(VAR_NAME). Escaped references will never be expanded,\nregardless of whether the variable exists or not.\nMore info:\nhttps://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell","description_kind":"plain","optional":true},"image":{"type":"string","description":"Docker image name. This is most often a reference to a container located\nin the container registry, such as gcr.io/cloudrun/hello\nMore info: https://kubernetes.io/docs/concepts/containers/images","description_kind":"plain","required":true},"working_dir":{"type":"string","description":"Container's working directory.\nIf not specified, the container runtime's default will be used, which\nmight be configured in the container image.","description_kind":"plain","deprecated":true,"optional":true}},"block_types":{"env":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description":"Name of the environment variable.","description_kind":"plain","optional":true},"value":{"type":"string","description":"Variable references $(VAR_NAME) are expanded\nusing the previous defined environment variables in the container and\nany route environment variables. If a variable cannot be resolved,\nthe reference in the input string will be unchanged. The $(VAR_NAME)\nsyntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped\nreferences will never be expanded, regardless of whether the variable\nexists or not.\nDefaults to \"\".","description_kind":"plain","optional":true}},"block_types":{"value_from":{"nesting_mode":"list","block":{"block_types":{"secret_key_ref":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description":"A Cloud Secret Manager secret version. Must be 'latest' for the latest\nversion or an integer for a specific version.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the secret in Cloud Secret Manager. By default, the secret\nis assumed to be in the same project.\nIf the secret is in another project, you must define an alias.\nYou set the \u003calias\u003e in this field, and create an annotation with the\nfollowing structure\n\"run.googleapis.com/secrets\" = \"\u003calias\u003e:projects/\u003cproject-id|project-number\u003e/secrets/\u003csecret-name\u003e\".\nIf multiple alias definitions are needed, they must be separated by\ncommas in the annotation field.","description_kind":"plain","required":true}},"description":"Selects a key (version) of a secret in Secret Manager.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Source for the environment variable's value. Only supports secret_key_ref.","description_kind":"plain"},"max_items":1}},"description":"List of environment variables to set in the container.","description_kind":"plain"}},"env_from":{"nesting_mode":"list","block":{"attributes":{"prefix":{"type":"string","description":"An optional identifier to prepend to each key in the ConfigMap.","description_kind":"plain","optional":true}},"block_types":{"config_map_ref":{"nesting_mode":"list","block":{"attributes":{"optional":{"type":"bool","description":"Specify whether the ConfigMap must be defined","description_kind":"plain","optional":true}},"block_types":{"local_object_reference":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the referent.\nMore info:\nhttps://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names","description_kind":"plain","required":true}},"description":"The ConfigMap to select from.","description_kind":"plain"},"max_items":1}},"description":"The ConfigMap to select from.","description_kind":"plain"},"max_items":1},"secret_ref":{"nesting_mode":"list","block":{"attributes":{"optional":{"type":"bool","description":"Specify whether the Secret must be defined","description_kind":"plain","optional":true}},"block_types":{"local_object_reference":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the referent.\nMore info:\nhttps://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names","description_kind":"plain","required":true}},"description":"The Secret to select from.","description_kind":"plain"},"max_items":1}},"description":"The Secret to select from.","description_kind":"plain"},"max_items":1}},"description":"List of sources to populate environment variables in the container.\nAll invalid keys will be reported as an event when the container is starting.\nWhen a key exists in multiple sources, the value associated with the last source will\ntake precedence. Values defined by an Env with a duplicate key will take\nprecedence.","description_kind":"plain","deprecated":true}},"ports":{"nesting_mode":"list","block":{"attributes":{"container_port":{"type":"number","description":"Port number the container listens on. This must be a valid port number, 0 \u003c x \u003c 65536.","description_kind":"plain","optional":true},"name":{"type":"string","description":"If specified, used to specify which protocol to use. Allowed values are \"http1\" and \"h2c\".","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description":"Protocol for port. Must be \"TCP\". Defaults to \"TCP\".","description_kind":"plain","optional":true}},"description":"List of open ports in the container.\nMore Info:\nhttps://cloud.google.com/run/docs/reference/rest/v1/RevisionSpec#ContainerPort","description_kind":"plain"}},"resources":{"nesting_mode":"list","block":{"attributes":{"limits":{"type":["map","string"],"description":"Limits describes the maximum amount of compute resources allowed.\nThe values of the map is string form of the 'quantity' k8s type:\nhttps://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go","description_kind":"plain","optional":true,"computed":true},"requests":{"type":["map","string"],"description":"Requests describes the minimum amount of compute resources required.\nIf Requests is omitted for a container, it defaults to Limits if that is\nexplicitly specified, otherwise to an implementation-defined value.\nThe values of the map is string form of the 'quantity' k8s type:\nhttps://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go","description_kind":"plain","optional":true}},"description":"Compute Resources required by this container. Used to set values such as max memory\nMore info:\nhttps://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits","description_kind":"plain"},"max_items":1},"volume_mounts":{"nesting_mode":"list","block":{"attributes":{"mount_path":{"type":"string","description":"Path within the container at which the volume should be mounted. Must\nnot contain ':'.","description_kind":"plain","required":true},"name":{"type":"string","description":"This must match the Name of a Volume.","description_kind":"plain","required":true}},"description":"Volume to mount into the container's filesystem.\nOnly supports SecretVolumeSources.","description_kind":"plain"}}},"description":"Container defines the unit of execution for this Revision.\nIn the context of a Revision, we disallow a number of the fields of\nthis Container, including: name, ports, and volumeMounts.\nThe runtime contract is documented here:\nhttps://github.com/knative/serving/blob/main/docs/runtime-contract.md","description_kind":"plain"}},"volumes":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Volume's name.","description_kind":"plain","required":true}},"block_types":{"secret":{"nesting_mode":"list","block":{"attributes":{"default_mode":{"type":"number","description":"Mode bits to use on created files by default. Must be a value between 0000\nand 0777. Defaults to 0644. Directories within the path are not affected by\nthis setting. This might be in conflict with other options that affect the\nfile mode, like fsGroup, and the result can be other mode bits set.","description_kind":"plain","optional":true},"secret_name":{"type":"string","description":"The name of the secret in Cloud Secret Manager. By default, the secret\nis assumed to be in the same project.\nIf the secret is in another project, you must define an alias.\nAn alias definition has the form:\n\u003calias\u003e:projects/\u003cproject-id|project-number\u003e/secrets/\u003csecret-name\u003e.\nIf multiple alias definitions are needed, they must be separated by\ncommas.\nThe alias definitions must be set on the run.googleapis.com/secrets\nannotation.","description_kind":"plain","required":true}},"block_types":{"items":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description":"The Cloud Secret Manager secret version.\nCan be 'latest' for the latest value or an integer for a specific version.","description_kind":"plain","required":true},"mode":{"type":"number","description":"Mode bits to use on this file, must be a value between 0000 and 0777. If\nnot specified, the volume defaultMode will be used. This might be in\nconflict with other options that affect the file mode, like fsGroup, and\nthe result can be other mode bits set.","description_kind":"plain","optional":true},"path":{"type":"string","description":"The relative path of the file to map the key to.\nMay not be an absolute path.\nMay not contain the path element '..'.\nMay not start with the string '..'.","description_kind":"plain","required":true}},"description":"If unspecified, the volume will expose a file whose name is the\nsecret_name.\nIf specified, the key will be used as the version to fetch from Cloud\nSecret Manager and the path will be the name of the file exposed in the\nvolume. When items are defined, they must specify a key and a path.","description_kind":"plain"}}},"description":"The secret's value will be presented as the content of a file whose\nname is defined in the item path. If no items are defined, the name of\nthe file is the secret_name.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Volume represents a named volume in a container.","description_kind":"plain"}}},"description":"RevisionSpec holds the desired state of the Revision (from the client).","description_kind":"plain"},"max_items":1}},"description":"template holds the latest specification for the Revision to\nbe stamped out. The template references the container image, and may also\ninclude labels and annotations that should be attached to the Revision.\nTo correlate a Revision, and/or to force a Revision to be created when the\nspec doesn't otherwise change, a nonce label may be provided in the\ntemplate metadata. For more details, see:\nhttps://github.com/knative/serving/blob/main/docs/client-conventions.md#associate-modifications-with-revisions\n\nCloud Run does not currently support referencing a build that is\nresponsible for materializing the container image from source.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"traffic":{"nesting_mode":"list","block":{"attributes":{"latest_revision":{"type":"bool","description":"LatestRevision may be optionally provided to indicate that the latest ready\nRevision of the Configuration should be used for this traffic target. When\nprovided LatestRevision must be true if RevisionName is empty; it must be\nfalse when RevisionName is non-empty.","description_kind":"plain","optional":true},"percent":{"type":"number","description":"Percent specifies percent of the traffic to this Revision or Configuration.","description_kind":"plain","required":true},"revision_name":{"type":"string","description":"RevisionName of a specific revision to which to send this portion of traffic.","description_kind":"plain","optional":true}},"description":"Traffic specifies how to distribute traffic over a collection of Knative Revisions\nand Configurations","description_kind":"plain"}}},"description_kind":"plain"}},"google_cloud_run_service_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_cloud_run_service_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_cloud_run_service_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_cloud_scheduler_job":{"version":0,"block":{"attributes":{"attempt_deadline":{"type":"string","description":"The deadline for job attempts. If the request handler does not respond by this deadline then the request is\ncancelled and the attempt is marked as a DEADLINE_EXCEEDED failure. The failed attempt can be viewed in\nexecution logs. Cloud Scheduler will retry the job according to the RetryConfig.\nThe allowed duration for this deadline is:\n* For HTTP targets, between 15 seconds and 30 minutes.\n* For App Engine HTTP targets, between 15 seconds and 24 hours.\n* **Note**: For PubSub targets, this field is ignored - setting it will introduce an unresolvable diff.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\"","description_kind":"plain","optional":true},"description":{"type":"string","description":"A human-readable description for the job. \nThis string must not contain more than 500 characters.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the job.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region where the scheduler job resides. If it is not provided, Terraform will use the provider default.","description_kind":"plain","optional":true,"computed":true},"schedule":{"type":"string","description":"Describes the schedule on which the job will be executed.","description_kind":"plain","optional":true},"time_zone":{"type":"string","description":"Specifies the time zone to be used in interpreting schedule.\nThe value of this field must be a time zone name from the tz database.","description_kind":"plain","optional":true}},"block_types":{"app_engine_http_target":{"nesting_mode":"list","block":{"attributes":{"body":{"type":"string","description":"HTTP request body. \nA request body is allowed only if the HTTP method is POST or PUT. \nIt will result in invalid argument error to set a body on a job with an incompatible HttpMethod.\n\nA base64-encoded string.","description_kind":"plain","optional":true},"headers":{"type":["map","string"],"description":"HTTP request headers.\nThis map contains the header field names and values. \nHeaders can be set when the job is created.","description_kind":"plain","optional":true},"http_method":{"type":"string","description":"Which HTTP method to use for the request.","description_kind":"plain","optional":true},"relative_uri":{"type":"string","description":"The relative URI.\nThe relative URL must begin with \"/\" and must be a valid HTTP relative URL. \nIt can contain a path, query string arguments, and \\# fragments. \nIf the relative URL is empty, then the root path \"/\" will be used. \nNo spaces are allowed, and the maximum length allowed is 2083 characters","description_kind":"plain","required":true}},"block_types":{"app_engine_routing":{"nesting_mode":"list","block":{"attributes":{"instance":{"type":"string","description":"App instance.\nBy default, the job is sent to an instance which is available when the job is attempted.","description_kind":"plain","optional":true},"service":{"type":"string","description":"App service.\nBy default, the job is sent to the service which is the default service when the job is attempted.","description_kind":"plain","optional":true},"version":{"type":"string","description":"App version.\nBy default, the job is sent to the version which is the default version when the job is attempted.","description_kind":"plain","optional":true}},"description":"App Engine Routing setting for the job.","description_kind":"plain"},"max_items":1}},"description":"App Engine HTTP target.\nIf the job providers a App Engine HTTP target the cron will \nsend a request to the service instance","description_kind":"plain"},"max_items":1},"http_target":{"nesting_mode":"list","block":{"attributes":{"body":{"type":"string","description":"HTTP request body. \nA request body is allowed only if the HTTP method is POST, PUT, or PATCH. \nIt is an error to set body on a job with an incompatible HttpMethod.\n\nA base64-encoded string.","description_kind":"plain","optional":true},"headers":{"type":["map","string"],"description":"This map contains the header field names and values. \nRepeated headers are not supported, but a header value can contain commas.","description_kind":"plain","optional":true},"http_method":{"type":"string","description":"Which HTTP method to use for the request.","description_kind":"plain","optional":true},"uri":{"type":"string","description":"The full URI path that the request will be sent to.","description_kind":"plain","required":true}},"block_types":{"oauth_token":{"nesting_mode":"list","block":{"attributes":{"scope":{"type":"string","description":"OAuth scope to be used for generating OAuth access token. If not specified,\n\"https://www.googleapis.com/auth/cloud-platform\" will be used.","description_kind":"plain","optional":true},"service_account_email":{"type":"string","description":"Service account email to be used for generating OAuth token.\nThe service account must be within the same project as the job.","description_kind":"plain","required":true}},"description":"Contains information needed for generating an OAuth token.\nThis type of authorization should be used when sending requests to a GCP endpoint.","description_kind":"plain"},"max_items":1},"oidc_token":{"nesting_mode":"list","block":{"attributes":{"audience":{"type":"string","description":"Audience to be used when generating OIDC token. If not specified,\nthe URI specified in target will be used.","description_kind":"plain","optional":true},"service_account_email":{"type":"string","description":"Service account email to be used for generating OAuth token.\nThe service account must be within the same project as the job.","description_kind":"plain","required":true}},"description":"Contains information needed for generating an OpenID Connect token.\nThis type of authorization should be used when sending requests to third party endpoints or Cloud Run.","description_kind":"plain"},"max_items":1}},"description":"HTTP target.\nIf the job providers a http_target the cron will \nsend a request to the targeted url","description_kind":"plain"},"max_items":1},"pubsub_target":{"nesting_mode":"list","block":{"attributes":{"attributes":{"type":["map","string"],"description":"Attributes for PubsubMessage.\nPubsub message must contain either non-empty data, or at least one attribute.","description_kind":"plain","optional":true},"data":{"type":"string","description":"The message payload for PubsubMessage.\nPubsub message must contain either non-empty data, or at least one attribute.\n\n A base64-encoded string.","description_kind":"plain","optional":true},"topic_name":{"type":"string","description":"The full resource name for the Cloud Pub/Sub topic to which\nmessages will be published when a job is delivered. ~\u003e**NOTE:**\nThe topic name must be in the same format as required by PubSub's\nPublishRequest.name, e.g. 'projects/my-project/topics/my-topic'.","description_kind":"plain","required":true}},"description":"Pub/Sub target\nIf the job providers a Pub/Sub target the cron will publish\na message to the provided topic","description_kind":"plain"},"max_items":1},"retry_config":{"nesting_mode":"list","block":{"attributes":{"max_backoff_duration":{"type":"string","description":"The maximum amount of time to wait before retrying a job after it fails.\nA duration in seconds with up to nine fractional digits, terminated by 's'.","description_kind":"plain","optional":true,"computed":true},"max_doublings":{"type":"number","description":"The time between retries will double maxDoublings times.\nA job's retry interval starts at minBackoffDuration, \nthen doubles maxDoublings times, then increases linearly, \nand finally retries retries at intervals of maxBackoffDuration up to retryCount times.","description_kind":"plain","optional":true,"computed":true},"max_retry_duration":{"type":"string","description":"The time limit for retrying a failed job, measured from time when an execution was first attempted. \nIf specified with retryCount, the job will be retried until both limits are reached.\nA duration in seconds with up to nine fractional digits, terminated by 's'.","description_kind":"plain","optional":true,"computed":true},"min_backoff_duration":{"type":"string","description":"The minimum amount of time to wait before retrying a job after it fails.\nA duration in seconds with up to nine fractional digits, terminated by 's'.","description_kind":"plain","optional":true,"computed":true},"retry_count":{"type":"number","description":"The number of attempts that the system will make to run a \njob using the exponential backoff procedure described by maxDoublings.\nValues greater than 5 and negative values are not allowed.","description_kind":"plain","optional":true,"computed":true}},"description":"By default, if a job does not complete successfully, \nmeaning that an acknowledgement is not received from the handler, \nthen it will be retried with exponential backoff according to the settings","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloud_tasks_queue":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location of the queue","description_kind":"plain","required":true},"name":{"type":"string","description":"The queue name.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"app_engine_routing_override":{"nesting_mode":"list","block":{"attributes":{"host":{"type":"string","description":"The host that the task is sent to.","description_kind":"plain","computed":true},"instance":{"type":"string","description":"App instance.\n\nBy default, the task is sent to an instance which is available when the task is attempted.","description_kind":"plain","optional":true},"service":{"type":"string","description":"App service.\n\nBy default, the task is sent to the service which is the default service when the task is attempted.","description_kind":"plain","optional":true},"version":{"type":"string","description":"App version.\n\nBy default, the task is sent to the version which is the default version when the task is attempted.","description_kind":"plain","optional":true}},"description":"Overrides for task-level appEngineRouting. These settings apply only\nto App Engine tasks in this queue","description_kind":"plain"},"max_items":1},"rate_limits":{"nesting_mode":"list","block":{"attributes":{"max_burst_size":{"type":"number","description":"The max burst size.\n\nMax burst size limits how fast tasks in queue are processed when many tasks are\nin the queue and the rate is high. This field allows the queue to have a high\nrate so processing starts shortly after a task is enqueued, but still limits\nresource usage when many tasks are enqueued in a short period of time.","description_kind":"plain","computed":true},"max_concurrent_dispatches":{"type":"number","description":"The maximum number of concurrent tasks that Cloud Tasks allows to\nbe dispatched for this queue. After this threshold has been\nreached, Cloud Tasks stops dispatching tasks until the number of\nconcurrent requests decreases.","description_kind":"plain","optional":true,"computed":true},"max_dispatches_per_second":{"type":"number","description":"The maximum rate at which tasks are dispatched from this queue.\n\nIf unspecified when the queue is created, Cloud Tasks will pick the default.","description_kind":"plain","optional":true,"computed":true}},"description":"Rate limits for task dispatches.\n\nThe queue's actual dispatch rate is the result of:\n\n* Number of tasks in the queue\n* User-specified throttling: rateLimits, retryConfig, and the queue's state.\n* System throttling due to 429 (Too Many Requests) or 503 (Service\n Unavailable) responses from the worker, high error rates, or to\n smooth sudden large traffic spikes.","description_kind":"plain"},"max_items":1},"retry_config":{"nesting_mode":"list","block":{"attributes":{"max_attempts":{"type":"number","description":"Number of attempts per task.\n\nCloud Tasks will attempt the task maxAttempts times (that is, if\nthe first attempt fails, then there will be maxAttempts - 1\nretries). Must be \u003e= -1.\n\nIf unspecified when the queue is created, Cloud Tasks will pick\nthe default.\n\n-1 indicates unlimited attempts.","description_kind":"plain","optional":true,"computed":true},"max_backoff":{"type":"string","description":"A task will be scheduled for retry between minBackoff and\nmaxBackoff duration after it fails, if the queue's RetryConfig\nspecifies that the task should be retried.","description_kind":"plain","optional":true,"computed":true},"max_doublings":{"type":"number","description":"The time between retries will double maxDoublings times.\n\nA task's retry interval starts at minBackoff, then doubles maxDoublings times,\nthen increases linearly, and finally retries retries at intervals of maxBackoff\nup to maxAttempts times.","description_kind":"plain","optional":true,"computed":true},"max_retry_duration":{"type":"string","description":"If positive, maxRetryDuration specifies the time limit for\nretrying a failed task, measured from when the task was first\nattempted. Once maxRetryDuration time has passed and the task has\nbeen attempted maxAttempts times, no further attempts will be\nmade and the task will be deleted.\n\nIf zero, then the task age is unlimited.","description_kind":"plain","optional":true,"computed":true},"min_backoff":{"type":"string","description":"A task will be scheduled for retry between minBackoff and\nmaxBackoff duration after it fails, if the queue's RetryConfig\nspecifies that the task should be retried.","description_kind":"plain","optional":true,"computed":true}},"description":"Settings that determine the retry behavior.","description_kind":"plain"},"max_items":1},"stackdriver_logging_config":{"nesting_mode":"list","block":{"attributes":{"sampling_ratio":{"type":"number","description":"Specifies the fraction of operations to write to Stackdriver Logging.\nThis field may contain any value between 0.0 and 1.0, inclusive. 0.0 is the\ndefault and means that no operations are logged.","description_kind":"plain","required":true}},"description":"Configuration options for writing logs to Stackdriver Logging.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloudbuild_trigger":{"version":1,"block":{"attributes":{"create_time":{"type":"string","description":"Time when the trigger was created.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Human-readable description of the trigger.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"Whether the trigger is disabled or not. If true, the trigger will never result in a build.","description_kind":"plain","optional":true},"filename":{"type":"string","description":"Path, from the source root, to a file whose contents is used for the template. \nEither a filename or build template must be provided. Set this only when using trigger_template or github.\nWhen using Pub/Sub, Webhook or Manual set the file name using git_file_source instead.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"A Common Expression Language string. Used only with Pub/Sub and Webhook.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ignored_files":{"type":["list","string"],"description":"ignoredFiles and includedFiles are file glob matches using https://golang.org/pkg/path/filepath/#Match\nextended with support for '**'.\n\nIf ignoredFiles and changed files are both empty, then they are not\nused to determine whether or not to trigger a build.\n\nIf ignoredFiles is not empty, then we ignore any files that match any\nof the ignored_file globs. If the change has no files that are outside\nof the ignoredFiles globs, then we do not trigger a build.","description_kind":"plain","optional":true},"included_files":{"type":["list","string"],"description":"ignoredFiles and includedFiles are file glob matches using https://golang.org/pkg/path/filepath/#Match\nextended with support for '**'.\n\nIf any of the files altered in the commit pass the ignoredFiles filter\nand includedFiles is empty, then as far as this filter is concerned, we\nshould trigger the build.\n\nIf any of the files altered in the commit pass the ignoredFiles filter\nand includedFiles is not empty, then we make sure that at least one of\nthose files matches a includedFiles glob. If not, then we do not trigger\na build.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the trigger. Must be unique within the project.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_account":{"type":"string","description":"The service account used for all user-controlled operations including\ntriggers.patch, triggers.run, builds.create, and builds.cancel.\n\nIf no service account is set, then the standard Cloud Build service account\n([PROJECT_NUM]@system.gserviceaccount.com) will be used instead.\n\nFormat: projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT_ID_OR_EMAIL}","description_kind":"plain","optional":true},"substitutions":{"type":["map","string"],"description":"Substitutions data for Build resource.","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"Tags for annotation of a BuildTrigger","description_kind":"plain","optional":true},"trigger_id":{"type":"string","description":"The unique identifier for the trigger.","description_kind":"plain","computed":true}},"block_types":{"approval_config":{"nesting_mode":"list","block":{"attributes":{"approval_required":{"type":"bool","description":"Whether or not approval is needed. If this is set on a build, it will become pending when run, \nand will need to be explicitly approved to start.","description_kind":"plain","optional":true}},"description":"Configuration for manual approval to start a build invocation of this BuildTrigger. \nBuilds created by this trigger will require approval before they execute. \nAny user with a Cloud Build Approver role for the project can approve a build.","description_kind":"plain"},"max_items":1},"build":{"nesting_mode":"list","block":{"attributes":{"images":{"type":["list","string"],"description":"A list of images to be pushed upon the successful completion of all build steps.\nThe images are pushed using the builder service account's credentials.\nThe digests of the pushed images will be stored in the Build resource's results field.\nIf any of the images fail to be pushed, the build status is marked FAILURE.","description_kind":"plain","optional":true},"logs_bucket":{"type":"string","description":"Google Cloud Storage bucket where logs should be written. \nLogs file names will be of the format ${logsBucket}/log-${build_id}.txt.","description_kind":"plain","optional":true},"queue_ttl":{"type":"string","description":"TTL in queue for this build. If provided and the build is enqueued longer than this value, \nthe build will expire and the build status will be EXPIRED.\nThe TTL starts ticking from createTime.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true},"substitutions":{"type":["map","string"],"description":"Substitutions data for Build resource.","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"Tags for annotation of a Build. These are not docker tags.","description_kind":"plain","optional":true},"timeout":{"type":"string","description":"Amount of time that this build should be allowed to run, to second granularity.\nIf this amount of time elapses, work on the build will cease and the build status will be TIMEOUT.\nThis timeout must be equal to or greater than the sum of the timeouts for build steps within the build.\nThe expected format is the number of seconds followed by s.\nDefault time is ten minutes (600s).","description_kind":"plain","optional":true}},"block_types":{"artifacts":{"nesting_mode":"list","block":{"attributes":{"images":{"type":["list","string"],"description":"A list of images to be pushed upon the successful completion of all build steps.\n\nThe images will be pushed using the builder service account's credentials.\n\nThe digests of the pushed images will be stored in the Build resource's results field.\n\nIf any of the images fail to be pushed, the build is marked FAILURE.","description_kind":"plain","optional":true}},"block_types":{"objects":{"nesting_mode":"list","block":{"attributes":{"location":{"type":"string","description":"Cloud Storage bucket and optional object path, in the form \"gs://bucket/path/to/somewhere/\".\n\nFiles in the workspace matching any path pattern will be uploaded to Cloud Storage with\nthis location as a prefix.","description_kind":"plain","optional":true},"paths":{"type":["list","string"],"description":"Path globs used to match files in the build's workspace.","description_kind":"plain","optional":true},"timing":{"type":["list",["object",{"end_time":"string","start_time":"string"}]],"description":"Output only. Stores timing information for pushing all artifact objects.","description_kind":"plain","computed":true}},"description":"A list of objects to be uploaded to Cloud Storage upon successful completion of all build steps.\n\nFiles in the workspace matching specified paths globs will be uploaded to the\nCloud Storage location using the builder service account's credentials.\n\nThe location and generation of the uploaded objects will be stored in the Build resource's results field.\n\nIf any objects fail to be pushed, the build is marked FAILURE.","description_kind":"plain"},"max_items":1}},"description":"Artifacts produced by the build that should be uploaded upon successful completion of all build steps.","description_kind":"plain"},"max_items":1},"available_secrets":{"nesting_mode":"list","block":{"block_types":{"secret_manager":{"nesting_mode":"list","block":{"attributes":{"env":{"type":"string","description":"Environment variable name to associate with the secret. Secret environment\nvariables must be unique across all of a build's secrets, and must be used\nby at least one build step.","description_kind":"plain","required":true},"version_name":{"type":"string","description":"Resource name of the SecretVersion. In format: projects/*/secrets/*/versions/*","description_kind":"plain","required":true}},"description":"Pairs a secret environment variable with a SecretVersion in Secret Manager.","description_kind":"plain"},"min_items":1}},"description":"Secrets and secret environment variables.","description_kind":"plain"},"max_items":1},"options":{"nesting_mode":"list","block":{"attributes":{"disk_size_gb":{"type":"number","description":"Requested disk size for the VM that runs the build. Note that this is NOT \"disk free\";\nsome of the space will be used by the operating system and build utilities.\nAlso note that this is the minimum disk size that will be allocated for the build --\nthe build may run with a larger disk than requested. At present, the maximum disk size\nis 1000GB; builds that request more than the maximum are rejected with an error.","description_kind":"plain","optional":true},"dynamic_substitutions":{"type":"bool","description":"Option to specify whether or not to apply bash style string operations to the substitutions.\n\nNOTE this is always enabled for triggered builds and cannot be overridden in the build configuration file.","description_kind":"plain","optional":true},"env":{"type":["list","string"],"description":"A list of global environment variable definitions that will exist for all build steps\nin this build. If a variable is defined in both globally and in a build step,\nthe variable will use the build step value.\n\nThe elements are of the form \"KEY=VALUE\" for the environment variable \"KEY\" being given the value \"VALUE\".","description_kind":"plain","optional":true},"log_streaming_option":{"type":"string","description":"Option to define build log streaming behavior to Google Cloud Storage. Possible values: [\"STREAM_DEFAULT\", \"STREAM_ON\", \"STREAM_OFF\"]","description_kind":"plain","optional":true},"logging":{"type":"string","description":"Option to specify the logging mode, which determines if and where build logs are stored. Possible values: [\"LOGGING_UNSPECIFIED\", \"LEGACY\", \"GCS_ONLY\", \"STACKDRIVER_ONLY\", \"NONE\"]","description_kind":"plain","optional":true},"machine_type":{"type":"string","description":"Compute Engine machine type on which to run the build. Possible values: [\"UNSPECIFIED\", \"N1_HIGHCPU_8\", \"N1_HIGHCPU_32\", \"E2_HIGHCPU_8\", \"E2_HIGHCPU_32\"]","description_kind":"plain","optional":true},"requested_verify_option":{"type":"string","description":"Requested verifiability options. Possible values: [\"NOT_VERIFIED\", \"VERIFIED\"]","description_kind":"plain","optional":true},"secret_env":{"type":["list","string"],"description":"A list of global environment variables, which are encrypted using a Cloud Key Management\nService crypto key. These values must be specified in the build's Secret. These variables\nwill be available to all build steps in this build.","description_kind":"plain","optional":true},"source_provenance_hash":{"type":["list","string"],"description":"Requested hash for SourceProvenance. Possible values: [\"NONE\", \"SHA256\", \"MD5\"]","description_kind":"plain","optional":true},"substitution_option":{"type":"string","description":"Option to specify behavior when there is an error in the substitution checks.\n\nNOTE this is always set to ALLOW_LOOSE for triggered builds and cannot be overridden\nin the build configuration file. Possible values: [\"MUST_MATCH\", \"ALLOW_LOOSE\"]","description_kind":"plain","optional":true},"worker_pool":{"type":"string","description":"Option to specify a WorkerPool for the build. Format projects/{project}/workerPools/{workerPool}\n\nThis field is experimental.","description_kind":"plain","optional":true}},"block_types":{"volumes":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the volume to mount.\n\nVolume names must be unique per build step and must be valid names for Docker volumes.\nEach named volume must be used by at least two build steps.","description_kind":"plain","optional":true},"path":{"type":"string","description":"Path at which to mount the volume.\n\nPaths must be absolute and cannot conflict with other volume paths on the same\nbuild step or with certain reserved volume paths.","description_kind":"plain","optional":true}},"description":"Global list of volumes to mount for ALL build steps\n\nEach volume is created as an empty volume prior to starting the build process.\nUpon completion of the build, volumes and their contents are discarded. Global\nvolume names and paths cannot conflict with the volumes defined a build step.\n\nUsing a global volume in a build with only one step is not valid as it is indicative\nof a build request with an incorrect configuration.","description_kind":"plain"}}},"description":"Special options for this build.","description_kind":"plain"},"max_items":1},"secret":{"nesting_mode":"list","block":{"attributes":{"kms_key_name":{"type":"string","description":"Cloud KMS key name to use to decrypt these envs.","description_kind":"plain","required":true},"secret_env":{"type":["map","string"],"description":"Map of environment variable name to its encrypted value.\nSecret environment variables must be unique across all of a build's secrets, \nand must be used by at least one build step. Values can be at most 64 KB in size. \nThere can be at most 100 secret values across all of a build's secrets.","description_kind":"plain","optional":true}},"description":"Secrets to decrypt using Cloud Key Management Service.","description_kind":"plain"}},"source":{"nesting_mode":"list","block":{"block_types":{"repo_source":{"nesting_mode":"list","block":{"attributes":{"branch_name":{"type":"string","description":"Regex matching branches to build. Exactly one a of branch name, tag, or commit SHA must be provided.\nThe syntax of the regular expressions accepted is the syntax accepted by RE2 and \ndescribed at https://github.com/google/re2/wiki/Syntax","description_kind":"plain","optional":true},"commit_sha":{"type":"string","description":"Explicit commit SHA to build. Exactly one a of branch name, tag, or commit SHA must be provided.","description_kind":"plain","optional":true},"dir":{"type":"string","description":"Directory, relative to the source root, in which to run the build.\nThis must be a relative path. If a step's dir is specified and is an absolute path, \nthis value is ignored for that step's execution.","description_kind":"plain","optional":true},"invert_regex":{"type":"bool","description":"Only trigger a build if the revision regex does NOT match the revision regex.","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"ID of the project that owns the Cloud Source Repository. \nIf omitted, the project ID requesting the build is assumed.","description_kind":"plain","optional":true},"repo_name":{"type":"string","description":"Name of the Cloud Source Repository.","description_kind":"plain","required":true},"substitutions":{"type":["map","string"],"description":"Substitutions to use in a triggered build. Should only be used with triggers.run","description_kind":"plain","optional":true},"tag_name":{"type":"string","description":"Regex matching tags to build. Exactly one a of branch name, tag, or commit SHA must be provided.\nThe syntax of the regular expressions accepted is the syntax accepted by RE2 and \ndescribed at https://github.com/google/re2/wiki/Syntax","description_kind":"plain","optional":true}},"description":"Location of the source in a Google Cloud Source Repository.","description_kind":"plain"},"max_items":1},"storage_source":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description":"Google Cloud Storage bucket containing the source.","description_kind":"plain","required":true},"generation":{"type":"string","description":"Google Cloud Storage generation for the object. \nIf the generation is omitted, the latest generation will be used","description_kind":"plain","optional":true},"object":{"type":"string","description":"Google Cloud Storage object containing the source.\nThis object must be a gzipped archive file (.tar.gz) containing source to build.","description_kind":"plain","required":true}},"description":"Location of the source in an archive file in Google Cloud Storage.","description_kind":"plain"},"max_items":1}},"description":"The location of the source files to build.\n\nOne of 'storageSource' or 'repoSource' must be provided.","description_kind":"plain"},"max_items":1},"step":{"nesting_mode":"list","block":{"attributes":{"args":{"type":["list","string"],"description":"A list of arguments that will be presented to the step when it is started.\n\nIf the image used to run the step's container has an entrypoint, the args\nare used as arguments to that entrypoint. If the image does not define an\nentrypoint, the first element in args is used as the entrypoint, and the\nremainder will be used as arguments.","description_kind":"plain","optional":true},"dir":{"type":"string","description":"Working directory to use when running this step's container.\n\nIf this value is a relative path, it is relative to the build's working\ndirectory. If this value is absolute, it may be outside the build's working\ndirectory, in which case the contents of the path may not be persisted\nacross build step executions, unless a 'volume' for that path is specified.\n\nIf the build specifies a 'RepoSource' with 'dir' and a step with a\n'dir',\nwhich specifies an absolute path, the 'RepoSource' 'dir' is ignored\nfor the step's execution.","description_kind":"plain","optional":true},"entrypoint":{"type":"string","description":"Entrypoint to be used instead of the build step image's\ndefault entrypoint.\nIf unset, the image's default entrypoint is used","description_kind":"plain","optional":true},"env":{"type":["list","string"],"description":"A list of environment variable definitions to be used when\nrunning a step.\n\nThe elements are of the form \"KEY=VALUE\" for the environment variable\n\"KEY\" being given the value \"VALUE\".","description_kind":"plain","optional":true},"id":{"type":"string","description":"Unique identifier for this build step, used in 'wait_for' to\nreference this build step as a dependency.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the container image that will run this particular build step.\n\nIf the image is available in the host's Docker daemon's cache, it will be\nrun directly. If not, the host will attempt to pull the image first, using\nthe builder service account's credentials if necessary.\n\nThe Docker daemon's cache will already have the latest versions of all of\nthe officially supported build steps (see https://github.com/GoogleCloudPlatform/cloud-builders \nfor images and examples).\nThe Docker daemon will also have cached many of the layers for some popular\nimages, like \"ubuntu\", \"debian\", but they will be refreshed at the time\nyou attempt to use them.\n\nIf you built an image in a previous build step, it will be stored in the\nhost's Docker daemon's cache and is available to use as the name for a\nlater build step.","description_kind":"plain","required":true},"secret_env":{"type":["list","string"],"description":"A list of environment variables which are encrypted using\na Cloud Key\nManagement Service crypto key. These values must be specified in\nthe build's 'Secret'.","description_kind":"plain","optional":true},"timeout":{"type":"string","description":"Time limit for executing this build step. If not defined,\nthe step has no\ntime limit and will be allowed to continue to run until either it\ncompletes or the build itself times out.","description_kind":"plain","optional":true},"timing":{"type":"string","description":"Output only. Stores timing information for executing this\nbuild step.","description_kind":"plain","optional":true},"wait_for":{"type":["list","string"],"description":"The ID(s) of the step(s) that this build step depends on.\n\nThis build step will not start until all the build steps in 'wait_for'\nhave completed successfully. If 'wait_for' is empty, this build step\nwill start when all previous build steps in the 'Build.Steps' list\nhave completed successfully.","description_kind":"plain","optional":true}},"block_types":{"volumes":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the volume to mount.\n\nVolume names must be unique per build step and must be valid names for\nDocker volumes. Each named volume must be used by at least two build steps.","description_kind":"plain","required":true},"path":{"type":"string","description":"Path at which to mount the volume.\n\nPaths must be absolute and cannot conflict with other volume paths on\nthe same build step or with certain reserved volume paths.","description_kind":"plain","required":true}},"description":"List of volumes to mount into the build step.\n\nEach volume is created as an empty volume prior to execution of the\nbuild step. Upon completion of the build, volumes and their contents\nare discarded.\n\nUsing a named volume in only one step is not valid as it is\nindicative of a build request with an incorrect configuration.","description_kind":"plain"}}},"description":"The operations to be performed on the workspace.","description_kind":"plain"},"min_items":1}},"description":"Contents of the build template. Either a filename or build template must be provided.","description_kind":"plain"},"max_items":1},"git_file_source":{"nesting_mode":"list","block":{"attributes":{"path":{"type":"string","description":"The path of the file, with the repo root as the root of the path.","description_kind":"plain","required":true},"repo_type":{"type":"string","description":"The type of the repo, since it may not be explicit from the repo field (e.g from a URL). \nValues can be UNKNOWN, CLOUD_SOURCE_REPOSITORIES, GITHUB Possible values: [\"UNKNOWN\", \"CLOUD_SOURCE_REPOSITORIES\", \"GITHUB\"]","description_kind":"plain","required":true},"revision":{"type":"string","description":"The branch, tag, arbitrary ref, or SHA version of the repo to use when resolving the \nfilename (optional). This field respects the same syntax/resolution as described here: https://git-scm.com/docs/gitrevisions \nIf unspecified, the revision from which the trigger invocation originated is assumed to be the revision from which to read the specified path.","description_kind":"plain","optional":true},"uri":{"type":"string","description":"The URI of the repo (optional). If unspecified, the repo from which the trigger \ninvocation originated is assumed to be the repo from which to read the specified path.","description_kind":"plain","optional":true}},"description":"The file source describing the local or remote Build template.","description_kind":"plain"},"max_items":1},"github":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the repository. For example: The name for\nhttps://github.com/googlecloudplatform/cloud-builders is \"cloud-builders\".","description_kind":"plain","optional":true},"owner":{"type":"string","description":"Owner of the repository. For example: The owner for\nhttps://github.com/googlecloudplatform/cloud-builders is \"googlecloudplatform\".","description_kind":"plain","optional":true}},"block_types":{"pull_request":{"nesting_mode":"list","block":{"attributes":{"branch":{"type":"string","description":"Regex of branches to match.","description_kind":"plain","required":true},"comment_control":{"type":"string","description":"Whether to block builds on a \"/gcbrun\" comment from a repository owner or collaborator. Possible values: [\"COMMENTS_DISABLED\", \"COMMENTS_ENABLED\", \"COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY\"]","description_kind":"plain","optional":true},"invert_regex":{"type":"bool","description":"If true, branches that do NOT match the git_ref will trigger a build.","description_kind":"plain","optional":true}},"description":"filter to match changes in pull requests. Specify only one of 'pull_request' or 'push'.","description_kind":"plain"},"max_items":1},"push":{"nesting_mode":"list","block":{"attributes":{"branch":{"type":"string","description":"Regex of branches to match. Specify only one of branch or tag.","description_kind":"plain","optional":true},"invert_regex":{"type":"bool","description":"When true, only trigger a build if the revision regex does NOT match the git_ref regex.","description_kind":"plain","optional":true},"tag":{"type":"string","description":"Regex of tags to match. Specify only one of branch or tag.","description_kind":"plain","optional":true}},"description":"filter to match changes in refs, like branches or tags. Specify only one of 'pull_request' or 'push'.","description_kind":"plain"},"max_items":1}},"description":"Describes the configuration of a trigger that creates a build whenever a GitHub event is received.\n\nOne of 'trigger_template', 'github', 'pubsub_config' or 'webhook_config' must be provided.","description_kind":"plain"},"max_items":1},"pubsub_config":{"nesting_mode":"list","block":{"attributes":{"service_account_email":{"type":"string","description":"Service account that will make the push request.","description_kind":"plain","optional":true},"state":{"type":"string","description":"Potential issues with the underlying Pub/Sub subscription configuration.\nOnly populated on get requests.","description_kind":"plain","computed":true},"subscription":{"type":"string","description":"Output only. Name of the subscription.","description_kind":"plain","computed":true},"topic":{"type":"string","description":"The name of the topic from which this subscription is receiving messages.","description_kind":"plain","required":true}},"description":"PubsubConfig describes the configuration of a trigger that creates \na build whenever a Pub/Sub message is published.\n\nOne of 'trigger_template', 'github', 'pubsub_config' 'webhook_config' or 'source_to_build' must be provided.","description_kind":"plain"},"max_items":1},"source_to_build":{"nesting_mode":"list","block":{"attributes":{"ref":{"type":"string","description":"The branch or tag to use. Must start with \"refs/\" (required).","description_kind":"plain","required":true},"repo_type":{"type":"string","description":"The type of the repo, since it may not be explicit from the repo field (e.g from a URL).\nValues can be UNKNOWN, CLOUD_SOURCE_REPOSITORIES, GITHUB Possible values: [\"UNKNOWN\", \"CLOUD_SOURCE_REPOSITORIES\", \"GITHUB\"]","description_kind":"plain","required":true},"uri":{"type":"string","description":"The URI of the repo (required).","description_kind":"plain","required":true}},"description":"The repo and ref of the repository from which to build. \nThis field is used only for those triggers that do not respond to SCM events. \nTriggers that respond to such events build source at whatever commit caused the event. \nThis field is currently only used by Webhook, Pub/Sub, Manual, and Cron triggers.\n\nOne of 'trigger_template', 'github', 'pubsub_config' 'webhook_config' or 'source_to_build' must be provided.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"trigger_template":{"nesting_mode":"list","block":{"attributes":{"branch_name":{"type":"string","description":"Name of the branch to build. Exactly one a of branch name, tag, or commit SHA must be provided.\nThis field is a regular expression.","description_kind":"plain","optional":true},"commit_sha":{"type":"string","description":"Explicit commit SHA to build. Exactly one of a branch name, tag, or commit SHA must be provided.","description_kind":"plain","optional":true},"dir":{"type":"string","description":"Directory, relative to the source root, in which to run the build.\n\nThis must be a relative path. If a step's dir is specified and\nis an absolute path, this value is ignored for that step's\nexecution.","description_kind":"plain","optional":true},"invert_regex":{"type":"bool","description":"Only trigger a build if the revision regex does NOT match the revision regex.","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"ID of the project that owns the Cloud Source Repository. If\nomitted, the project ID requesting the build is assumed.","description_kind":"plain","optional":true,"computed":true},"repo_name":{"type":"string","description":"Name of the Cloud Source Repository. If omitted, the name \"default\" is assumed.","description_kind":"plain","optional":true},"tag_name":{"type":"string","description":"Name of the tag to build. Exactly one of a branch name, tag, or commit SHA must be provided.\nThis field is a regular expression.","description_kind":"plain","optional":true}},"description":"Template describing the types of source changes to trigger a build.\n\nBranch and tag names in trigger templates are interpreted as regular\nexpressions. Any branch or tag change that matches that regular\nexpression will trigger a build.\n\nOne of 'trigger_template', 'github', 'pubsub_config', 'webhook_config' or 'source_to_build' must be provided.","description_kind":"plain"},"max_items":1},"webhook_config":{"nesting_mode":"list","block":{"attributes":{"secret":{"type":"string","description":"Resource name for the secret required as a URL parameter.","description_kind":"plain","required":true},"state":{"type":"string","description":"Potential issues with the underlying Pub/Sub subscription configuration.\nOnly populated on get requests.","description_kind":"plain","computed":true}},"description":"WebhookConfig describes the configuration of a trigger that creates \na build whenever a webhook is sent to a trigger's webhook URL.\n\nOne of 'trigger_template', 'github', 'pubsub_config' 'webhook_config' or 'source_to_build' must be provided.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_cloudbuild_worker_pool":{"version":0,"block":{"attributes":{"annotations":{"type":["map","string"],"description":"User specified annotations. See https://google.aip.dev/128#annotations for more details such as format and size limitations.","description_kind":"plain","optional":true},"create_time":{"type":"string","description":"Output only. Time at which the request to create the `WorkerPool` was received.","description_kind":"plain","computed":true},"delete_time":{"type":"string","description":"Output only. Time at which the request to delete the `WorkerPool` was received.","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"A user-specified, human-readable name for the `WorkerPool`. If provided, this value must be 1-63 characters.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location for the resource","description_kind":"plain","required":true},"name":{"type":"string","description":"User-defined name of the `WorkerPool`.","description_kind":"plain","required":true},"project":{"type":"string","description":"The project for the resource","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description":"Output only. `WorkerPool` state. Possible values: STATE_UNSPECIFIED, PENDING, APPROVED, REJECTED, CANCELLED","description_kind":"plain","computed":true},"uid":{"type":"string","description":"Output only. A unique identifier for the `WorkerPool`.","description_kind":"plain","computed":true},"update_time":{"type":"string","description":"Output only. Time at which the request to update the `WorkerPool` was received.","description_kind":"plain","computed":true}},"block_types":{"network_config":{"nesting_mode":"list","block":{"attributes":{"peered_network":{"type":"string","description":"Required. Immutable. The network definition that the workers are peered to. If this section is left empty, the workers will be peered to `WorkerPool.project_id` on the service producer network. Must be in the format `projects/{project}/global/networks/{network}`, where `{project}` is a project number, such as `12345`, and `{network}` is the name of a VPC network in the project. See [Understanding network configuration options](https://cloud.google.com/cloud-build/docs/custom-workers/set-up-custom-worker-pool-environment#understanding_the_network_configuration_options)","description_kind":"plain","required":true}},"description":"Network configuration for the `WorkerPool`.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"worker_config":{"nesting_mode":"list","block":{"attributes":{"disk_size_gb":{"type":"number","description":"Size of the disk attached to the worker, in GB. See [Worker pool config file](https://cloud.google.com/cloud-build/docs/custom-workers/worker-pool-config-file). Specify a value of up to 1000. If `0` is specified, Cloud Build will use a standard disk size.","description_kind":"plain","optional":true},"machine_type":{"type":"string","description":"Machine type of a worker, such as `n1-standard-1`. See [Worker pool config file](https://cloud.google.com/cloud-build/docs/custom-workers/worker-pool-config-file). If left blank, Cloud Build will use `n1-standard-1`.","description_kind":"plain","optional":true},"no_external_ip":{"type":"bool","description":"If true, workers are created without any public address, which prevents network egress to public IPs.","description_kind":"plain","optional":true,"computed":true}},"description":"Configuration to be used for a creating workers in the `WorkerPool`.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_cloudfunctions_function":{"version":0,"block":{"attributes":{"available_memory_mb":{"type":"number","description":"Memory (in MB), available to the function. Default value is 256. Possible values include 128, 256, 512, 1024, etc.","description_kind":"plain","optional":true},"build_environment_variables":{"type":["map","string"],"description":" A set of key/value environment variable pairs available during build time.","description_kind":"plain","optional":true},"description":{"type":"string","description":"Description of the function.","description_kind":"plain","optional":true},"entry_point":{"type":"string","description":"Name of the function that will be executed when the Google Cloud Function is triggered.","description_kind":"plain","optional":true},"environment_variables":{"type":["map","string"],"description":"A set of key/value environment variable pairs to assign to the function.","description_kind":"plain","optional":true},"https_trigger_url":{"type":"string","description":"URL which triggers function execution. Returned only if trigger_http is used.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ingress_settings":{"type":"string","description":"String value that controls what traffic can reach the function. Allowed values are ALLOW_ALL and ALLOW_INTERNAL_ONLY. Changes to this field will recreate the cloud function.","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to the function. Label keys must follow the requirements at https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements.","description_kind":"plain","optional":true},"max_instances":{"type":"number","description":"The limit on the maximum number of function instances that may coexist at a given time.","description_kind":"plain","optional":true},"min_instances":{"type":"number","description":"The limit on the minimum number of function instances that may coexist at a given time.","description_kind":"plain","optional":true},"name":{"type":"string","description":"A user-defined name of the function. Function names must be unique globally.","description_kind":"plain","required":true},"project":{"type":"string","description":"Project of the function. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region of function. If it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"runtime":{"type":"string","description":"The runtime in which the function is going to run. Eg. \"nodejs8\", \"nodejs10\", \"python37\", \"go111\".","description_kind":"plain","required":true},"service_account_email":{"type":"string","description":" If provided, the self-provided service account to run the function with.","description_kind":"plain","optional":true,"computed":true},"source_archive_bucket":{"type":"string","description":"The GCS bucket containing the zip archive which contains the function.","description_kind":"plain","optional":true},"source_archive_object":{"type":"string","description":"The source archive object (file) in archive bucket.","description_kind":"plain","optional":true},"timeout":{"type":"number","description":"Timeout (in seconds) for the function. Default value is 60 seconds. Cannot be more than 540 seconds.","description_kind":"plain","optional":true},"trigger_http":{"type":"bool","description":"Boolean variable. Any HTTP request (of a supported type) to the endpoint will trigger function execution. Supported HTTP request types are: POST, PUT, GET, DELETE, and OPTIONS. Endpoint is returned as https_trigger_url. Cannot be used with trigger_bucket and trigger_topic.","description_kind":"plain","optional":true},"vpc_connector":{"type":"string","description":"The VPC Network Connector that this cloud function can connect to. It can be either the fully-qualified URI, or the short name of the network connector resource. The format of this field is projects/*/locations/*/connectors/*.","description_kind":"plain","optional":true},"vpc_connector_egress_settings":{"type":"string","description":"The egress settings for the connector, controlling what traffic is diverted through it. Allowed values are ALL_TRAFFIC and PRIVATE_RANGES_ONLY. Defaults to PRIVATE_RANGES_ONLY. If unset, this field preserves the previously set value.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"event_trigger":{"nesting_mode":"list","block":{"attributes":{"event_type":{"type":"string","description":"The type of event to observe. For example: \"google.storage.object.finalize\". See the documentation on calling Cloud Functions for a full reference of accepted triggers.","description_kind":"plain","required":true},"resource":{"type":"string","description":"The name or partial URI of the resource from which to observe events. For example, \"myBucket\" or \"projects/my-project/topics/my-topic\"","description_kind":"plain","required":true}},"block_types":{"failure_policy":{"nesting_mode":"list","block":{"attributes":{"retry":{"type":"bool","description":"Whether the function should be retried on failure. Defaults to false.","description_kind":"plain","required":true}},"description":"Specifies policy for failed executions","description_kind":"plain"},"max_items":1}},"description":"A source that fires events in response to a condition in another service. Cannot be used with trigger_http.","description_kind":"plain"},"max_items":1},"secret_environment_variables":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description":"Name of the environment variable.","description_kind":"plain","required":true},"project_id":{"type":"string","description":"Project identifier (due to a known limitation, only project number is supported by this field) of the project that contains the secret. If not set, it will be populated with the function's project, assuming that the secret exists in the same project as of the function.","description_kind":"plain","optional":true,"computed":true},"secret":{"type":"string","description":"ID of the secret in secret manager (not the full resource name).","description_kind":"plain","required":true},"version":{"type":"string","description":"Version of the secret (version number or the string \"latest\"). It is recommended to use a numeric version for secret environment variables as any updates to the secret value is not reflected until new clones start.","description_kind":"plain","required":true}},"description":"Secret environment variables configuration","description_kind":"plain"}},"secret_volumes":{"nesting_mode":"list","block":{"attributes":{"mount_path":{"type":"string","description":"The path within the container to mount the secret volume. For example, setting the mount_path as \"/etc/secrets\" would mount the secret value files under the \"/etc/secrets\" directory. This directory will also be completely shadowed and unavailable to mount any other secrets. Recommended mount paths: \"/etc/secrets\" Restricted mount paths: \"/cloudsql\", \"/dev/log\", \"/pod\", \"/proc\", \"/var/log\".","description_kind":"plain","required":true},"project_id":{"type":"string","description":"Project identifier (due to a known limitation, only project number is supported by this field) of the project that contains the secret. If not set, it will be populated with the function's project, assuming that the secret exists in the same project as of the function.","description_kind":"plain","optional":true,"computed":true},"secret":{"type":"string","description":"ID of the secret in secret manager (not the full resource name).","description_kind":"plain","required":true}},"block_types":{"versions":{"nesting_mode":"list","block":{"attributes":{"path":{"type":"string","description":"Relative path of the file under the mount path where the secret value for this version will be fetched and made available. For example, setting the mount_path as \"/etc/secrets\" and path as \"/secret_foo\" would mount the secret value file at \"/etc/secrets/secret_foo\".","description_kind":"plain","required":true},"version":{"type":"string","description":"Version of the secret (version number or the string \"latest\"). It is preferable to use \"latest\" version with secret volumes as secret value changes are reflected immediately.","description_kind":"plain","required":true}},"description":"List of secret versions to mount for this secret. If empty, the \"latest\" version of the secret will be made available in a file named after the secret under the mount point.","description_kind":"plain"}}},"description":"Secret volumes configuration.","description_kind":"plain"}},"source_repository":{"nesting_mode":"list","block":{"attributes":{"deployed_url":{"type":"string","description":"The URL pointing to the hosted repository where the function was defined at the time of deployment.","description_kind":"plain","computed":true},"url":{"type":"string","description":"The URL pointing to the hosted repository where the function is defined.","description_kind":"plain","required":true}},"description":"Represents parameters related to source repository where a function is hosted. Cannot be set alongside source_archive_bucket or source_archive_object.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloudfunctions_function_iam_binding":{"version":0,"block":{"attributes":{"cloud_function":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_cloudfunctions_function_iam_member":{"version":0,"block":{"attributes":{"cloud_function":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_cloudfunctions_function_iam_policy":{"version":0,"block":{"attributes":{"cloud_function":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_cloudiot_device":{"version":0,"block":{"attributes":{"blocked":{"type":"bool","description":"If a device is blocked, connections or requests from this device will fail.","description_kind":"plain","optional":true},"config":{"type":["list",["object",{"binary_data":"string","cloud_update_time":"string","device_ack_time":"string","version":"string"}]],"description":"The most recent device configuration, which is eventually sent from Cloud IoT Core to the device.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_config_ack_time":{"type":"string","description":"The last time a cloud-to-device config version acknowledgment was received from the device.","description_kind":"plain","computed":true},"last_config_send_time":{"type":"string","description":"The last time a cloud-to-device config version was sent to the device.","description_kind":"plain","computed":true},"last_error_status":{"type":["list",["object",{"details":["list",["map","string"]],"message":"string","number":"number"}]],"description":"The error message of the most recent error, such as a failure to publish to Cloud Pub/Sub.","description_kind":"plain","computed":true},"last_error_time":{"type":"string","description":"The time the most recent error occurred, such as a failure to publish to Cloud Pub/Sub.","description_kind":"plain","computed":true},"last_event_time":{"type":"string","description":"The last time a telemetry event was received.","description_kind":"plain","computed":true},"last_heartbeat_time":{"type":"string","description":"The last time an MQTT PINGREQ was received.","description_kind":"plain","computed":true},"last_state_time":{"type":"string","description":"The last time a state event was received.","description_kind":"plain","computed":true},"log_level":{"type":"string","description":"The logging verbosity for device activity. Possible values: [\"NONE\", \"ERROR\", \"INFO\", \"DEBUG\"]","description_kind":"plain","optional":true},"metadata":{"type":["map","string"],"description":"The metadata key-value pairs assigned to the device.","description_kind":"plain","optional":true},"name":{"type":"string","description":"A unique name for the resource.","description_kind":"plain","required":true},"num_id":{"type":"string","description":"A server-defined unique numeric ID for the device.\nThis is a more compact way to identify devices, and it is globally unique.","description_kind":"plain","computed":true},"registry":{"type":"string","description":"The name of the device registry where this device should be created.","description_kind":"plain","required":true},"state":{"type":["list",["object",{"binary_data":"string","update_time":"string"}]],"description":"The state most recently received from the device.","description_kind":"plain","computed":true}},"block_types":{"credentials":{"nesting_mode":"list","block":{"attributes":{"expiration_time":{"type":"string","description":"The time at which this credential becomes invalid.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"public_key":{"nesting_mode":"list","block":{"attributes":{"format":{"type":"string","description":"The format of the key. Possible values: [\"RSA_PEM\", \"RSA_X509_PEM\", \"ES256_PEM\", \"ES256_X509_PEM\"]","description_kind":"plain","required":true},"key":{"type":"string","description":"The key data.","description_kind":"plain","required":true}},"description":"A public key used to verify the signature of JSON Web Tokens (JWTs).","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"The credentials used to authenticate this device.","description_kind":"plain"},"max_items":3},"gateway_config":{"nesting_mode":"list","block":{"attributes":{"gateway_auth_method":{"type":"string","description":"Indicates whether the device is a gateway. Possible values: [\"ASSOCIATION_ONLY\", \"DEVICE_AUTH_TOKEN_ONLY\", \"ASSOCIATION_AND_DEVICE_AUTH_TOKEN\"]","description_kind":"plain","optional":true},"gateway_type":{"type":"string","description":"Indicates whether the device is a gateway. Default value: \"NON_GATEWAY\" Possible values: [\"GATEWAY\", \"NON_GATEWAY\"]","description_kind":"plain","optional":true},"last_accessed_gateway_id":{"type":"string","description":"The ID of the gateway the device accessed most recently.","description_kind":"plain","computed":true},"last_accessed_gateway_time":{"type":"string","description":"The most recent time at which the device accessed the gateway specified in last_accessed_gateway.","description_kind":"plain","computed":true}},"description":"Gateway-related configuration and state.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_cloudiot_registry":{"version":0,"block":{"attributes":{"http_config":{"type":["map","string"],"description":"Activate or deactivate HTTP.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"log_level":{"type":"string","description":"The default logging verbosity for activity from devices in this\nregistry. Specifies which events should be written to logs. For\nexample, if the LogLevel is ERROR, only events that terminate in\nerrors will be logged. LogLevel is inclusive; enabling INFO logging\nwill also enable ERROR logging. Default value: \"NONE\" Possible values: [\"NONE\", \"ERROR\", \"INFO\", \"DEBUG\"]","description_kind":"plain","optional":true},"mqtt_config":{"type":["map","string"],"description":"Activate or deactivate MQTT.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"A unique name for the resource, required by device registry.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region in which the created registry should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"state_notification_config":{"type":["map","string"],"description":"A PubSub topic to publish device state updates.","description_kind":"plain","optional":true}},"block_types":{"credentials":{"nesting_mode":"list","block":{"attributes":{"public_key_certificate":{"type":["map","string"],"description":"A public key certificate format and data.","description_kind":"plain","required":true}},"description":"List of public key certificates to authenticate devices.","description_kind":"plain"},"max_items":10},"event_notification_configs":{"nesting_mode":"list","block":{"attributes":{"pubsub_topic_name":{"type":"string","description":"PubSub topic name to publish device events.","description_kind":"plain","required":true},"subfolder_matches":{"type":"string","description":"If the subfolder name matches this string exactly, this\nconfiguration will be used. The string must not include the\nleading '/' character. If empty, all strings are matched. Empty\nvalue can only be used for the last 'event_notification_configs'\nitem.","description_kind":"plain","optional":true}},"description":"List of configurations for event notifications, such as PubSub topics\nto publish device events to.","description_kind":"plain"},"max_items":10},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_composer_environment":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"User-defined labels for this environment. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])?. Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?. No more than 64 labels can be associated with a given environment. Both keys and values must be \u003c= 128 bytes in size.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the environment.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The location or Compute Engine region for the environment.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"config":{"nesting_mode":"list","block":{"attributes":{"airflow_uri":{"type":"string","description":"The URI of the Apache Airflow Web UI hosted within this environment.","description_kind":"plain","computed":true},"dag_gcs_prefix":{"type":"string","description":"The Cloud Storage prefix of the DAGs for this environment. Although Cloud Storage objects reside in a flat namespace, a hierarchical file tree can be simulated using '/'-delimited object name prefixes. DAG objects for this environment reside in a simulated directory with this prefix.","description_kind":"plain","computed":true},"environment_size":{"type":"string","description":"The size of the Cloud Composer environment. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.","description_kind":"plain","optional":true,"computed":true},"gke_cluster":{"type":"string","description":"The Kubernetes Engine cluster used to run this environment.","description_kind":"plain","computed":true},"node_count":{"type":"number","description":"The number of nodes in the Kubernetes Engine cluster that will be used to run this environment. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"database_config":{"nesting_mode":"list","block":{"attributes":{"machine_type":{"type":"string","description":"Optional. Cloud SQL machine type used by Airflow database. It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 or db-n1-standard-16. If not specified, db-n1-standard-2 will be used.","description_kind":"plain","required":true}},"description":"The configuration of Cloud SQL instance that is used by the Apache Airflow software. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.","description_kind":"plain"},"max_items":1},"encryption_config":{"nesting_mode":"list","block":{"attributes":{"kms_key_name":{"type":"string","description":"Optional. Customer-managed Encryption Key available through Google's Key Management Service. Cannot be updated.","description_kind":"plain","required":true}},"description":"The encryption options for the Composer environment and its dependencies. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.","description_kind":"plain"},"max_items":1},"maintenance_window":{"nesting_mode":"list","block":{"attributes":{"end_time":{"type":"string","description":"Maintenance window end time. It is used only to calculate the duration of the maintenance window. The value for end-time must be in the future, relative to 'start_time'.","description_kind":"plain","required":true},"recurrence":{"type":"string","description":"Maintenance window recurrence. Format is a subset of RFC-5545 (https://tools.ietf.org/html/rfc5545) 'RRULE'. The only allowed values for 'FREQ' field are 'FREQ=DAILY' and 'FREQ=WEEKLY;BYDAY=...'. Example values: 'FREQ=WEEKLY;BYDAY=TU,WE', 'FREQ=DAILY'.","description_kind":"plain","required":true},"start_time":{"type":"string","description":"Start time of the first recurrence of the maintenance window.","description_kind":"plain","required":true}},"description":"The configuration for Cloud Composer maintenance window.","description_kind":"plain"},"max_items":1},"node_config":{"nesting_mode":"list","block":{"attributes":{"disk_size_gb":{"type":"number","description":"The disk size in GB used for node VMs. Minimum size is 20GB. If unspecified, defaults to 100GB. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.","description_kind":"plain","optional":true,"computed":true},"ip_allocation_policy":{"type":["list",["object",{"cluster_ipv4_cidr_block":"string","cluster_secondary_range_name":"string","services_ipv4_cidr_block":"string","services_secondary_range_name":"string","use_ip_aliases":"bool"}]],"description":"Configuration for controlling how IPs are allocated in the GKE cluster. Cannot be updated.","description_kind":"plain","optional":true,"computed":true},"machine_type":{"type":"string","description":"The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: \"projects/{project}/zones/{zone}/machineTypes/{machineType}\". Must belong to the enclosing environment's project and region/zone. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.","description_kind":"plain","optional":true,"computed":true},"network":{"type":"string","description":"The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: \"projects/{project}/zones/{zone}/machineTypes/{machineType}\". Must belong to the enclosing environment's project and region/zone. The network must belong to the environment's project. If unspecified, the \"default\" network ID in the environment's project is used. If a Custom Subnet Network is provided, subnetwork must also be provided.","description_kind":"plain","optional":true,"computed":true},"oauth_scopes":{"type":["set","string"],"description":"The set of Google API scopes to be made available on all node VMs. Cannot be updated. If empty, defaults to [\"https://www.googleapis.com/auth/cloud-platform\"]. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.","description_kind":"plain","optional":true,"computed":true},"service_account":{"type":"string","description":"The Google Cloud Platform Service Account to be used by the node VMs. If a service account is not specified, the \"default\" Compute Engine service account is used. Cannot be updated. If given, note that the service account must have roles/composer.worker for any GCP resources created under the Cloud Composer Environment.","description_kind":"plain","optional":true,"computed":true},"subnetwork":{"type":"string","description":"The Compute Engine subnetwork to be used for machine communications, , specified as a self-link, relative resource name (e.g. \"projects/{project}/regions/{region}/subnetworks/{subnetwork}\"), or by name. If subnetwork is provided, network must also be provided and the subnetwork must belong to the enclosing environment's project and region.","description_kind":"plain","optional":true},"tags":{"type":["set","string"],"description":"The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with RFC1035. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The Compute Engine zone in which to deploy the VMs running the Apache Airflow software, specified as the zone name or relative resource name (e.g. \"projects/{project}/zones/{zone}\"). Must belong to the enclosing environment's project and region. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.","description_kind":"plain","optional":true,"computed":true}},"description":"The configuration used for the Kubernetes Engine cluster.","description_kind":"plain"},"max_items":1},"private_environment_config":{"nesting_mode":"list","block":{"attributes":{"cloud_composer_connection_subnetwork":{"type":"string","description":"When specified, the environment will use Private Service Connect instead of VPC peerings to connect to Cloud SQL in the Tenant Project, and the PSC endpoint in the Customer Project will use an IP address from this subnetwork. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.","description_kind":"plain","optional":true,"computed":true},"cloud_composer_network_ipv4_cidr_block":{"type":"string","description":"The CIDR block from which IP range for Cloud Composer Network in tenant project will be reserved. Needs to be disjoint from private_cluster_config.master_ipv4_cidr_block and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.","description_kind":"plain","optional":true,"computed":true},"cloud_sql_ipv4_cidr_block":{"type":"string","description":"The CIDR block from which IP range in tenant project will be reserved for Cloud SQL. Needs to be disjoint from web_server_ipv4_cidr_block.","description_kind":"plain","optional":true,"computed":true},"enable_private_endpoint":{"type":"bool","description":"If true, access to the public endpoint of the GKE cluster is denied. If this field is set to true, ip_allocation_policy.use_ip_aliases must be set to true for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.","description_kind":"plain","optional":true},"master_ipv4_cidr_block":{"type":"string","description":"The IP range in CIDR notation to use for the hosted master network. This range is used for assigning internal IP addresses to the cluster master or set of masters and to the internal load balancer virtual IP. This range must not overlap with any other ranges in use within the cluster's network. If left blank, the default value of '172.16.0.0/28' is used.","description_kind":"plain","optional":true,"computed":true},"web_server_ipv4_cidr_block":{"type":"string","description":"The CIDR block from which IP range for web server will be reserved. Needs to be disjoint from master_ipv4_cidr_block and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.","description_kind":"plain","optional":true,"computed":true}},"description":"The configuration used for the Private IP Cloud Composer environment.","description_kind":"plain"},"max_items":1},"software_config":{"nesting_mode":"list","block":{"attributes":{"airflow_config_overrides":{"type":["map","string"],"description":"Apache Airflow configuration properties to override. Property keys contain the section and property names, separated by a hyphen, for example \"core-dags_are_paused_at_creation\". Section names must not contain hyphens (\"-\"), opening square brackets (\"[\"), or closing square brackets (\"]\"). The property name must not be empty and cannot contain \"=\" or \";\". Section and property names cannot contain characters: \".\" Apache Airflow configuration property names must be written in snake_case. Property values can contain any character, and can be written in any lower/upper case format. Certain Apache Airflow configuration property values are blacklisted, and cannot be overridden.","description_kind":"plain","optional":true},"env_variables":{"type":["map","string"],"description":"Additional environment variables to provide to the Apache Airflow scheduler, worker, and webserver processes. Environment variable names must match the regular expression [a-zA-Z_][a-zA-Z0-9_]*. They cannot specify Apache Airflow software configuration overrides (they cannot match the regular expression AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+), and they cannot match any of the following reserved names: AIRFLOW_HOME C_FORCE_ROOT CONTAINER_NAME DAGS_FOLDER GCP_PROJECT GCS_BUCKET GKE_CLUSTER_NAME SQL_DATABASE SQL_INSTANCE SQL_PASSWORD SQL_PROJECT SQL_REGION SQL_USER.","description_kind":"plain","optional":true},"image_version":{"type":"string","description":"The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression composer-([0-9]+(\\.[0-9]+\\.[0-9]+(-preview\\.[0-9]+)?)?|latest)-airflow-([0-9]+(\\.[0-9]+(\\.[0-9]+)?)?). The Cloud Composer portion of the image version is a full semantic version, or an alias in the form of major version number or 'latest'. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. See documentation for more details and version list.","description_kind":"plain","optional":true,"computed":true},"pypi_packages":{"type":["map","string"],"description":"Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name (e.g. \"numpy\"). Values are the lowercase extras and version specifier (e.g. \"==1.12.0\", \"[devel,gcp_api]\", \"[devel]\u003e=1.8.2, \u003c1.9.2\"). To specify a package without pinning it to a version specifier, use the empty string as the value.","description_kind":"plain","optional":true},"python_version":{"type":"string","description":"The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to '2' or '3'. If not specified, the default is '2'. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. Environments in newer versions always use Python major version 3.","description_kind":"plain","optional":true,"computed":true},"scheduler_count":{"type":"number","description":"The number of schedulers for Airflow. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-2.*.*.","description_kind":"plain","optional":true,"computed":true}},"description":"The configuration settings for software inside the environment.","description_kind":"plain"},"max_items":1},"web_server_config":{"nesting_mode":"list","block":{"attributes":{"machine_type":{"type":"string","description":"Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.","description_kind":"plain","required":true}},"description":"The configuration settings for the Airflow web server App Engine instance. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.","description_kind":"plain"},"max_items":1},"web_server_network_access_control":{"nesting_mode":"list","block":{"block_types":{"allowed_ip_range":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"A description of this ip range.","description_kind":"plain","optional":true},"value":{"type":"string","description":"IP address or range, defined using CIDR notation, of requests that this rule applies to. Examples: 192.168.1.1 or 192.168.0.0/16 or 2001:db8::/32 or 2001:0db8:0000:0042:0000:8a2e:0370:7334. IP range prefixes should be properly truncated. For example, 1.2.3.4/24 should be truncated to 1.2.3.0/24. Similarly, for IPv6, 2001:db8::1/32 should be truncated to 2001:db8::/32.","description_kind":"plain","required":true}},"description":"A collection of allowed IP ranges with descriptions.","description_kind":"plain"}}},"description":"The network-level access control policy for the Airflow web server. If unspecified, no network-level access restrictions will be applied. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.","description_kind":"plain"},"max_items":1},"workloads_config":{"nesting_mode":"list","block":{"block_types":{"scheduler":{"nesting_mode":"list","block":{"attributes":{"count":{"type":"number","description":"The number of schedulers.","description_kind":"plain","optional":true},"cpu":{"type":"number","description":"CPU request and limit for a single Airflow scheduler replica","description_kind":"plain","optional":true},"memory_gb":{"type":"number","description":"Memory (GB) request and limit for a single Airflow scheduler replica.","description_kind":"plain","optional":true},"storage_gb":{"type":"number","description":"Storage (GB) request and limit for a single Airflow scheduler replica.","description_kind":"plain","optional":true}},"description":"Configuration for resources used by Airflow schedulers.","description_kind":"plain"},"max_items":1},"web_server":{"nesting_mode":"list","block":{"attributes":{"cpu":{"type":"number","description":"CPU request and limit for Airflow web server.","description_kind":"plain","optional":true},"memory_gb":{"type":"number","description":"Memory (GB) request and limit for Airflow web server.","description_kind":"plain","optional":true},"storage_gb":{"type":"number","description":"Storage (GB) request and limit for Airflow web server.","description_kind":"plain","optional":true}},"description":"Configuration for resources used by Airflow web server.","description_kind":"plain"},"max_items":1},"worker":{"nesting_mode":"list","block":{"attributes":{"cpu":{"type":"number","description":"CPU request and limit for a single Airflow worker replica.","description_kind":"plain","optional":true},"max_count":{"type":"number","description":"Maximum number of workers for autoscaling.","description_kind":"plain","optional":true},"memory_gb":{"type":"number","description":"Memory (GB) request and limit for a single Airflow worker replica.","description_kind":"plain","optional":true},"min_count":{"type":"number","description":"Minimum number of workers for autoscaling.","description_kind":"plain","optional":true},"storage_gb":{"type":"number","description":"Storage (GB) request and limit for a single Airflow worker replica.","description_kind":"plain","optional":true}},"description":"Configuration for resources used by Airflow workers.","description_kind":"plain"},"max_items":1}},"description":"The workloads configuration settings for the GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.","description_kind":"plain"},"max_items":1}},"description":"Configuration parameters for this environment.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_address":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The static external IP address represented by this resource. Only\nIPv4 is supported. An address may only be specified for INTERNAL\naddress types. The IP address must be inside the specified subnetwork,\nif any. Set by the API if undefined.","description_kind":"plain","optional":true,"computed":true},"address_type":{"type":"string","description":"The type of address to reserve. Default value: \"EXTERNAL\" Possible values: [\"INTERNAL\", \"EXTERNAL\"]","description_kind":"plain","optional":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. The name must be 1-63 characters long, and\ncomply with RFC1035. Specifically, the name must be 1-63 characters\nlong and match the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?'\nwhich means the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit,\nexcept the last character, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"The URL of the network in which to reserve the address. This field\ncan only be used with INTERNAL type with the VPC_PEERING and\nIPSEC_INTERCONNECT purposes.","description_kind":"plain","optional":true},"network_tier":{"type":"string","description":"The networking tier used for configuring this address. If this field is not\nspecified, it is assumed to be PREMIUM. Possible values: [\"PREMIUM\", \"STANDARD\"]","description_kind":"plain","optional":true,"computed":true},"prefix_length":{"type":"number","description":"The prefix length if the resource represents an IP range.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"purpose":{"type":"string","description":"The purpose of this resource, which can be one of the following values:\n\n* GCE_ENDPOINT for addresses that are used by VM instances, alias IP\n ranges, internal load balancers, and similar resources.\n\n* SHARED_LOADBALANCER_VIP for an address that can be used by multiple\n internal load balancers.\n\n* VPC_PEERING for addresses that are reserved for VPC peer networks.\n\n* IPSEC_INTERCONNECT for addresses created from a private IP range\n that are reserved for a VLAN attachment in an IPsec-encrypted Cloud\n Interconnect configuration. These addresses are regional resources.\n\n* PRIVATE_SERVICE_CONNECT for a private network address that is used\nto configure Private Service Connect. Only global internal addresses\ncan use this purpose.\n\nThis should only be set when using an Internal address.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The Region in which the created address should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"subnetwork":{"type":"string","description":"The URL of the subnetwork in which to reserve the address. If an IP\naddress is specified, it must be within the subnetwork's IP range.\nThis field can only be used with INTERNAL type with\nGCE_ENDPOINT/DNS_RESOLVER purposes.","description_kind":"plain","optional":true,"computed":true},"users":{"type":["list","string"],"description":"The URLs of the resources that are using this address.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_attached_disk":{"version":0,"block":{"attributes":{"device_name":{"type":"string","description":"Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disks-x, where x is a number assigned by Google Compute Engine.","description_kind":"plain","optional":true,"computed":true},"disk":{"type":"string","description":"name or self_link of the disk that will be attached.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description":"name or self_link of the compute instance that the disk will be attached to. If the self_link is provided then zone and project are extracted from the self link. If only the name is used then zone and project must be defined as properties on the resource or provider.","description_kind":"plain","required":true},"mode":{"type":"string","description":"The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.","description_kind":"plain","optional":true},"project":{"type":"string","description":"The project that the referenced compute instance is a part of. If instance is referenced by its self_link the project defined in the link will take precedence.","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone that the referenced compute instance is located within. If instance is referenced by its self_link the zone defined in the link will take precedence.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_autoscaler":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. The name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"target":{"type":"string","description":"URL of the managed instance group that this autoscaler will scale.","description_kind":"plain","required":true},"zone":{"type":"string","description":"URL of the zone where the instance group resides.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"autoscaling_policy":{"nesting_mode":"list","block":{"attributes":{"cooldown_period":{"type":"number","description":"The number of seconds that the autoscaler should wait before it\nstarts collecting information from a new instance. This prevents\nthe autoscaler from collecting information when the instance is\ninitializing, during which the collected usage would not be\nreliable. The default time autoscaler waits is 60 seconds.\n\nVirtual machine initialization times might vary because of\nnumerous factors. We recommend that you test how long an\ninstance may take to initialize. To do this, create an instance\nand time the startup process.","description_kind":"plain","optional":true},"max_replicas":{"type":"number","description":"The maximum number of instances that the autoscaler can scale up\nto. This is required when creating or updating an autoscaler. The\nmaximum number of replicas should not be lower than minimal number\nof replicas.","description_kind":"plain","required":true},"min_replicas":{"type":"number","description":"The minimum number of replicas that the autoscaler can scale down\nto. This cannot be less than 0. If not provided, autoscaler will\nchoose a default value depending on maximum number of instances\nallowed.","description_kind":"plain","required":true},"mode":{"type":"string","description":"Defines operating mode for this policy. Default value: \"ON\" Possible values: [\"OFF\", \"ONLY_UP\", \"ON\"]","description_kind":"plain","optional":true}},"block_types":{"cpu_utilization":{"nesting_mode":"list","block":{"attributes":{"predictive_method":{"type":"string","description":"Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are:\n\n- NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics.\n\n- OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.","description_kind":"plain","optional":true},"target":{"type":"number","description":"The target CPU utilization that the autoscaler should maintain.\nMust be a float value in the range (0, 1]. If not specified, the\ndefault is 0.6.\n\nIf the CPU level is below the target utilization, the autoscaler\nscales down the number of instances until it reaches the minimum\nnumber of instances you specified or until the average CPU of\nyour instances reaches the target utilization.\n\nIf the average CPU is above the target utilization, the autoscaler\nscales up until it reaches the maximum number of instances you\nspecified or until the average utilization reaches the target\nutilization.","description_kind":"plain","required":true}},"description":"Defines the CPU utilization policy that allows the autoscaler to\nscale based on the average CPU utilization of a managed instance\ngroup.","description_kind":"plain"},"max_items":1},"load_balancing_utilization":{"nesting_mode":"list","block":{"attributes":{"target":{"type":"number","description":"Fraction of backend capacity utilization (set in HTTP(s) load\nbalancing configuration) that autoscaler should maintain. Must\nbe a positive float value. If not defined, the default is 0.8.","description_kind":"plain","required":true}},"description":"Configuration parameters of autoscaling based on a load balancer.","description_kind":"plain"},"max_items":1},"metric":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"The identifier (type) of the Stackdriver Monitoring metric.\nThe metric cannot have negative values.\n\nThe metric must have a value type of INT64 or DOUBLE.","description_kind":"plain","required":true},"target":{"type":"number","description":"The target value of the metric that autoscaler should\nmaintain. This must be a positive value. A utilization\nmetric scales number of virtual machines handling requests\nto increase or decrease proportionally to the metric.\n\nFor example, a good metric to use as a utilizationTarget is\nwww.googleapis.com/compute/instance/network/received_bytes_count.\nThe autoscaler will work to keep this value constant for each\nof the instances.","description_kind":"plain","optional":true},"type":{"type":"string","description":"Defines how target utilization value is expressed for a\nStackdriver Monitoring metric. Possible values: [\"GAUGE\", \"DELTA_PER_SECOND\", \"DELTA_PER_MINUTE\"]","description_kind":"plain","optional":true}},"description":"Configuration parameters of autoscaling based on a custom metric.","description_kind":"plain"}},"scale_in_control":{"nesting_mode":"list","block":{"attributes":{"time_window_sec":{"type":"number","description":"How long back autoscaling should look when computing recommendations\nto include directives regarding slower scale down, as described above.","description_kind":"plain","optional":true}},"block_types":{"max_scaled_in_replicas":{"nesting_mode":"list","block":{"attributes":{"fixed":{"type":"number","description":"Specifies a fixed number of VM instances. This must be a positive\ninteger.","description_kind":"plain","optional":true},"percent":{"type":"number","description":"Specifies a percentage of instances between 0 to 100%, inclusive.\nFor example, specify 80 for 80%.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1}},"description":"Defines scale in controls to reduce the risk of response latency\nand outages due to abrupt scale-in events","description_kind":"plain"},"max_items":1},"scaling_schedules":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"A description of a scaling schedule.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"A boolean value that specifies if a scaling schedule can influence autoscaler recommendations. If set to true, then a scaling schedule has no effect.","description_kind":"plain","optional":true},"duration_sec":{"type":"number","description":"The duration of time intervals (in seconds) for which this scaling schedule will be running. The minimum allowed value is 300.","description_kind":"plain","required":true},"min_required_replicas":{"type":"number","description":"Minimum number of VM instances that autoscaler will recommend in time intervals starting according to schedule.","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"schedule":{"type":"string","description":"The start timestamps of time intervals when this scaling schedule should provide a scaling signal. This field uses the extended cron format (with an optional year field).","description_kind":"plain","required":true},"time_zone":{"type":"string","description":"The time zone to be used when interpreting the schedule. The value of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database.","description_kind":"plain","optional":true}},"description":"Scaling schedules defined for an autoscaler. Multiple schedules can be set on an autoscaler and they can overlap.","description_kind":"plain"}}},"description":"The configuration parameters for the autoscaling algorithm. You can\ndefine one or more of the policies for an autoscaler: cpuUtilization,\ncustomMetricUtilizations, and loadBalancingUtilization.\n\nIf none of these are specified, the default will be to autoscale based\non cpuUtilization to 0.6 or 60%.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_backend_bucket":{"version":0,"block":{"attributes":{"bucket_name":{"type":"string","description":"Cloud Storage bucket name.","description_kind":"plain","required":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"custom_response_headers":{"type":["list","string"],"description":"Headers that the HTTP/S load balancer should add to proxied responses.","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional textual description of the resource; provided by the\nclient when the resource is created.","description_kind":"plain","optional":true},"edge_security_policy":{"type":"string","description":"The security policy associated with this backend bucket.","description_kind":"plain","optional":true},"enable_cdn":{"type":"bool","description":"If true, enable Cloud CDN for this BackendBucket.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the\nlast character, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"cdn_policy":{"nesting_mode":"list","block":{"attributes":{"cache_mode":{"type":"string","description":"Specifies the cache setting for all responses from this backend.\nThe possible values are: USE_ORIGIN_HEADERS, FORCE_CACHE_ALL and CACHE_ALL_STATIC Possible values: [\"USE_ORIGIN_HEADERS\", \"FORCE_CACHE_ALL\", \"CACHE_ALL_STATIC\"]","description_kind":"plain","optional":true,"computed":true},"client_ttl":{"type":"number","description":"Specifies the maximum allowed TTL for cached content served by this origin.","description_kind":"plain","optional":true,"computed":true},"default_ttl":{"type":"number","description":"Specifies the default TTL for cached content served by this origin for responses\nthat do not have an existing valid TTL (max-age or s-max-age).","description_kind":"plain","optional":true,"computed":true},"max_ttl":{"type":"number","description":"Specifies the maximum allowed TTL for cached content served by this origin.","description_kind":"plain","optional":true,"computed":true},"negative_caching":{"type":"bool","description":"Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects.","description_kind":"plain","optional":true,"computed":true},"serve_while_stale":{"type":"number","description":"Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache.","description_kind":"plain","optional":true,"computed":true},"signed_url_cache_max_age_sec":{"type":"number","description":"Maximum number of seconds the response to a signed URL request will\nbe considered fresh. After this time period,\nthe response will be revalidated before being served.\nWhen serving responses to signed URL requests,\nCloud CDN will internally behave as though\nall responses from this backend had a \"Cache-Control: public,\nmax-age=[TTL]\" header, regardless of any existing Cache-Control\nheader. The actual headers served in responses will not be altered.","description_kind":"plain","optional":true}},"block_types":{"negative_caching_policy":{"nesting_mode":"list","block":{"attributes":{"code":{"type":"number","description":"The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 308, 404, 405, 410, 421, 451 and 501\ncan be specified as values, and you cannot specify a status code more than once.","description_kind":"plain","optional":true},"ttl":{"type":"number","description":"The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s\n(30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.","description_kind":"plain","optional":true}},"description":"Sets a cache TTL for the specified HTTP status code. negativeCaching must be enabled to configure negativeCachingPolicy.\nOmitting the policy and leaving negativeCaching enabled will use Cloud CDN's default cache TTLs.","description_kind":"plain"}}},"description":"Cloud CDN configuration for this Backend Bucket.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_backend_bucket_signed_url_key":{"version":0,"block":{"attributes":{"backend_bucket":{"type":"string","description":"The backend bucket this signed URL key belongs.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_value":{"type":"string","description":"128-bit key value used for signing the URL. The key value must be a\nvalid RFC 4648 Section 5 base64url encoded string.","description_kind":"plain","required":true,"sensitive":true},"name":{"type":"string","description":"Name of the signed URL key.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_backend_service":{"version":1,"block":{"attributes":{"affinity_cookie_ttl_sec":{"type":"number","description":"Lifetime of cookies in seconds if session_affinity is\nGENERATED_COOKIE. If set to 0, the cookie is non-persistent and lasts\nonly until the end of the browser session (or equivalent). The\nmaximum allowed value for TTL is one day.\n\nWhen the load balancing scheme is INTERNAL, this field is not used.","description_kind":"plain","optional":true},"connection_draining_timeout_sec":{"type":"number","description":"Time for which instance will be drained (not accept new\nconnections, but still work to finish started).","description_kind":"plain","optional":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"custom_request_headers":{"type":["set","string"],"description":"Headers that the HTTP/S load balancer should add to proxied\nrequests.","description_kind":"plain","optional":true},"custom_response_headers":{"type":["set","string"],"description":"Headers that the HTTP/S load balancer should add to proxied\nresponses.","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"enable_cdn":{"type":"bool","description":"If true, enable Cloud CDN for this BackendService.","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource. A hash of the contents stored in this\nobject. This field is used in optimistic locking.","description_kind":"plain","computed":true},"health_checks":{"type":["set","string"],"description":"The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource\nfor health checking this BackendService. Currently at most one health\ncheck can be specified.\n\nA health check must be specified unless the backend service uses an internet\nor serverless NEG as a backend.\n\nFor internal load balancing, a URL to a HealthCheck resource must be specified instead.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"load_balancing_scheme":{"type":"string","description":"Indicates whether the backend service will be used with internal or\nexternal load balancing. A backend service created for one type of\nload balancing cannot be used with the other. For more information, refer to\n[Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service). Default value: \"EXTERNAL\" Possible values: [\"EXTERNAL\", \"INTERNAL_SELF_MANAGED\", \"EXTERNAL_MANAGED\"]","description_kind":"plain","optional":true},"locality_lb_policy":{"type":"string","description":"The load balancing algorithm used within the scope of the locality.\nThe possible values are:\n\n* 'ROUND_ROBIN': This is a simple policy in which each healthy backend\n is selected in round robin order.\n\n* 'LEAST_REQUEST': An O(1) algorithm which selects two random healthy\n hosts and picks the host which has fewer active requests.\n\n* 'RING_HASH': The ring/modulo hash load balancer implements consistent\n hashing to backends. The algorithm has the property that the\n addition/removal of a host from a set of N hosts only affects\n 1/N of the requests.\n\n* 'RANDOM': The load balancer selects a random healthy host.\n\n* 'ORIGINAL_DESTINATION': Backend host is selected based on the client\n connection metadata, i.e., connections are opened\n to the same address as the destination address of\n the incoming connection before the connection\n was redirected to the load balancer.\n\n* 'MAGLEV': used as a drop in replacement for the ring hash load balancer.\n Maglev is not as stable as ring hash but has faster table lookup\n build times and host selection times. For more information about\n Maglev, refer to https://ai.google/research/pubs/pub44824\n\n\nThis field is applicable to either:\n\n* A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2,\n and loadBalancingScheme set to INTERNAL_MANAGED.\n* A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED.\n\n\nIf session_affinity is not NONE, and this field is not set to MAGLEV or RING_HASH,\nsession affinity settings will not take effect.\n\nOnly ROUND_ROBIN and RING_HASH are supported when the backend service is referenced\nby a URL map that is bound to target gRPC proxy that has validate_for_proxyless\nfield set to true. Possible values: [\"ROUND_ROBIN\", \"LEAST_REQUEST\", \"RING_HASH\", \"RANDOM\", \"ORIGINAL_DESTINATION\", \"MAGLEV\"]","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"port_name":{"type":"string","description":"Name of backend port. The same name should appear in the instance\ngroups referenced by this service. Required when the load balancing\nscheme is EXTERNAL.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description":"The protocol this BackendService uses to communicate with backends.\nThe default is HTTP. **NOTE**: HTTP2 is only valid for beta HTTP/2 load balancer\ntypes and may result in errors if used with the GA API. Possible values: [\"HTTP\", \"HTTPS\", \"HTTP2\", \"TCP\", \"SSL\", \"GRPC\"]","description_kind":"plain","optional":true,"computed":true},"security_policy":{"type":"string","description":"The security policy associated with this backend service.","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"session_affinity":{"type":"string","description":"Type of session affinity to use. The default is NONE. Session affinity is\nnot applicable if the protocol is UDP. Possible values: [\"NONE\", \"CLIENT_IP\", \"CLIENT_IP_PORT_PROTO\", \"CLIENT_IP_PROTO\", \"GENERATED_COOKIE\", \"HEADER_FIELD\", \"HTTP_COOKIE\"]","description_kind":"plain","optional":true,"computed":true},"timeout_sec":{"type":"number","description":"How many seconds to wait for the backend before considering it a\nfailed request. Default is 30 seconds. Valid range is [1, 86400].","description_kind":"plain","optional":true,"computed":true}},"block_types":{"backend":{"nesting_mode":"set","block":{"attributes":{"balancing_mode":{"type":"string","description":"Specifies the balancing mode for this backend.\n\nFor global HTTP(S) or TCP/SSL load balancing, the default is\nUTILIZATION. Valid values are UTILIZATION, RATE (for HTTP(S))\nand CONNECTION (for TCP/SSL). Default value: \"UTILIZATION\" Possible values: [\"UTILIZATION\", \"RATE\", \"CONNECTION\"]","description_kind":"plain","optional":true},"capacity_scaler":{"type":"number","description":"A multiplier applied to the group's maximum servicing capacity\n(based on UTILIZATION, RATE or CONNECTION).\n\nDefault value is 1, which means the group will serve up to 100%\nof its configured capacity (depending on balancingMode). A\nsetting of 0 means the group is completely drained, offering\n0% of its available Capacity. Valid range is [0.0,1.0].","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource.\nProvide this property when you create the resource.","description_kind":"plain","optional":true},"group":{"type":"string","description":"The fully-qualified URL of an Instance Group or Network Endpoint\nGroup resource. In case of instance group this defines the list\nof instances that serve traffic. Member virtual machine\ninstances from each instance group must live in the same zone as\nthe instance group itself. No two backends in a backend service\nare allowed to use same Instance Group resource.\n\nFor Network Endpoint Groups this defines list of endpoints. All\nendpoints of Network Endpoint Group must be hosted on instances\nlocated in the same zone as the Network Endpoint Group.\n\nBackend services cannot mix Instance Group and\nNetwork Endpoint Group backends.\n\nNote that you must specify an Instance Group or Network Endpoint\nGroup resource using the fully-qualified URL, rather than a\npartial URL.","description_kind":"plain","required":true},"max_connections":{"type":"number","description":"The max number of simultaneous connections for the group. Can\nbe used with either CONNECTION or UTILIZATION balancing modes.\n\nFor CONNECTION mode, either maxConnections or one\nof maxConnectionsPerInstance or maxConnectionsPerEndpoint,\nas appropriate for group type, must be set.","description_kind":"plain","optional":true,"computed":true},"max_connections_per_endpoint":{"type":"number","description":"The max number of simultaneous connections that a single backend\nnetwork endpoint can handle. This is used to calculate the\ncapacity of the group. Can be used in either CONNECTION or\nUTILIZATION balancing modes.\n\nFor CONNECTION mode, either\nmaxConnections or maxConnectionsPerEndpoint must be set.","description_kind":"plain","optional":true,"computed":true},"max_connections_per_instance":{"type":"number","description":"The max number of simultaneous connections that a single\nbackend instance can handle. This is used to calculate the\ncapacity of the group. Can be used in either CONNECTION or\nUTILIZATION balancing modes.\n\nFor CONNECTION mode, either maxConnections or\nmaxConnectionsPerInstance must be set.","description_kind":"plain","optional":true,"computed":true},"max_rate":{"type":"number","description":"The max requests per second (RPS) of the group.\n\nCan be used with either RATE or UTILIZATION balancing modes,\nbut required if RATE mode. For RATE mode, either maxRate or one\nof maxRatePerInstance or maxRatePerEndpoint, as appropriate for\ngroup type, must be set.","description_kind":"plain","optional":true,"computed":true},"max_rate_per_endpoint":{"type":"number","description":"The max requests per second (RPS) that a single backend network\nendpoint can handle. This is used to calculate the capacity of\nthe group. Can be used in either balancing mode. For RATE mode,\neither maxRate or maxRatePerEndpoint must be set.","description_kind":"plain","optional":true,"computed":true},"max_rate_per_instance":{"type":"number","description":"The max requests per second (RPS) that a single backend\ninstance can handle. This is used to calculate the capacity of\nthe group. Can be used in either balancing mode. For RATE mode,\neither maxRate or maxRatePerInstance must be set.","description_kind":"plain","optional":true,"computed":true},"max_utilization":{"type":"number","description":"Used when balancingMode is UTILIZATION. This ratio defines the\nCPU utilization target for the group. Valid range is [0.0, 1.0].","description_kind":"plain","optional":true,"computed":true}},"description":"The set of backends that serve this BackendService.","description_kind":"plain"}},"cdn_policy":{"nesting_mode":"list","block":{"attributes":{"cache_mode":{"type":"string","description":"Specifies the cache setting for all responses from this backend.\nThe possible values are: USE_ORIGIN_HEADERS, FORCE_CACHE_ALL and CACHE_ALL_STATIC Possible values: [\"USE_ORIGIN_HEADERS\", \"FORCE_CACHE_ALL\", \"CACHE_ALL_STATIC\"]","description_kind":"plain","optional":true,"computed":true},"client_ttl":{"type":"number","description":"Specifies the maximum allowed TTL for cached content served by this origin.","description_kind":"plain","optional":true,"computed":true},"default_ttl":{"type":"number","description":"Specifies the default TTL for cached content served by this origin for responses\nthat do not have an existing valid TTL (max-age or s-max-age).","description_kind":"plain","optional":true,"computed":true},"max_ttl":{"type":"number","description":"Specifies the maximum allowed TTL for cached content served by this origin.","description_kind":"plain","optional":true,"computed":true},"negative_caching":{"type":"bool","description":"Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects.","description_kind":"plain","optional":true,"computed":true},"serve_while_stale":{"type":"number","description":"Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache.","description_kind":"plain","optional":true,"computed":true},"signed_url_cache_max_age_sec":{"type":"number","description":"Maximum number of seconds the response to a signed URL request\nwill be considered fresh, defaults to 1hr (3600s). After this\ntime period, the response will be revalidated before\nbeing served.\n\nWhen serving responses to signed URL requests, Cloud CDN will\ninternally behave as though all responses from this backend had a\n\"Cache-Control: public, max-age=[TTL]\" header, regardless of any\nexisting Cache-Control header. The actual headers served in\nresponses will not be altered.","description_kind":"plain","optional":true}},"block_types":{"cache_key_policy":{"nesting_mode":"list","block":{"attributes":{"include_host":{"type":"bool","description":"If true requests to different hosts will be cached separately.","description_kind":"plain","optional":true},"include_protocol":{"type":"bool","description":"If true, http and https requests will be cached separately.","description_kind":"plain","optional":true},"include_query_string":{"type":"bool","description":"If true, include query string parameters in the cache key\naccording to query_string_whitelist and\nquery_string_blacklist. If neither is set, the entire query\nstring will be included.\n\nIf false, the query string will be excluded from the cache\nkey entirely.","description_kind":"plain","optional":true},"query_string_blacklist":{"type":["set","string"],"description":"Names of query string parameters to exclude in cache keys.\n\nAll other parameters will be included. Either specify\nquery_string_whitelist or query_string_blacklist, not both.\n'\u0026' and '=' will be percent encoded and not treated as\ndelimiters.","description_kind":"plain","optional":true},"query_string_whitelist":{"type":["set","string"],"description":"Names of query string parameters to include in cache keys.\n\nAll other parameters will be excluded. Either specify\nquery_string_whitelist or query_string_blacklist, not both.\n'\u0026' and '=' will be percent encoded and not treated as\ndelimiters.","description_kind":"plain","optional":true}},"description":"The CacheKeyPolicy for this CdnPolicy.","description_kind":"plain"},"max_items":1},"negative_caching_policy":{"nesting_mode":"list","block":{"attributes":{"code":{"type":"number","description":"The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 308, 404, 405, 410, 421, 451 and 501\ncan be specified as values, and you cannot specify a status code more than once.","description_kind":"plain","optional":true},"ttl":{"type":"number","description":"The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s\n(30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.","description_kind":"plain","optional":true}},"description":"Sets a cache TTL for the specified HTTP status code. negativeCaching must be enabled to configure negativeCachingPolicy.\nOmitting the policy and leaving negativeCaching enabled will use Cloud CDN's default cache TTLs.","description_kind":"plain"}}},"description":"Cloud CDN configuration for this BackendService.","description_kind":"plain"},"max_items":1},"circuit_breakers":{"nesting_mode":"list","block":{"attributes":{"max_connections":{"type":"number","description":"The maximum number of connections to the backend cluster.\nDefaults to 1024.","description_kind":"plain","optional":true},"max_pending_requests":{"type":"number","description":"The maximum number of pending requests to the backend cluster.\nDefaults to 1024.","description_kind":"plain","optional":true},"max_requests":{"type":"number","description":"The maximum number of parallel requests to the backend cluster.\nDefaults to 1024.","description_kind":"plain","optional":true},"max_requests_per_connection":{"type":"number","description":"Maximum requests for a single backend connection. This parameter\nis respected by both the HTTP/1.1 and HTTP/2 implementations. If\nnot specified, there is no limit. Setting this parameter to 1\nwill effectively disable keep alive.","description_kind":"plain","optional":true},"max_retries":{"type":"number","description":"The maximum number of parallel retries to the backend cluster.\nDefaults to 3.","description_kind":"plain","optional":true}},"description":"Settings controlling the volume of connections to a backend service. This field\nis applicable only when the load_balancing_scheme is set to INTERNAL_SELF_MANAGED.","description_kind":"plain"},"max_items":1},"consistent_hash":{"nesting_mode":"list","block":{"attributes":{"http_header_name":{"type":"string","description":"The hash based on the value of the specified header field.\nThis field is applicable if the sessionAffinity is set to HEADER_FIELD.","description_kind":"plain","optional":true},"minimum_ring_size":{"type":"number","description":"The minimum number of virtual nodes to use for the hash ring.\nLarger ring sizes result in more granular load\ndistributions. If the number of hosts in the load balancing pool\nis larger than the ring size, each host will be assigned a single\nvirtual node.\nDefaults to 1024.","description_kind":"plain","optional":true}},"block_types":{"http_cookie":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the cookie.","description_kind":"plain","optional":true},"path":{"type":"string","description":"Path to set for the cookie.","description_kind":"plain","optional":true}},"block_types":{"ttl":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"number","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.","description_kind":"plain","required":true}},"description":"Lifetime of the cookie.","description_kind":"plain"},"max_items":1}},"description":"Hash is based on HTTP Cookie. This field describes a HTTP cookie\nthat will be used as the hash key for the consistent hash load\nbalancer. If the cookie is not present, it will be generated.\nThis field is applicable if the sessionAffinity is set to HTTP_COOKIE.","description_kind":"plain"},"max_items":1}},"description":"Consistent Hash-based load balancing can be used to provide soft session\naffinity based on HTTP headers, cookies or other properties. This load balancing\npolicy is applicable only for HTTP connections. The affinity to a particular\ndestination host will be lost when one or more hosts are added/removed from the\ndestination service. This field specifies parameters that control consistent\nhashing. This field only applies if the load_balancing_scheme is set to\nINTERNAL_SELF_MANAGED. This field is only applicable when locality_lb_policy is\nset to MAGLEV or RING_HASH.","description_kind":"plain"},"max_items":1},"iap":{"nesting_mode":"list","block":{"attributes":{"oauth2_client_id":{"type":"string","description":"OAuth2 Client ID for IAP","description_kind":"plain","required":true},"oauth2_client_secret":{"type":"string","description":"OAuth2 Client Secret for IAP","description_kind":"plain","required":true,"sensitive":true},"oauth2_client_secret_sha256":{"type":"string","description":"OAuth2 Client Secret SHA-256 for IAP","description_kind":"plain","computed":true,"sensitive":true}},"description":"Settings for enabling Cloud Identity Aware Proxy","description_kind":"plain"},"max_items":1},"log_config":{"nesting_mode":"list","block":{"attributes":{"enable":{"type":"bool","description":"Whether to enable logging for the load balancer traffic served by this backend service.","description_kind":"plain","optional":true},"sample_rate":{"type":"number","description":"This field can only be specified if logging is enabled for this backend service. The value of\nthe field must be in [0, 1]. This configures the sampling rate of requests to the load balancer\nwhere 1.0 means all logged requests are reported and 0.0 means no logged requests are reported.\nThe default value is 1.0.","description_kind":"plain","optional":true}},"description":"This field denotes the logging options for the load balancer traffic served by this backend service.\nIf logging is enabled, logs will be exported to Stackdriver.","description_kind":"plain"},"max_items":1},"outlier_detection":{"nesting_mode":"list","block":{"attributes":{"consecutive_errors":{"type":"number","description":"Number of errors before a host is ejected from the connection pool. When the\nbackend host is accessed over HTTP, a 5xx return code qualifies as an error.\nDefaults to 5.","description_kind":"plain","optional":true},"consecutive_gateway_failure":{"type":"number","description":"The number of consecutive gateway failures (502, 503, 504 status or connection\nerrors that are mapped to one of those status codes) before a consecutive\ngateway failure ejection occurs. Defaults to 5.","description_kind":"plain","optional":true},"enforcing_consecutive_errors":{"type":"number","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through consecutive 5xx. This setting can be used to disable\nejection or to ramp it up slowly. Defaults to 100.","description_kind":"plain","optional":true},"enforcing_consecutive_gateway_failure":{"type":"number","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through consecutive gateway failures. This setting can be\nused to disable ejection or to ramp it up slowly. Defaults to 0.","description_kind":"plain","optional":true},"enforcing_success_rate":{"type":"number","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through success rate statistics. This setting can be used to\ndisable ejection or to ramp it up slowly. Defaults to 100.","description_kind":"plain","optional":true},"max_ejection_percent":{"type":"number","description":"Maximum percentage of hosts in the load balancing pool for the backend service\nthat can be ejected. Defaults to 10%.","description_kind":"plain","optional":true},"success_rate_minimum_hosts":{"type":"number","description":"The number of hosts in a cluster that must have enough request volume to detect\nsuccess rate outliers. If the number of hosts is less than this setting, outlier\ndetection via success rate statistics is not performed for any host in the\ncluster. Defaults to 5.","description_kind":"plain","optional":true},"success_rate_request_volume":{"type":"number","description":"The minimum number of total requests that must be collected in one interval (as\ndefined by the interval duration above) to include this host in success rate\nbased outlier detection. If the volume is lower than this setting, outlier\ndetection via success rate statistics is not performed for that host. Defaults\nto 100.","description_kind":"plain","optional":true},"success_rate_stdev_factor":{"type":"number","description":"This factor is used to determine the ejection threshold for success rate outlier\nejection. The ejection threshold is the difference between the mean success\nrate, and the product of this factor and the standard deviation of the mean\nsuccess rate: mean - (stdev * success_rate_stdev_factor). This factor is divided\nby a thousand to get a double. That is, if the desired factor is 1.9, the\nruntime value should be 1900. Defaults to 1900.","description_kind":"plain","optional":true}},"block_types":{"base_ejection_time":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"number","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"The base time that a host is ejected for. The real time is equal to the base\ntime multiplied by the number of times the host has been ejected. Defaults to\n30000ms or 30s.","description_kind":"plain"},"max_items":1},"interval":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"number","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Time interval between ejection sweep analysis. This can result in both new\nejections as well as hosts being returned to service. Defaults to 10 seconds.","description_kind":"plain"},"max_items":1}},"description":"Settings controlling eviction of unhealthy hosts from the load balancing pool.\nThis field is applicable only when the load_balancing_scheme is set\nto INTERNAL_SELF_MANAGED.","description_kind":"plain"},"max_items":1},"security_settings":{"nesting_mode":"list","block":{"attributes":{"client_tls_policy":{"type":"string","description":"ClientTlsPolicy is a resource that specifies how a client should authenticate\nconnections to backends of a service. This resource itself does not affect\nconfiguration unless it is attached to a backend service resource.","description_kind":"plain","required":true},"subject_alt_names":{"type":["list","string"],"description":"A list of alternate names to verify the subject identity in the certificate.\nIf specified, the client will verify that the server certificate's subject\nalt name matches one of the specified values.","description_kind":"plain","required":true}},"description":"The security settings that apply to this backend service. This field is applicable to either\na regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and\nload_balancing_scheme set to INTERNAL_MANAGED; or a global backend service with the\nload_balancing_scheme set to INTERNAL_SELF_MANAGED.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_backend_service_signed_url_key":{"version":0,"block":{"attributes":{"backend_service":{"type":"string","description":"The backend service this signed URL key belongs.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_value":{"type":"string","description":"128-bit key value used for signing the URL. The key value must be a\nvalid RFC 4648 Section 5 base64url encoded string.","description_kind":"plain","required":true,"sensitive":true},"name":{"type":"string","description":"Name of the signed URL key.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_disk":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image":{"type":"string","description":"The image from which to initialize this disk. This can be\none of: the image's 'self_link', 'projects/{project}/global/images/{image}',\n'projects/{project}/global/images/family/{family}', 'global/images/{image}',\n'global/images/family/{family}', 'family/{family}', '{project}/{family}',\n'{project}/{image}', '{family}', or '{image}'. If referred by family, the\nimages names must include the family name. If they don't, use the\n[google_compute_image data source](/docs/providers/google/d/compute_image.html).\nFor instance, the image 'centos-6-v20180104' includes its family name 'centos-6'.\nThese images can be referred by family name here.","description_kind":"plain","optional":true},"label_fingerprint":{"type":"string","description":"The fingerprint used for optimistic locking of this resource. Used\ninternally during updates.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Labels to apply to this disk. A list of key-\u003evalue pairs.","description_kind":"plain","optional":true},"last_attach_timestamp":{"type":"string","description":"Last attach timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"last_detach_timestamp":{"type":"string","description":"Last detach timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"physical_block_size_bytes":{"type":"number","description":"Physical block size of the persistent disk, in bytes. If not present\nin a request, a default value is used. Currently supported sizes\nare 4096 and 16384, other sizes may be added in the future.\nIf an unsupported value is requested, the error message will list\nthe supported values for the caller's project.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"provisioned_iops":{"type":"number","description":"Indicates how many IOPS must be provisioned for the disk.","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description":"Size of the persistent disk, specified in GB. You can specify this\nfield when creating a persistent disk using the 'image' or\n'snapshot' parameter, or specify it alone to create an empty\npersistent disk.\n\nIf you specify this field along with 'image' or 'snapshot',\nthe value must not be less than the size of the image\nor the size of the snapshot.\n\n~\u003e**NOTE** If you change the size, Terraform updates the disk size\nif upsizing is detected but recreates the disk if downsizing is requested.\nYou can add 'lifecycle.prevent_destroy' in the config to prevent destroying\nand recreating.","description_kind":"plain","optional":true,"computed":true},"snapshot":{"type":"string","description":"The source snapshot used to create this disk. You can provide this as\na partial or full URL to the resource. If the snapshot is in another\nproject than this disk, you must supply a full URL. For example, the\nfollowing are valid values:\n\n* 'https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot'\n* 'projects/project/global/snapshots/snapshot'\n* 'global/snapshots/snapshot'\n* 'snapshot'","description_kind":"plain","optional":true},"source_image_id":{"type":"string","description":"The ID value of the image used to create this disk. This value\nidentifies the exact image that was used to create this persistent\ndisk. For example, if you created the persistent disk from an image\nthat was later deleted and recreated under the same name, the source\nimage ID would identify the exact version of the image that was used.","description_kind":"plain","computed":true},"source_snapshot_id":{"type":"string","description":"The unique ID of the snapshot used to create this disk. This value\nidentifies the exact snapshot that was used to create this persistent\ndisk. For example, if you created the persistent disk from a snapshot\nthat was later deleted and recreated under the same name, the source\nsnapshot ID would identify the exact version of the snapshot that was\nused.","description_kind":"plain","computed":true},"type":{"type":"string","description":"URL of the disk type resource describing which disk type to use to\ncreate the disk. Provide this when creating the disk.","description_kind":"plain","optional":true},"users":{"type":["list","string"],"description":"Links to the users of the disk (attached instances) in form:\nproject/zones/zone/instances/instance","description_kind":"plain","computed":true},"zone":{"type":"string","description":"A reference to the zone where the disk resides.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"disk_encryption_key":{"nesting_mode":"list","block":{"attributes":{"kms_key_self_link":{"type":"string","description":"The self link of the encryption key used to encrypt the disk. Also called KmsKeyName\nin the cloud console. Your project's Compute Engine System service account\n('service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com') must have\n'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this feature.\nSee https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys","description_kind":"plain","optional":true},"kms_key_service_account":{"type":"string","description":"The service account used for the encryption request for the given KMS key.\nIf absent, the Compute Engine Service Agent service account is used.","description_kind":"plain","optional":true},"raw_key":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.","description_kind":"plain","optional":true,"sensitive":true},"sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.","description_kind":"plain","computed":true}},"description":"Encrypts the disk using a customer-supplied encryption key.\n\nAfter you encrypt a disk with a customer-supplied key, you must\nprovide the same key if you use the disk later (e.g. to create a disk\nsnapshot or an image, or to attach the disk to a virtual machine).\n\nCustomer-supplied encryption keys do not protect access to metadata of\nthe disk.\n\nIf you do not provide an encryption key when creating the disk, then\nthe disk will be encrypted using an automatically generated key and\nyou do not need to provide a key to use the disk later.","description_kind":"plain"},"max_items":1},"source_image_encryption_key":{"nesting_mode":"list","block":{"attributes":{"kms_key_self_link":{"type":"string","description":"The self link of the encryption key used to encrypt the disk. Also called KmsKeyName\nin the cloud console. Your project's Compute Engine System service account\n('service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com') must have\n'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this feature.\nSee https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys","description_kind":"plain","optional":true},"kms_key_service_account":{"type":"string","description":"The service account used for the encryption request for the given KMS key.\nIf absent, the Compute Engine Service Agent service account is used.","description_kind":"plain","optional":true},"raw_key":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.","description_kind":"plain","optional":true},"sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.","description_kind":"plain","computed":true}},"description":"The customer-supplied encryption key of the source image. Required if\nthe source image is protected by a customer-supplied encryption key.","description_kind":"plain"},"max_items":1},"source_snapshot_encryption_key":{"nesting_mode":"list","block":{"attributes":{"kms_key_self_link":{"type":"string","description":"The self link of the encryption key used to encrypt the disk. Also called KmsKeyName\nin the cloud console. Your project's Compute Engine System service account\n('service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com') must have\n'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this feature.\nSee https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys","description_kind":"plain","optional":true},"kms_key_service_account":{"type":"string","description":"The service account used for the encryption request for the given KMS key.\nIf absent, the Compute Engine Service Agent service account is used.","description_kind":"plain","optional":true},"raw_key":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.","description_kind":"plain","optional":true},"sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.","description_kind":"plain","computed":true}},"description":"The customer-supplied encryption key of the source snapshot. Required\nif the source snapshot is protected by a customer-supplied encryption\nkey.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_disk_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_compute_disk_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_compute_disk_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_compute_disk_resource_policy_attachment":{"version":0,"block":{"attributes":{"disk":{"type":"string","description":"The name of the disk in which the resource policies are attached to.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource policy to be attached to the disk for scheduling snapshot\ncreation. Do not specify the self link.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"A reference to the zone where the disk resides.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_external_vpn_gateway":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"redundancy_type":{"type":"string","description":"Indicates the redundancy type of this external VPN gateway Possible values: [\"FOUR_IPS_REDUNDANCY\", \"SINGLE_IP_INTERNALLY_REDUNDANT\", \"TWO_IPS_REDUNDANCY\"]","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"interface":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"number","description":"The numeric ID for this interface. Allowed values are based on the redundancy type\nof this external VPN gateway\n* '0 - SINGLE_IP_INTERNALLY_REDUNDANT'\n* '0, 1 - TWO_IPS_REDUNDANCY'\n* '0, 1, 2, 3 - FOUR_IPS_REDUNDANCY'","description_kind":"plain","optional":true},"ip_address":{"type":"string","description":"IP address of the interface in the external VPN gateway.\nOnly IPv4 is supported. This IP address can be either from\nyour on-premise gateway or another Cloud provider's VPN gateway,\nit cannot be an IP address from Google Compute Engine.","description_kind":"plain","optional":true}},"description":"A list of interfaces on this external VPN gateway.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_firewall":{"version":1,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"destination_ranges":{"type":["set","string"],"description":"If destination ranges are specified, the firewall will apply only to\ntraffic that has destination IP address in these ranges. These ranges\nmust be expressed in CIDR format. Only IPv4 is supported.","description_kind":"plain","optional":true,"computed":true},"direction":{"type":"string","description":"Direction of traffic to which this firewall applies; default is\nINGRESS. Note: For INGRESS traffic, it is NOT supported to specify\ndestinationRanges; For EGRESS traffic, it is NOT supported to specify\n'source_ranges' OR 'source_tags'. For INGRESS traffic, one of 'source_ranges',\n'source_tags' or 'source_service_accounts' is required. Possible values: [\"INGRESS\", \"EGRESS\"]","description_kind":"plain","optional":true,"computed":true},"disabled":{"type":"bool","description":"Denotes whether the firewall rule is disabled, i.e not applied to the\nnetwork it is associated with. When set to true, the firewall rule is\nnot enforced and the network behaves as if it did not exist. If this\nis unspecified, the firewall rule will be enabled.","description_kind":"plain","optional":true},"enable_logging":{"type":"bool","description":"This field denotes whether to enable logging for a particular firewall rule. If logging is enabled, logs will be exported to Stackdriver.","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"The name or self_link of the network to attach this firewall to.","description_kind":"plain","required":true},"priority":{"type":"number","description":"Priority for this rule. This is an integer between 0 and 65535, both\ninclusive. When not specified, the value assumed is 1000. Relative\npriorities determine precedence of conflicting rules. Lower value of\npriority implies higher precedence (eg, a rule with priority 0 has\nhigher precedence than a rule with priority 1). DENY rules take\nprecedence over ALLOW rules having equal priority.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"source_ranges":{"type":["set","string"],"description":"If source ranges are specified, the firewall will apply only to\ntraffic that has source IP address in these ranges. These ranges must\nbe expressed in CIDR format. One or both of sourceRanges and\nsourceTags may be set. If both properties are set, the firewall will\napply to traffic that has source IP address within sourceRanges OR the\nsource IP that belongs to a tag listed in the sourceTags property. The\nconnection does not need to match both properties for the firewall to\napply. Only IPv4 is supported. For INGRESS traffic, one of 'source_ranges',\n'source_tags' or 'source_service_accounts' is required.","description_kind":"plain","optional":true},"source_service_accounts":{"type":["set","string"],"description":"If source service accounts are specified, the firewall will apply only\nto traffic originating from an instance with a service account in this\nlist. Source service accounts cannot be used to control traffic to an\ninstance's external IP address because service accounts are associated\nwith an instance, not an IP address. sourceRanges can be set at the\nsame time as sourceServiceAccounts. If both are set, the firewall will\napply to traffic that has source IP address within sourceRanges OR the\nsource IP belongs to an instance with service account listed in\nsourceServiceAccount. The connection does not need to match both\nproperties for the firewall to apply. sourceServiceAccounts cannot be\nused at the same time as sourceTags or targetTags. For INGRESS traffic,\none of 'source_ranges', 'source_tags' or 'source_service_accounts' is required.","description_kind":"plain","optional":true},"source_tags":{"type":["set","string"],"description":"If source tags are specified, the firewall will apply only to traffic\nwith source IP that belongs to a tag listed in source tags. Source\ntags cannot be used to control traffic to an instance's external IP\naddress. Because tags are associated with an instance, not an IP\naddress. One or both of sourceRanges and sourceTags may be set. If\nboth properties are set, the firewall will apply to traffic that has\nsource IP address within sourceRanges OR the source IP that belongs to\na tag listed in the sourceTags property. The connection does not need\nto match both properties for the firewall to apply. For INGRESS traffic,\none of 'source_ranges', 'source_tags' or 'source_service_accounts' is required.","description_kind":"plain","optional":true},"target_service_accounts":{"type":["set","string"],"description":"A list of service accounts indicating sets of instances located in the\nnetwork that may make network connections as specified in allowed[].\ntargetServiceAccounts cannot be used at the same time as targetTags or\nsourceTags. If neither targetServiceAccounts nor targetTags are\nspecified, the firewall rule applies to all instances on the specified\nnetwork.","description_kind":"plain","optional":true},"target_tags":{"type":["set","string"],"description":"A list of instance tags indicating sets of instances located in the\nnetwork that may make network connections as specified in allowed[].\nIf no targetTags are specified, the firewall rule applies to all\ninstances on the specified network.","description_kind":"plain","optional":true}},"block_types":{"allow":{"nesting_mode":"set","block":{"attributes":{"ports":{"type":["list","string"],"description":"An optional list of ports to which this rule applies. This field\nis only applicable for UDP or TCP protocol. Each entry must be\neither an integer or a range. If not specified, this rule\napplies to connections through any port.\n\nExample inputs include: [\"22\"], [\"80\",\"443\"], and\n[\"12345-12349\"].","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"The IP protocol to which this rule applies. The protocol type is\nrequired when creating a firewall rule. This value can either be\none of the following well known protocol strings (tcp, udp,\nicmp, esp, ah, sctp, ipip, all), or the IP protocol number.","description_kind":"plain","required":true}},"description":"The list of ALLOW rules specified by this firewall. Each rule\nspecifies a protocol and port-range tuple that describes a permitted\nconnection.","description_kind":"plain"}},"deny":{"nesting_mode":"set","block":{"attributes":{"ports":{"type":["list","string"],"description":"An optional list of ports to which this rule applies. This field\nis only applicable for UDP or TCP protocol. Each entry must be\neither an integer or a range. If not specified, this rule\napplies to connections through any port.\n\nExample inputs include: [\"22\"], [\"80\",\"443\"], and\n[\"12345-12349\"].","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"The IP protocol to which this rule applies. The protocol type is\nrequired when creating a firewall rule. This value can either be\none of the following well known protocol strings (tcp, udp,\nicmp, esp, ah, sctp, ipip, all), or the IP protocol number.","description_kind":"plain","required":true}},"description":"The list of DENY rules specified by this firewall. Each rule specifies\na protocol and port-range tuple that describes a denied connection.","description_kind":"plain"}},"log_config":{"nesting_mode":"list","block":{"attributes":{"metadata":{"type":"string","description":"This field denotes whether to include or exclude metadata for firewall logs. Possible values: [\"EXCLUDE_ALL_METADATA\", \"INCLUDE_ALL_METADATA\"]","description_kind":"plain","required":true}},"description":"This field denotes the logging options for a particular firewall rule.\nIf defined, logging is enabled, and logs will be exported to Cloud Logging.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_firewall_policy":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create the resource.","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"Fingerprint of the resource. This field is used internally during updates of this resource.","description_kind":"plain","computed":true},"firewall_policy_id":{"type":"string","description":"The unique identifier for the resource. This identifier is defined by the server.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. It is a numeric ID allocated by GCP which uniquely identifies the Firewall Policy.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The parent of the firewall policy.","description_kind":"plain","required":true},"rule_tuple_count":{"type":"number","description":"Total count of all firewall policy rule tuples. A firewall policy can not exceed a set number of tuples.","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"Server-defined URL for the resource.","description_kind":"plain","computed":true},"self_link_with_id":{"type":"string","description":"Server-defined URL for this resource with the resource id.","description_kind":"plain","computed":true},"short_name":{"type":"string","description":"User-provided name of the Organization firewall policy. The name should be unique in the organization in which the firewall policy is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_firewall_policy_association":{"version":0,"block":{"attributes":{"attachment_target":{"type":"string","description":"The target that the firewall policy is attached to.","description_kind":"plain","required":true},"firewall_policy":{"type":"string","description":"The firewall policy ID of the association.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name for an association.","description_kind":"plain","required":true},"short_name":{"type":"string","description":"The short name of the firewall policy of the association.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_firewall_policy_rule":{"version":0,"block":{"attributes":{"action":{"type":"string","description":"The Action to perform when the client connection triggers the rule. Can currently be either \"allow\" or \"deny()\" where valid values for status are 403, 404, and 502.","description_kind":"plain","required":true},"description":{"type":"string","description":"An optional description for this resource.","description_kind":"plain","optional":true},"direction":{"type":"string","description":"The direction in which this rule applies. Possible values: INGRESS, EGRESS","description_kind":"plain","required":true},"disabled":{"type":"bool","description":"Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled.","description_kind":"plain","optional":true},"enable_logging":{"type":"bool","description":"Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on \"goto_next\" rules.","description_kind":"plain","optional":true},"firewall_policy":{"type":"string","description":"The firewall policy of the resource.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kind":{"type":"string","description":"Type of the resource. Always `compute#firewallPolicyRule` for firewall policy rules","description_kind":"plain","computed":true},"priority":{"type":"number","description":"An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority.","description_kind":"plain","required":true},"rule_tuple_count":{"type":"number","description":"Calculation of the complexity of a single firewall policy rule.","description_kind":"plain","computed":true},"target_resources":{"type":["list","string"],"description":"A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get this rule. If this field is left blank, all VMs within the organization will receive the rule.","description_kind":"plain","optional":true},"target_service_accounts":{"type":["list","string"],"description":"A list of service accounts indicating the sets of instances that are applied with this rule.","description_kind":"plain","optional":true}},"block_types":{"match":{"nesting_mode":"list","block":{"attributes":{"dest_ip_ranges":{"type":["list","string"],"description":"CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256.","description_kind":"plain","optional":true},"src_ip_ranges":{"type":["list","string"],"description":"CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256.","description_kind":"plain","optional":true}},"block_types":{"layer4_configs":{"nesting_mode":"list","block":{"attributes":{"ip_protocol":{"type":"string","description":"The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number.","description_kind":"plain","required":true},"ports":{"type":["list","string"],"description":"An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``.","description_kind":"plain","optional":true}},"description":"Pairs of IP protocols and ports that the rule should match.","description_kind":"plain"},"min_items":1}},"description":"A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_forwarding_rule":{"version":0,"block":{"attributes":{"all_ports":{"type":"bool","description":"This field is used along with the `backend_service` field for internal load balancing or with the `target` field for internal TargetInstance. This field cannot be used with `port` or `portRange` fields. When the load balancing scheme is `INTERNAL` and protocol is TCP/UDP, specify this field to allow packets addressed to any ports will be forwarded to the backends configured with this forwarding rule.","description_kind":"plain","optional":true},"allow_global_access":{"type":"bool","description":"This field is used along with the `backend_service` field for internal load balancing or with the `target` field for internal TargetInstance. If the field is set to `TRUE`, clients can access ILB from all regions. Otherwise only allows access from clients in the same region as the internal load balancer.","description_kind":"plain","optional":true},"backend_service":{"type":"string","description":"This field is only used for `INTERNAL` load balancing. For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.","description_kind":"plain","optional":true},"creation_timestamp":{"type":"string","description":"[Output Only] Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"IP address that this forwarding rule serves. When a client sends traffic to this IP address, the forwarding rule directs the traffic to the target that you specify in the forwarding rule. If you don't specify a reserved IP address, an ephemeral IP address is assigned. Methods for specifying an IP address: * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in `https://www.googleapis.com/compute/v1/projects/project_id/regions/region/addresses/address-name` * Partial URL or by name, as in: * `projects/project_id/regions/region/addresses/address-name` * `regions/region/addresses/address-name` * `global/addresses/address-name` * `address-name` The loadBalancingScheme and the forwarding rule's target determine the type of IP address that you can use. For detailed information, refer to [IP address specifications](/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).","description_kind":"plain","optional":true,"computed":true},"ip_protocol":{"type":"string","description":"The IP protocol to which this rule applies. For protocol forwarding, valid options are `TCP`, `UDP`, `ESP`, `AH`, `SCTP` or `ICMP`. For Internal TCP/UDP Load Balancing, the load balancing scheme is `INTERNAL`, and one of `TCP` or `UDP` are valid. For Traffic Director, the load balancing scheme is `INTERNAL_SELF_MANAGED`, and only `TCP`is valid. For Internal HTTP(S) Load Balancing, the load balancing scheme is `INTERNAL_MANAGED`, and only `TCP` is valid. For HTTP(S), SSL Proxy, and TCP Proxy Load Balancing, the load balancing scheme is `EXTERNAL` and only `TCP` is valid. For Network TCP/UDP Load Balancing, the load balancing scheme is `EXTERNAL`, and one of `TCP` or `UDP` is valid.","description_kind":"plain","optional":true,"computed":true},"is_mirroring_collector":{"type":"bool","description":"Indicates whether or not this load balancer can be used as a collector for packet mirroring. To prevent mirroring loops, instances behind this load balancer will not have their traffic mirrored even if a `PacketMirroring` rule applies to them. This can only be set to true for load balancers that have their `loadBalancingScheme` set to `INTERNAL`.","description_kind":"plain","optional":true},"label_fingerprint":{"type":"string","description":"Used internally during label updates.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Labels to apply to this rule.","description_kind":"plain","optional":true},"load_balancing_scheme":{"type":"string","description":"Specifies the forwarding rule type.\n\n* `EXTERNAL` is used for:\n * Classic Cloud VPN gateways\n * Protocol forwarding to VMs from an external IP address\n * The following load balancers: HTTP(S), SSL Proxy, TCP Proxy, and Network TCP/UDP\n* `INTERNAL` is used for:\n * Protocol forwarding to VMs from an internal IP address\n * Internal TCP/UDP load balancers\n* `INTERNAL_MANAGED` is used for:\n * Internal HTTP(S) load balancers\n* `INTERNAL_SELF_MANAGED` is used for:\n * Traffic Director\n* `EXTERNAL_MANAGED` is used for:\n * Global external HTTP(S) load balancers \n\nFor more information about forwarding rules, refer to [Forwarding rule concepts](/load-balancing/docs/forwarding-rule-concepts). Possible values: INVALID, INTERNAL, INTERNAL_MANAGED, INTERNAL_SELF_MANAGED, EXTERNAL, EXTERNAL_MANAGED","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"This field is not used for external load balancing. For `INTERNAL` and `INTERNAL_SELF_MANAGED` load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.","description_kind":"plain","optional":true,"computed":true},"network_tier":{"type":"string","description":"This signifies the networking tier used for configuring this load balancer and can only take the following values: `PREMIUM`, `STANDARD`. For regional ForwardingRule, the valid values are `PREMIUM` and `STANDARD`. For GlobalForwardingRule, the valid value is `PREMIUM`. If this field is not specified, it is assumed to be `PREMIUM`. If `IPAddress` is specified, this value must be equal to the networkTier of the Address.","description_kind":"plain","optional":true,"computed":true},"port_range":{"type":"string","description":"When the load balancing scheme is `EXTERNAL`, `INTERNAL_SELF_MANAGED` and `INTERNAL_MANAGED`, you can specify a `port_range`. Use with a forwarding rule that points to a target proxy or a target pool. Do not use with a forwarding rule that points to a backend service. This field is used along with the `target` field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance. Applicable only when `IPProtocol` is `TCP`, `UDP`, or `SCTP`, only packets addressed to ports in the specified range will be forwarded to `target`. Forwarding rules with the same `[IPAddress, IPProtocol]` pair must have disjoint port ranges. Some types of forwarding target have constraints on the acceptable ports:\n\n* TargetHttpProxy: 80, 8080\n* TargetHttpsProxy: 443\n* TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688, 1883, 5222\n* TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688, 1883, 5222\n* TargetVpnGateway: 500, 4500\n\n@pattern: d+(?:-d+)?","description_kind":"plain","optional":true},"ports":{"type":["set","string"],"description":"This field is used along with the `backend_service` field for internal load balancing. When the load balancing scheme is `INTERNAL`, a list of ports can be configured, for example, ['80'], ['8000','9000']. Only packets addressed to these ports are forwarded to the backends configured with the forwarding rule. If the forwarding rule's loadBalancingScheme is INTERNAL, you can specify ports in one of the following ways: * A list of up to five ports, which can be non-contiguous * Keyword `ALL`, which causes the forwarding rule to forward traffic on any port of the forwarding rule's protocol. @pattern: d+(?:-d+)? For more information, refer to [Port specifications](/load-balancing/docs/forwarding-rule-concepts#port_specifications).","description_kind":"plain","optional":true},"project":{"type":"string","description":"The project this resource belongs in.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The location of this resource.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"[Output Only] Server-defined URL for the resource.","description_kind":"plain","computed":true},"service_label":{"type":"string","description":"An optional prefix to the service name for this Forwarding Rule. If specified, the prefix is the first label of the fully qualified service name. The label must be 1-63 characters long, and comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Specifically, the label must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. This field is only used for internal load balancing.","description_kind":"plain","optional":true},"service_name":{"type":"string","description":"[Output Only] The internal fully qualified service name for this Forwarding Rule. This field is only used for internal load balancing.","description_kind":"plain","computed":true},"subnetwork":{"type":"string","description":"This field is only used for `INTERNAL` load balancing. For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule. If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.","description_kind":"plain","optional":true,"computed":true},"target":{"type":"string","description":"The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For `INTERNAL_SELF_MANAGED` load balancing, only `targetHttpProxy` is valid, not `targetHttpsProxy`.","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_global_address":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The IP address or beginning of the address range represented by this\nresource. This can be supplied as an input to reserve a specific\naddress or omitted to allow GCP to choose a valid one for you.","description_kind":"plain","optional":true,"computed":true},"address_type":{"type":"string","description":"The type of the address to reserve.\n\n* EXTERNAL indicates public/external single IP address.\n* INTERNAL indicates internal IP ranges belonging to some network. Default value: \"EXTERNAL\" Possible values: [\"EXTERNAL\", \"INTERNAL\"]","description_kind":"plain","optional":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_version":{"type":"string","description":"The IP Version that will be used by this address. The default value is 'IPV4'. Possible values: [\"IPV4\", \"IPV6\"]","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"The URL of the network in which to reserve the IP range. The IP range\nmust be in RFC1918 space. The network cannot be deleted if there are\nany reserved IP ranges referring to it.\n\nThis should only be set when using an Internal address.","description_kind":"plain","optional":true},"prefix_length":{"type":"number","description":"The prefix length of the IP range. If not present, it means the\naddress field is a single IP address.\n\nThis field is not applicable to addresses with addressType=EXTERNAL,\nor addressType=INTERNAL when purpose=PRIVATE_SERVICE_CONNECT","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"purpose":{"type":"string","description":"The purpose of the resource. Possible values include:\n\n* VPC_PEERING - for peer networks\n\n* PRIVATE_SERVICE_CONNECT - for ([Beta](https://terraform.io/docs/providers/google/guides/provider_versions.html) only) Private Service Connect networks","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_global_forwarding_rule":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"IP address that this forwarding rule serves. When a client sends traffic to this IP address, the forwarding rule directs the traffic to the target that you specify in the forwarding rule. If you don't specify a reserved IP address, an ephemeral IP address is assigned. Methods for specifying an IP address: * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in `https://www.googleapis.com/compute/v1/projects/project_id/regions/region/addresses/address-name` * Partial URL or by name, as in: * `projects/project_id/regions/region/addresses/address-name` * `regions/region/addresses/address-name` * `global/addresses/address-name` * `address-name` The loadBalancingScheme and the forwarding rule's target determine the type of IP address that you can use. For detailed information, refer to [IP address specifications](/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).","description_kind":"plain","optional":true,"computed":true},"ip_protocol":{"type":"string","description":"The IP protocol to which this rule applies. For protocol forwarding, valid options are `TCP`, `UDP`, `ESP`, `AH`, `SCTP` or `ICMP`. For Internal TCP/UDP Load Balancing, the load balancing scheme is `INTERNAL`, and one of `TCP` or `UDP` are valid. For Traffic Director, the load balancing scheme is `INTERNAL_SELF_MANAGED`, and only `TCP`is valid. For Internal HTTP(S) Load Balancing, the load balancing scheme is `INTERNAL_MANAGED`, and only `TCP` is valid. For HTTP(S), SSL Proxy, and TCP Proxy Load Balancing, the load balancing scheme is `EXTERNAL` and only `TCP` is valid. For Network TCP/UDP Load Balancing, the load balancing scheme is `EXTERNAL`, and one of `TCP` or `UDP` is valid.","description_kind":"plain","optional":true,"computed":true},"ip_version":{"type":"string","description":"The IP Version that will be used by this forwarding rule. Valid options are `IPV4` or `IPV6`. This can only be specified for an external global forwarding rule. Possible values: UNSPECIFIED_VERSION, IPV4, IPV6","description_kind":"plain","optional":true},"label_fingerprint":{"type":"string","description":"Used internally during label updates.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Labels to apply to this rule.","description_kind":"plain","optional":true},"load_balancing_scheme":{"type":"string","description":"Specifies the forwarding rule type.\n\n* `EXTERNAL` is used for:\n * Classic Cloud VPN gateways\n * Protocol forwarding to VMs from an external IP address\n * The following load balancers: HTTP(S), SSL Proxy, TCP Proxy, and Network TCP/UDP\n* `INTERNAL` is used for:\n * Protocol forwarding to VMs from an internal IP address\n * Internal TCP/UDP load balancers\n* `INTERNAL_MANAGED` is used for:\n * Internal HTTP(S) load balancers\n* `INTERNAL_SELF_MANAGED` is used for:\n * Traffic Director\n* `EXTERNAL_MANAGED` is used for:\n * Global external HTTP(S) load balancers \n\nFor more information about forwarding rules, refer to [Forwarding rule concepts](/load-balancing/docs/forwarding-rule-concepts). Possible values: INVALID, INTERNAL, INTERNAL_MANAGED, INTERNAL_SELF_MANAGED, EXTERNAL, EXTERNAL_MANAGED","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"This field is not used for external load balancing. For `INTERNAL` and `INTERNAL_SELF_MANAGED` load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.","description_kind":"plain","optional":true,"computed":true},"port_range":{"type":"string","description":"When the load balancing scheme is `EXTERNAL`, `INTERNAL_SELF_MANAGED` and `INTERNAL_MANAGED`, you can specify a `port_range`. Use with a forwarding rule that points to a target proxy or a target pool. Do not use with a forwarding rule that points to a backend service. This field is used along with the `target` field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance. Applicable only when `IPProtocol` is `TCP`, `UDP`, or `SCTP`, only packets addressed to ports in the specified range will be forwarded to `target`. Forwarding rules with the same `[IPAddress, IPProtocol]` pair must have disjoint port ranges. Some types of forwarding target have constraints on the acceptable ports:\n\n* TargetHttpProxy: 80, 8080\n* TargetHttpsProxy: 443\n* TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688, 1883, 5222\n* TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688, 1883, 5222\n* TargetVpnGateway: 500, 4500\n\n@pattern: d+(?:-d+)?","description_kind":"plain","optional":true},"project":{"type":"string","description":"The project this resource belongs in.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"[Output Only] Server-defined URL for the resource.","description_kind":"plain","computed":true},"target":{"type":"string","description":"The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For `INTERNAL_SELF_MANAGED` load balancing, only `targetHttpProxy` is valid, not `targetHttpsProxy`.","description_kind":"plain","required":true}},"block_types":{"metadata_filters":{"nesting_mode":"list","block":{"attributes":{"filter_match_criteria":{"type":"string","description":"Specifies how individual `filterLabel` matches within the list of `filterLabel`s contribute towards the overall `metadataFilter` match.\n\nSupported values are:\n\n* MATCH_ANY: At least one of the `filterLabels` must have a matching label in the provided metadata.\n* MATCH_ALL: All `filterLabels` must have matching labels in the provided metadata. Possible values: NOT_SET, MATCH_ALL, MATCH_ANY","description_kind":"plain","required":true}},"block_types":{"filter_labels":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of metadata label.\n\nThe name can have a maximum length of 1024 characters and must be at least 1 character long.","description_kind":"plain","required":true},"value":{"type":"string","description":"The value of the label must match the specified value.\n\nvalue can have a maximum length of 1024 characters.","description_kind":"plain","required":true}},"description":"The list of label value pairs that must match labels in the provided metadata based on `filterMatchCriteria`\n\nThis list must not be empty and can have at the most 64 entries.","description_kind":"plain"},"min_items":1,"max_items":64}},"description":"Opaque filter criteria used by Loadbalancer to restrict routing configuration to a limited set of [xDS](https://github.com/envoyproxy/data-plane-api/blob/master/XDS_PROTOCOL.md) compliant clients. In their xDS requests to Loadbalancer, xDS clients present [node metadata](https://github.com/envoyproxy/data-plane-api/search?q=%22message+Node%22+in%3A%2Fenvoy%2Fapi%2Fv2%2Fcore%2Fbase.proto\u0026). If a match takes place, the relevant configuration is made available to those proxies. Otherwise, all the resources (e.g. `TargetHttpProxy`, `UrlMap`) referenced by the `ForwardingRule` will not be visible to those proxies.\n\nFor each `metadataFilter` in this list, if its `filterMatchCriteria` is set to MATCH_ANY, at least one of the `filterLabel`s must match the corresponding label provided in the metadata. If its `filterMatchCriteria` is set to MATCH_ALL, then all of its `filterLabel`s must match with corresponding labels provided in the metadata.\n\n`metadataFilters` specified here will be applifed before those specified in the `UrlMap` that this `ForwardingRule` references.\n\n`metadataFilters` only applies to Loadbalancers that have their loadBalancingScheme set to `INTERNAL_SELF_MANAGED`.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_global_network_endpoint":{"version":0,"block":{"attributes":{"fqdn":{"type":"string","description":"Fully qualified domain name of network endpoint.\nThis can only be specified when network_endpoint_type of the NEG is INTERNET_FQDN_PORT.","description_kind":"plain","optional":true},"global_network_endpoint_group":{"type":"string","description":"The global network endpoint group this endpoint is part of.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"IPv4 address external endpoint.","description_kind":"plain","optional":true},"port":{"type":"number","description":"Port number of the external endpoint.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_global_network_endpoint_group":{"version":0,"block":{"attributes":{"default_port":{"type":"number","description":"The default port used if the port number is not specified in the\nnetwork endpoint.","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"network_endpoint_type":{"type":"string","description":"Type of network endpoints in this network endpoint group. Possible values: [\"INTERNET_IP_PORT\", \"INTERNET_FQDN_PORT\"]","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_ha_vpn_gateway":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"The network this VPN gateway is accepting traffic for.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region this gateway should sit in.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"vpn_interfaces":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"number","description":"The numeric ID of this VPN gateway interface.","description_kind":"plain","optional":true},"interconnect_attachment":{"type":"string","description":"URL of the interconnect attachment resource. When the value\nof this field is present, the VPN Gateway will be used for\nIPsec-encrypted Cloud Interconnect; all Egress or Ingress\ntraffic for this VPN Gateway interface will go through the\nspecified interconnect attachment resource.\n\nNot currently available publicly.","description_kind":"plain","optional":true},"ip_address":{"type":"string","description":"The external IP address for this VPN gateway interface.","description_kind":"plain","computed":true}},"description":"A list of interfaces on this VPN gateway.","description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_health_check":{"version":0,"block":{"attributes":{"check_interval_sec":{"type":"number","description":"How often (in seconds) to send a health check. The default value is 5\nseconds.","description_kind":"plain","optional":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"healthy_threshold":{"type":"number","description":"A so-far unhealthy instance will be marked healthy after this many\nconsecutive successes. The default value is 2.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the\nlast character, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"timeout_sec":{"type":"number","description":"How long (in seconds) to wait before claiming failure.\nThe default value is 5 seconds. It is invalid for timeoutSec to have\ngreater value than checkIntervalSec.","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of the health check. One of HTTP, HTTPS, TCP, or SSL.","description_kind":"plain","computed":true},"unhealthy_threshold":{"type":"number","description":"A so-far healthy instance will be marked unhealthy after this many\nconsecutive failures. The default value is 2.","description_kind":"plain","optional":true}},"block_types":{"grpc_health_check":{"nesting_mode":"list","block":{"attributes":{"grpc_service_name":{"type":"string","description":"The gRPC service name for the health check.\nThe value of grpcServiceName has the following meanings by convention:\n - Empty serviceName means the overall status of all services at the backend.\n - Non-empty serviceName means the health of that gRPC service, as defined by the owner of the service.\nThe grpcServiceName can only be ASCII.","description_kind":"plain","optional":true},"port":{"type":"number","description":"The port number for the health check request.\nMust be specified if portName and portSpecification are not set\nor if port_specification is USE_FIXED_PORT. Valid values are 1 through 65535.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, gRPC health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"http2_health_check":{"nesting_mode":"list","block":{"attributes":{"host":{"type":"string","description":"The value of the host header in the HTTP2 health check request.\nIf left empty (default value), the public IP on behalf of which this health\ncheck is performed will be used.","description_kind":"plain","optional":true},"port":{"type":"number","description":"The TCP port number for the HTTP2 health check request.\nThe default value is 443.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, HTTP2 health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"request_path":{"type":"string","description":"The request path of the HTTP2 health check request.\nThe default value is /.","description_kind":"plain","optional":true},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"http_health_check":{"nesting_mode":"list","block":{"attributes":{"host":{"type":"string","description":"The value of the host header in the HTTP health check request.\nIf left empty (default value), the public IP on behalf of which this health\ncheck is performed will be used.","description_kind":"plain","optional":true},"port":{"type":"number","description":"The TCP port number for the HTTP health check request.\nThe default value is 80.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, HTTP health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"request_path":{"type":"string","description":"The request path of the HTTP health check request.\nThe default value is /.","description_kind":"plain","optional":true},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"https_health_check":{"nesting_mode":"list","block":{"attributes":{"host":{"type":"string","description":"The value of the host header in the HTTPS health check request.\nIf left empty (default value), the public IP on behalf of which this health\ncheck is performed will be used.","description_kind":"plain","optional":true},"port":{"type":"number","description":"The TCP port number for the HTTPS health check request.\nThe default value is 443.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, HTTPS health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"request_path":{"type":"string","description":"The request path of the HTTPS health check request.\nThe default value is /.","description_kind":"plain","optional":true},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"log_config":{"nesting_mode":"list","block":{"attributes":{"enable":{"type":"bool","description":"Indicates whether or not to export logs. This is false by default,\nwhich means no health check logging will be done.","description_kind":"plain","optional":true}},"description":"Configure logging on this health check.","description_kind":"plain"},"max_items":1},"ssl_health_check":{"nesting_mode":"list","block":{"attributes":{"port":{"type":"number","description":"The TCP port number for the SSL health check request.\nThe default value is 443.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, SSL health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"request":{"type":"string","description":"The application data to send once the SSL connection has been\nestablished (default value is empty). If both request and response are\nempty, the connection establishment alone will indicate health. The request\ndata can only be ASCII.","description_kind":"plain","optional":true},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"tcp_health_check":{"nesting_mode":"list","block":{"attributes":{"port":{"type":"number","description":"The TCP port number for the TCP health check request.\nThe default value is 443.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, TCP health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"request":{"type":"string","description":"The application data to send once the TCP connection has been\nestablished (default value is empty). If both request and response are\nempty, the connection establishment alone will indicate health. The request\ndata can only be ASCII.","description_kind":"plain","optional":true},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_http_health_check":{"version":0,"block":{"attributes":{"check_interval_sec":{"type":"number","description":"How often (in seconds) to send a health check. The default value is 5\nseconds.","description_kind":"plain","optional":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"healthy_threshold":{"type":"number","description":"A so-far unhealthy instance will be marked healthy after this many\nconsecutive successes. The default value is 2.","description_kind":"plain","optional":true},"host":{"type":"string","description":"The value of the host header in the HTTP health check request. If\nleft empty (default value), the public IP on behalf of which this\nhealth check is performed will be used.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the\nlast character, which cannot be a dash.","description_kind":"plain","required":true},"port":{"type":"number","description":"The TCP port number for the HTTP health check request.\nThe default value is 80.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"request_path":{"type":"string","description":"The request path of the HTTP health check request.\nThe default value is /.","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"timeout_sec":{"type":"number","description":"How long (in seconds) to wait before claiming failure.\nThe default value is 5 seconds. It is invalid for timeoutSec to have\ngreater value than checkIntervalSec.","description_kind":"plain","optional":true},"unhealthy_threshold":{"type":"number","description":"A so-far healthy instance will be marked unhealthy after this many\nconsecutive failures. The default value is 2.","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_https_health_check":{"version":0,"block":{"attributes":{"check_interval_sec":{"type":"number","description":"How often (in seconds) to send a health check. The default value is 5\nseconds.","description_kind":"plain","optional":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"healthy_threshold":{"type":"number","description":"A so-far unhealthy instance will be marked healthy after this many\nconsecutive successes. The default value is 2.","description_kind":"plain","optional":true},"host":{"type":"string","description":"The value of the host header in the HTTPS health check request. If\nleft empty (default value), the public IP on behalf of which this\nhealth check is performed will be used.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the\nlast character, which cannot be a dash.","description_kind":"plain","required":true},"port":{"type":"number","description":"The TCP port number for the HTTPS health check request.\nThe default value is 443.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"request_path":{"type":"string","description":"The request path of the HTTPS health check request.\nThe default value is /.","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"timeout_sec":{"type":"number","description":"How long (in seconds) to wait before claiming failure.\nThe default value is 5 seconds. It is invalid for timeoutSec to have\ngreater value than checkIntervalSec.","description_kind":"plain","optional":true},"unhealthy_threshold":{"type":"number","description":"A so-far healthy instance will be marked unhealthy after this many\nconsecutive failures. The default value is 2.","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_image":{"version":0,"block":{"attributes":{"archive_size_bytes":{"type":"number","description":"Size of the image tar.gz archive stored in Google Cloud Storage (in\nbytes).","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"disk_size_gb":{"type":"number","description":"Size of the image when restored onto a persistent disk (in GB).","description_kind":"plain","optional":true,"computed":true},"family":{"type":"string","description":"The name of the image family to which this image belongs. You can\ncreate disks by specifying an image family instead of a specific\nimage name. The image family always returns its latest image that is\nnot deprecated. The name of the image family must comply with\nRFC1035.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label_fingerprint":{"type":"string","description":"The fingerprint used for optimistic locking of this resource. Used\ninternally during updates.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Labels to apply to this Image.","description_kind":"plain","optional":true},"licenses":{"type":["list","string"],"description":"Any applicable license URI.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the\nlast character, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"source_disk":{"type":"string","description":"The source disk to create this image based on.\nYou must provide either this property or the\nrawDisk.source property but not both to create an image.","description_kind":"plain","optional":true},"source_image":{"type":"string","description":"URL of the source image used to create this image. In order to create an image, you must provide the full or partial\nURL of one of the following:\n\n* The selfLink URL\n* This property\n* The rawDisk.source URL\n* The sourceDisk URL","description_kind":"plain","optional":true},"source_snapshot":{"type":"string","description":"URL of the source snapshot used to create this image.\n\nIn order to create an image, you must provide the full or partial URL of one of the following:\n\n* The selfLink URL\n* This property\n* The sourceImage URL\n* The rawDisk.source URL\n* The sourceDisk URL","description_kind":"plain","optional":true}},"block_types":{"guest_os_features":{"nesting_mode":"set","block":{"attributes":{"type":{"type":"string","description":"The type of supported feature. Read [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features) to see a list of available options. Possible values: [\"MULTI_IP_SUBNET\", \"SECURE_BOOT\", \"SEV_CAPABLE\", \"UEFI_COMPATIBLE\", \"VIRTIO_SCSI_MULTIQUEUE\", \"WINDOWS\", \"GVNIC\"]","description_kind":"plain","required":true}},"description":"A list of features to enable on the guest operating system.\nApplicable only for bootable images.","description_kind":"plain"}},"raw_disk":{"nesting_mode":"list","block":{"attributes":{"container_type":{"type":"string","description":"The format used to encode and transmit the block device, which\nshould be TAR. This is just a container and transmission format\nand not a runtime format. Provided by the client when the disk\nimage is created. Default value: \"TAR\" Possible values: [\"TAR\"]","description_kind":"plain","optional":true},"sha1":{"type":"string","description":"An optional SHA1 checksum of the disk image before unpackaging.\nThis is provided by the client when the disk image is created.","description_kind":"plain","optional":true},"source":{"type":"string","description":"The full Google Cloud Storage URL where disk storage is stored\nYou must provide either this property or the sourceDisk property\nbut not both.","description_kind":"plain","required":true}},"description":"The parameters of the raw disk image.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_image_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image":{"type":"string","description_kind":"plain","required":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_compute_image_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image":{"type":"string","description_kind":"plain","required":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_compute_image_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_compute_instance":{"version":6,"block":{"attributes":{"allow_stopping_for_update":{"type":"bool","description":"If true, allows Terraform to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail.","description_kind":"plain","optional":true},"can_ip_forward":{"type":"bool","description":"Whether sending and receiving of packets with non-matching source or destination IPs is allowed.","description_kind":"plain","optional":true},"cpu_platform":{"type":"string","description":"The CPU platform used by this instance.","description_kind":"plain","computed":true},"current_status":{"type":"string","description":"Current status of the instance.","description_kind":"plain","computed":true},"deletion_protection":{"type":"bool","description":"Whether deletion protection is enabled on this instance.","description_kind":"plain","optional":true},"description":{"type":"string","description":"A brief description of the resource.","description_kind":"plain","optional":true},"desired_status":{"type":"string","description":"Desired status of the instance. Either \"RUNNING\" or \"TERMINATED\".","description_kind":"plain","optional":true},"enable_display":{"type":"bool","description":"Whether the instance has virtual displays enabled.","description_kind":"plain","optional":true},"guest_accelerator":{"type":["list",["object",{"count":"number","type":"string"}]],"description":"List of the type and count of accelerator cards attached to the instance.","description_kind":"plain","optional":true,"computed":true},"hostname":{"type":"string","description":"A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression [a-z]([-a-z0-9]*[a-z0-9]), concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"The server-assigned unique identifier of this instance.","description_kind":"plain","computed":true},"label_fingerprint":{"type":"string","description":"The unique fingerprint of the labels.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs assigned to the instance.","description_kind":"plain","optional":true},"machine_type":{"type":"string","description":"The machine type to create.","description_kind":"plain","required":true},"metadata":{"type":["map","string"],"description":"Metadata key/value pairs made available within the instance.","description_kind":"plain","optional":true},"metadata_fingerprint":{"type":"string","description":"The unique fingerprint of the metadata.","description_kind":"plain","computed":true},"metadata_startup_script":{"type":"string","description":"Metadata startup scripts made available within the instance.","description_kind":"plain","optional":true},"min_cpu_platform":{"type":"string","description":"The minimum CPU platform specified for the VM instance.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the instance. One of name or self_link must be provided.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If self_link is provided, this value is ignored. If neither self_link nor project are provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"resource_policies":{"type":["list","string"],"description":"A list of short names or self_links of resource policies to attach to the instance. Currently a max of 1 resource policy is supported.","description_kind":"plain","optional":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"The list of tags attached to the instance.","description_kind":"plain","optional":true},"tags_fingerprint":{"type":"string","description":"The unique fingerprint of the tags.","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone of the instance. If self_link is provided, this value is ignored. If neither self_link nor zone are provided, the provider zone is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"advanced_machine_features":{"nesting_mode":"list","block":{"attributes":{"enable_nested_virtualization":{"type":"bool","description":"Whether to enable nested virtualization or not.","description_kind":"plain","optional":true},"threads_per_core":{"type":"number","description":"The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.","description_kind":"plain","optional":true}},"description":"Controls for advanced machine-related behavior features.","description_kind":"plain"},"max_items":1},"attached_disk":{"nesting_mode":"list","block":{"attributes":{"device_name":{"type":"string","description":"Name with which the attached disk is accessible under /dev/disk/by-id/","description_kind":"plain","optional":true,"computed":true},"disk_encryption_key_raw":{"type":"string","description":"A 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.","description_kind":"plain","optional":true,"sensitive":true},"disk_encryption_key_sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.","description_kind":"plain","computed":true},"kms_key_self_link":{"type":"string","description":"The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.","description_kind":"plain","optional":true,"computed":true},"mode":{"type":"string","description":"Read/write mode for the disk. One of \"READ_ONLY\" or \"READ_WRITE\".","description_kind":"plain","optional":true},"source":{"type":"string","description":"The name or self_link of the disk attached to this instance.","description_kind":"plain","required":true}},"description":"List of disks attached to the instance","description_kind":"plain"}},"boot_disk":{"nesting_mode":"list","block":{"attributes":{"auto_delete":{"type":"bool","description":"Whether the disk will be auto-deleted when the instance is deleted.","description_kind":"plain","optional":true},"device_name":{"type":"string","description":"Name with which attached disk will be accessible under /dev/disk/by-id/","description_kind":"plain","optional":true,"computed":true},"disk_encryption_key_raw":{"type":"string","description":"A 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.","description_kind":"plain","optional":true,"sensitive":true},"disk_encryption_key_sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.","description_kind":"plain","computed":true},"kms_key_self_link":{"type":"string","description":"The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.","description_kind":"plain","optional":true,"computed":true},"mode":{"type":"string","description":"Read/write mode for the disk. One of \"READ_ONLY\" or \"READ_WRITE\".","description_kind":"plain","optional":true},"source":{"type":"string","description":"The name or self_link of the disk attached to this instance.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"initialize_params":{"nesting_mode":"list","block":{"attributes":{"image":{"type":"string","description":"The image from which this disk was initialised.","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs assigned to the disk.","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description":"The size of the image in gigabytes.","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"The Google Compute Engine disk type. One of pd-standard, pd-ssd or pd-balanced.","description_kind":"plain","optional":true,"computed":true}},"description":"Parameters with which a disk was created alongside the instance.","description_kind":"plain"},"max_items":1}},"description":"The boot disk for the instance.","description_kind":"plain"},"min_items":1,"max_items":1},"confidential_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_confidential_compute":{"type":"bool","description":"Defines whether the instance should have confidential compute enabled.","description_kind":"plain","required":true}},"description":"The Confidential VM config being used by the instance. on_host_maintenance has to be set to TERMINATE or this will fail to create.","description_kind":"plain"},"max_items":1},"network_interface":{"nesting_mode":"list","block":{"attributes":{"ipv6_access_type":{"type":"string","description":"One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the interface","description_kind":"plain","computed":true},"network":{"type":"string","description":"The name or self_link of the network attached to this interface.","description_kind":"plain","optional":true,"computed":true},"network_ip":{"type":"string","description":"The private IP address assigned to the instance.","description_kind":"plain","optional":true,"computed":true},"nic_type":{"type":"string","description":"The type of vNIC to be used on this interface. Possible values:GVNIC, VIRTIO_NET","description_kind":"plain","optional":true},"queue_count":{"type":"number","description":"The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It will be empty if not specified.","description_kind":"plain","optional":true},"stack_type":{"type":"string","description":"The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used.","description_kind":"plain","optional":true,"computed":true},"subnetwork":{"type":"string","description":"The name or self_link of the subnetwork attached to this interface.","description_kind":"plain","optional":true,"computed":true},"subnetwork_project":{"type":"string","description":"The project in which the subnetwork belongs.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"access_config":{"nesting_mode":"list","block":{"attributes":{"nat_ip":{"type":"string","description":"The IP address that is be 1:1 mapped to the instance's network ip.","description_kind":"plain","optional":true,"computed":true},"network_tier":{"type":"string","description":"The networking tier used for configuring this instance. One of PREMIUM or STANDARD.","description_kind":"plain","optional":true,"computed":true},"public_ptr_domain_name":{"type":"string","description":"The DNS domain name for the public PTR record.","description_kind":"plain","optional":true}},"description":"Access configurations, i.e. IPs via which this instance can be accessed via the Internet.","description_kind":"plain"}},"alias_ip_range":{"nesting_mode":"list","block":{"attributes":{"ip_cidr_range":{"type":"string","description":"The IP CIDR range represented by this alias IP range.","description_kind":"plain","required":true},"subnetwork_range_name":{"type":"string","description":"The subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range.","description_kind":"plain","optional":true}},"description":"An array of alias IP ranges for this network interface.","description_kind":"plain"}},"ipv6_access_config":{"nesting_mode":"list","block":{"attributes":{"external_ipv6":{"type":"string","description":"The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.","description_kind":"plain","computed":true},"external_ipv6_prefix_length":{"type":"string","description":"The prefix length of the external IPv6 range.","description_kind":"plain","computed":true},"network_tier":{"type":"string","description":"The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6","description_kind":"plain","required":true},"public_ptr_domain_name":{"type":"string","description":"The domain name to be used when creating DNSv6 records for the external IPv6 ranges.","description_kind":"plain","optional":true}},"description":"An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.","description_kind":"plain"}}},"description":"The networks attached to the instance.","description_kind":"plain"},"min_items":1},"reservation_affinity":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description":"The type of reservation from which this instance can consume resources.","description_kind":"plain","required":true}},"block_types":{"specific_reservation":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description":"Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify compute.googleapis.com/reservation-name as the key and specify the name of your reservation as the only value.","description_kind":"plain","required":true},"values":{"type":["list","string"],"description":"Corresponds to the label values of a reservation resource.","description_kind":"plain","required":true}},"description":"Specifies the label selector for the reservation to use.","description_kind":"plain"},"max_items":1}},"description":"Specifies the reservations that this instance can consume from.","description_kind":"plain"},"max_items":1},"scheduling":{"nesting_mode":"list","block":{"attributes":{"automatic_restart":{"type":"bool","description":"Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user).","description_kind":"plain","optional":true},"min_node_cpus":{"type":"number","description_kind":"plain","optional":true},"on_host_maintenance":{"type":"string","description":"Describes maintenance behavior for the instance. One of MIGRATE or TERMINATE,","description_kind":"plain","optional":true,"computed":true},"preemptible":{"type":"bool","description":"Whether the instance is preemptible.","description_kind":"plain","optional":true}},"block_types":{"node_affinities":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","required":true},"values":{"type":["set","string"],"description_kind":"plain","required":true}},"description":"Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems.","description_kind":"plain"}}},"description":"The scheduling strategy being used by the instance.","description_kind":"plain"},"max_items":1},"scratch_disk":{"nesting_mode":"list","block":{"attributes":{"interface":{"type":"string","description":"The disk interface used for attaching this disk. One of SCSI or NVME.","description_kind":"plain","required":true}},"description":"The scratch disks attached to the instance.","description_kind":"plain"}},"service_account":{"nesting_mode":"list","block":{"attributes":{"email":{"type":"string","description":"The service account e-mail address.","description_kind":"plain","optional":true,"computed":true},"scopes":{"type":["set","string"],"description":"A list of service scopes.","description_kind":"plain","required":true}},"description":"The service account to attach to the instance.","description_kind":"plain"},"max_items":1},"shielded_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description":"Whether integrity monitoring is enabled for the instance.","description_kind":"plain","optional":true},"enable_secure_boot":{"type":"bool","description":"Whether secure boot is enabled for the instance.","description_kind":"plain","optional":true},"enable_vtpm":{"type":"bool","description":"Whether the instance uses vTPM.","description_kind":"plain","optional":true}},"description":"The shielded vm config being used by the instance.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_instance_from_template":{"version":0,"block":{"attributes":{"allow_stopping_for_update":{"type":"bool","description":"If true, allows Terraform to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail.","description_kind":"plain","optional":true,"computed":true},"attached_disk":{"type":["list",["object",{"device_name":"string","disk_encryption_key_raw":"string","disk_encryption_key_sha256":"string","kms_key_self_link":"string","mode":"string","source":"string"}]],"description":"List of disks attached to the instance","description_kind":"plain","optional":true,"computed":true},"can_ip_forward":{"type":"bool","description":"Whether sending and receiving of packets with non-matching source or destination IPs is allowed.","description_kind":"plain","optional":true,"computed":true},"cpu_platform":{"type":"string","description":"The CPU platform used by this instance.","description_kind":"plain","computed":true},"current_status":{"type":"string","description":"Current status of the instance.","description_kind":"plain","computed":true},"deletion_protection":{"type":"bool","description":"Whether deletion protection is enabled on this instance.","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description":"A brief description of the resource.","description_kind":"plain","optional":true,"computed":true},"desired_status":{"type":"string","description":"Desired status of the instance. Either \"RUNNING\" or \"TERMINATED\".","description_kind":"plain","optional":true,"computed":true},"enable_display":{"type":"bool","description":"Whether the instance has virtual displays enabled.","description_kind":"plain","optional":true,"computed":true},"guest_accelerator":{"type":["list",["object",{"count":"number","type":"string"}]],"description":"List of the type and count of accelerator cards attached to the instance.","description_kind":"plain","optional":true,"computed":true},"hostname":{"type":"string","description":"A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression [a-z]([-a-z0-9]*[a-z0-9]), concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"The server-assigned unique identifier of this instance.","description_kind":"plain","computed":true},"label_fingerprint":{"type":"string","description":"The unique fingerprint of the labels.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs assigned to the instance.","description_kind":"plain","optional":true,"computed":true},"machine_type":{"type":"string","description":"The machine type to create.","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":["map","string"],"description":"Metadata key/value pairs made available within the instance.","description_kind":"plain","optional":true,"computed":true},"metadata_fingerprint":{"type":"string","description":"The unique fingerprint of the metadata.","description_kind":"plain","computed":true},"metadata_startup_script":{"type":"string","description":"Metadata startup scripts made available within the instance.","description_kind":"plain","optional":true,"computed":true},"min_cpu_platform":{"type":"string","description":"The minimum CPU platform specified for the VM instance.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the instance. One of name or self_link must be provided.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If self_link is provided, this value is ignored. If neither self_link nor project are provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"resource_policies":{"type":["list","string"],"description":"A list of short names or self_links of resource policies to attach to the instance. Currently a max of 1 resource policy is supported.","description_kind":"plain","optional":true,"computed":true},"scratch_disk":{"type":["list",["object",{"interface":"string"}]],"description":"The scratch disks attached to the instance.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"service_account":{"type":["list",["object",{"email":"string","scopes":["set","string"]}]],"description":"The service account to attach to the instance.","description_kind":"plain","optional":true,"computed":true},"source_instance_template":{"type":"string","description":"Name or self link of an instance template to create the instance based on.","description_kind":"plain","required":true},"tags":{"type":["set","string"],"description":"The list of tags attached to the instance.","description_kind":"plain","optional":true,"computed":true},"tags_fingerprint":{"type":"string","description":"The unique fingerprint of the tags.","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone of the instance. If self_link is provided, this value is ignored. If neither self_link nor zone are provided, the provider zone is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"advanced_machine_features":{"nesting_mode":"list","block":{"attributes":{"enable_nested_virtualization":{"type":"bool","description":"Whether to enable nested virtualization or not.","description_kind":"plain","optional":true,"computed":true},"threads_per_core":{"type":"number","description":"The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.","description_kind":"plain","optional":true,"computed":true}},"description":"Controls for advanced machine-related behavior features.","description_kind":"plain"},"max_items":1},"boot_disk":{"nesting_mode":"list","block":{"attributes":{"auto_delete":{"type":"bool","description":"Whether the disk will be auto-deleted when the instance is deleted.","description_kind":"plain","optional":true,"computed":true},"device_name":{"type":"string","description":"Name with which attached disk will be accessible under /dev/disk/by-id/","description_kind":"plain","optional":true,"computed":true},"disk_encryption_key_raw":{"type":"string","description":"A 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.","description_kind":"plain","optional":true,"computed":true,"sensitive":true},"disk_encryption_key_sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.","description_kind":"plain","computed":true},"kms_key_self_link":{"type":"string","description":"The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.","description_kind":"plain","optional":true,"computed":true},"mode":{"type":"string","description":"Read/write mode for the disk. One of \"READ_ONLY\" or \"READ_WRITE\".","description_kind":"plain","optional":true,"computed":true},"source":{"type":"string","description":"The name or self_link of the disk attached to this instance.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"initialize_params":{"nesting_mode":"list","block":{"attributes":{"image":{"type":"string","description":"The image from which this disk was initialised.","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs assigned to the disk.","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description":"The size of the image in gigabytes.","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"The Google Compute Engine disk type. One of pd-standard, pd-ssd or pd-balanced.","description_kind":"plain","optional":true,"computed":true}},"description":"Parameters with which a disk was created alongside the instance.","description_kind":"plain"},"max_items":1}},"description":"The boot disk for the instance.","description_kind":"plain"},"max_items":1},"confidential_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_confidential_compute":{"type":"bool","description":"Defines whether the instance should have confidential compute enabled.","description_kind":"plain","required":true}},"description":"The Confidential VM config being used by the instance. on_host_maintenance has to be set to TERMINATE or this will fail to create.","description_kind":"plain"},"max_items":1},"network_interface":{"nesting_mode":"list","block":{"attributes":{"access_config":{"type":["list",["object",{"nat_ip":"string","network_tier":"string","public_ptr_domain_name":"string"}]],"description":"Access configurations, i.e. IPs via which this instance can be accessed via the Internet.","description_kind":"plain","optional":true,"computed":true},"alias_ip_range":{"type":["list",["object",{"ip_cidr_range":"string","subnetwork_range_name":"string"}]],"description":"An array of alias IP ranges for this network interface.","description_kind":"plain","optional":true,"computed":true},"ipv6_access_type":{"type":"string","description":"One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the interface","description_kind":"plain","computed":true},"network":{"type":"string","description":"The name or self_link of the network attached to this interface.","description_kind":"plain","optional":true,"computed":true},"network_ip":{"type":"string","description":"The private IP address assigned to the instance.","description_kind":"plain","optional":true,"computed":true},"nic_type":{"type":"string","description":"The type of vNIC to be used on this interface. Possible values:GVNIC, VIRTIO_NET","description_kind":"plain","optional":true,"computed":true},"queue_count":{"type":"number","description":"The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It will be empty if not specified.","description_kind":"plain","optional":true,"computed":true},"stack_type":{"type":"string","description":"The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used.","description_kind":"plain","optional":true,"computed":true},"subnetwork":{"type":"string","description":"The name or self_link of the subnetwork attached to this interface.","description_kind":"plain","optional":true,"computed":true},"subnetwork_project":{"type":"string","description":"The project in which the subnetwork belongs.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"ipv6_access_config":{"nesting_mode":"list","block":{"attributes":{"external_ipv6":{"type":"string","description":"The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.","description_kind":"plain","computed":true},"external_ipv6_prefix_length":{"type":"string","description":"The prefix length of the external IPv6 range.","description_kind":"plain","computed":true},"network_tier":{"type":"string","description":"The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6","description_kind":"plain","required":true},"public_ptr_domain_name":{"type":"string","description":"The domain name to be used when creating DNSv6 records for the external IPv6 ranges.","description_kind":"plain","optional":true,"computed":true}},"description":"An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.","description_kind":"plain"}}},"description":"The networks attached to the instance.","description_kind":"plain"}},"reservation_affinity":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description":"The type of reservation from which this instance can consume resources.","description_kind":"plain","required":true}},"block_types":{"specific_reservation":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description":"Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify compute.googleapis.com/reservation-name as the key and specify the name of your reservation as the only value.","description_kind":"plain","required":true},"values":{"type":["list","string"],"description":"Corresponds to the label values of a reservation resource.","description_kind":"plain","required":true}},"description":"Specifies the label selector for the reservation to use.","description_kind":"plain"},"max_items":1}},"description":"Specifies the reservations that this instance can consume from.","description_kind":"plain"},"max_items":1},"scheduling":{"nesting_mode":"list","block":{"attributes":{"automatic_restart":{"type":"bool","description":"Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user).","description_kind":"plain","optional":true,"computed":true},"min_node_cpus":{"type":"number","description_kind":"plain","optional":true,"computed":true},"on_host_maintenance":{"type":"string","description":"Describes maintenance behavior for the instance. One of MIGRATE or TERMINATE,","description_kind":"plain","optional":true,"computed":true},"preemptible":{"type":"bool","description":"Whether the instance is preemptible.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"node_affinities":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","required":true},"values":{"type":["set","string"],"description_kind":"plain","required":true}},"description":"Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems.","description_kind":"plain"}}},"description":"The scheduling strategy being used by the instance.","description_kind":"plain"},"max_items":1},"shielded_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description":"Whether integrity monitoring is enabled for the instance.","description_kind":"plain","optional":true,"computed":true},"enable_secure_boot":{"type":"bool","description":"Whether secure boot is enabled for the instance.","description_kind":"plain","optional":true,"computed":true},"enable_vtpm":{"type":"bool","description":"Whether the instance uses vTPM.","description_kind":"plain","optional":true,"computed":true}},"description":"The shielded vm config being used by the instance.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_instance_group":{"version":2,"block":{"attributes":{"description":{"type":"string","description":"An optional textual description of the instance group.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instances":{"type":["set","string"],"description":"List of instances in the group. They should be given as self_link URLs. When adding instances they must all be in the same network and zone as the instance group.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the instance group. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens.","description_kind":"plain","required":true},"network":{"type":"string","description":"The URL of the network the instance group is in. If this is different from the network where the instances are in, the creation fails. Defaults to the network where the instances are in (if neither network nor instances is specified, this field will be blank).","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"size":{"type":"number","description":"The number of instances in the group.","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone that this instance group should be created in.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"named_port":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"The name which the port will be mapped to.","description_kind":"plain","required":true},"port":{"type":"number","description":"The port number to map the name to.","description_kind":"plain","required":true}},"description":"The named port configuration.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_instance_group_manager":{"version":0,"block":{"attributes":{"base_instance_name":{"type":"string","description":"The base instance name to use for instances in this group. The value must be a valid RFC1035 name. Supported characters are lowercase letters, numbers, and hyphens (-). Instances are named by appending a hyphen and a random four-character string to the base instance name.","description_kind":"plain","required":true},"description":{"type":"string","description":"An optional textual description of the instance group manager.","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"The fingerprint of the instance group manager.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_group":{"type":"string","description":"The full URL of the instance group created by the manager.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the instance group manager. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens.","description_kind":"plain","required":true},"operation":{"type":"string","description_kind":"plain","computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"The URL of the created resource.","description_kind":"plain","computed":true},"status":{"type":["list",["object",{"is_stable":"bool","stateful":["list",["object",{"has_stateful_config":"bool","per_instance_configs":["list",["object",{"all_effective":"bool"}]]}]],"version_target":["list",["object",{"is_reached":"bool"}]]}]],"description":"The status of this managed instance group.","description_kind":"plain","computed":true},"target_pools":{"type":["set","string"],"description":"The full URL of all target pools to which new instances in the group are added. Updating the target pools attribute does not affect existing instances.","description_kind":"plain","optional":true},"target_size":{"type":"number","description":"The target number of running instances for this managed instance group. This value should always be explicitly set unless this resource is attached to an autoscaler, in which case it should never be set. Defaults to 0.","description_kind":"plain","optional":true,"computed":true},"wait_for_instances":{"type":"bool","description":"Whether to wait for all instances to be created/updated before returning. Note that if this is set to true and the operation does not succeed, Terraform will continue trying until it times out.","description_kind":"plain","optional":true},"wait_for_instances_status":{"type":"string","description":"When used with wait_for_instances specifies the status to wait for. When STABLE is specified this resource will wait until the instances are stable before returning. When UPDATED is set, it will wait for the version target to be reached and any per instance configs to be effective as well as all instances to be stable before returning.","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone that instances in this group should be created in.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"auto_healing_policies":{"nesting_mode":"list","block":{"attributes":{"health_check":{"type":"string","description":"The health check resource that signals autohealing.","description_kind":"plain","required":true},"initial_delay_sec":{"type":"number","description":"The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. Between 0 and 3600.","description_kind":"plain","required":true}},"description":"The autohealing policies for this managed instance group. You can specify only one value.","description_kind":"plain"},"max_items":1},"named_port":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description":"The name of the port.","description_kind":"plain","required":true},"port":{"type":"number","description":"The port number.","description_kind":"plain","required":true}},"description":"The named port configuration.","description_kind":"plain"}},"stateful_disk":{"nesting_mode":"set","block":{"attributes":{"delete_rule":{"type":"string","description":"A value that prescribes what should happen to the stateful disk when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the disk when the VM is deleted, but do not delete the disk. ON_PERMANENT_INSTANCE_DELETION will delete the stateful disk when the VM is permanently deleted from the instance group. The default is NEVER.","description_kind":"plain","optional":true},"device_name":{"type":"string","description":"The device name of the disk to be attached.","description_kind":"plain","required":true}},"description":"Disks created on the instances that will be preserved on instance delete, update, etc.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"update_policy":{"nesting_mode":"list","block":{"attributes":{"max_surge_fixed":{"type":"number","description":"The maximum number of instances that can be created above the specified targetSize during the update process. Conflicts with max_surge_percent. If neither is set, defaults to 1","description_kind":"plain","optional":true,"computed":true},"max_surge_percent":{"type":"number","description":"The maximum number of instances(calculated as percentage) that can be created above the specified targetSize during the update process. Conflicts with max_surge_fixed.","description_kind":"plain","optional":true},"max_unavailable_fixed":{"type":"number","description":"The maximum number of instances that can be unavailable during the update process. Conflicts with max_unavailable_percent. If neither is set, defaults to 1.","description_kind":"plain","optional":true,"computed":true},"max_unavailable_percent":{"type":"number","description":"The maximum number of instances(calculated as percentage) that can be unavailable during the update process. Conflicts with max_unavailable_fixed.","description_kind":"plain","optional":true},"minimal_action":{"type":"string","description":"Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.","description_kind":"plain","required":true},"replacement_method":{"type":"string","description":"The instance replacement method for managed instance groups. Valid values are: \"RECREATE\", \"SUBSTITUTE\". If SUBSTITUTE (default), the group replaces VM instances with new instances that have randomly generated names. If RECREATE, instance names are preserved. You must also set max_unavailable_fixed or max_unavailable_percent to be greater than 0.","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).","description_kind":"plain","required":true}},"description":"The update policy for this managed instance group.","description_kind":"plain"},"max_items":1},"version":{"nesting_mode":"list","block":{"attributes":{"instance_template":{"type":"string","description":"The full URL to an instance template from which all new instances of this version will be created.","description_kind":"plain","required":true},"name":{"type":"string","description":"Version name.","description_kind":"plain","optional":true}},"block_types":{"target_size":{"nesting_mode":"list","block":{"attributes":{"fixed":{"type":"number","description":"The number of instances which are managed for this version. Conflicts with percent.","description_kind":"plain","optional":true},"percent":{"type":"number","description":"The number of instances (calculated as percentage) which are managed for this version. Conflicts with fixed. Note that when using percent, rounding will be in favor of explicitly set target_size values; a managed instance group with 2 instances and 2 versions, one of which has a target_size.percent of 60 will create 2 instances of that version.","description_kind":"plain","optional":true}},"description":"The number of instances calculated as a fixed number or a percentage depending on the settings.","description_kind":"plain"},"max_items":1}},"description":"Application versions managed by this instance group. Each version deals with a specific instance template, allowing canary release scenarios.","description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"google_compute_instance_group_named_port":{"version":0,"block":{"attributes":{"group":{"type":"string","description":"The name of the instance group.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name for this named port. The name must be 1-63 characters\nlong, and comply with RFC1035.","description_kind":"plain","required":true},"port":{"type":"number","description":"The port number, which can be a value between 1 and 65535.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone of the instance group.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_instance_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_name":{"type":"string","description_kind":"plain","required":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_compute_instance_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_name":{"type":"string","description_kind":"plain","required":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_compute_instance_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_name":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_compute_instance_template":{"version":1,"block":{"attributes":{"can_ip_forward":{"type":"bool","description":"Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.","description_kind":"plain","optional":true},"description":{"type":"string","description":"A brief description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_description":{"type":"string","description":"A description of the instance.","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to instances created from this template,","description_kind":"plain","optional":true},"machine_type":{"type":"string","description":"The machine type to create. To create a machine with a custom type (such as extended memory), format the value like custom-VCPUS-MEM_IN_MB like custom-6-20480 for 6 vCPU and 20GB of RAM.","description_kind":"plain","required":true},"metadata":{"type":["map","string"],"description":"Metadata key/value pairs to make available from within instances created from this template.","description_kind":"plain","optional":true},"metadata_fingerprint":{"type":"string","description":"The unique fingerprint of the metadata.","description_kind":"plain","computed":true},"metadata_startup_script":{"type":"string","description":"An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.","description_kind":"plain","optional":true},"min_cpu_platform":{"type":"string","description":"Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the instance template. If you leave this blank, Terraform will auto-generate a unique name.","description_kind":"plain","optional":true,"computed":true},"name_prefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with name.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"An instance template is a global resource that is not bound to a zone or a region. However, you can still specify some regional resources in an instance template, which restricts the template to the region where that resource resides. For example, a custom subnetwork resource is tied to a specific region. Defaults to the region of the Provider if no value is given.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"Tags to attach to the instance.","description_kind":"plain","optional":true},"tags_fingerprint":{"type":"string","description":"The unique fingerprint of the tags.","description_kind":"plain","computed":true}},"block_types":{"advanced_machine_features":{"nesting_mode":"list","block":{"attributes":{"enable_nested_virtualization":{"type":"bool","description":"Whether to enable nested virtualization or not.","description_kind":"plain","optional":true},"threads_per_core":{"type":"number","description":"The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.","description_kind":"plain","optional":true}},"description":"Controls for advanced machine-related behavior features.","description_kind":"plain"},"max_items":1},"confidential_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_confidential_compute":{"type":"bool","description":"Defines whether the instance should have confidential compute enabled.","description_kind":"plain","required":true}},"description":"The Confidential VM config being used by the instance. on_host_maintenance has to be set to TERMINATE or this will fail to create.","description_kind":"plain"},"max_items":1},"disk":{"nesting_mode":"list","block":{"attributes":{"auto_delete":{"type":"bool","description":"Whether or not the disk should be auto-deleted. This defaults to true.","description_kind":"plain","optional":true},"boot":{"type":"bool","description":"Indicates that this is a boot disk.","description_kind":"plain","optional":true,"computed":true},"device_name":{"type":"string","description":"A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk.","description_kind":"plain","optional":true,"computed":true},"disk_name":{"type":"string","description":"Name of the disk. When not provided, this defaults to the name of the instance.","description_kind":"plain","optional":true},"disk_size_gb":{"type":"number","description":"The size of the image in gigabytes. If not specified, it will inherit the size of its base image. For SCRATCH disks, the size must be exactly 375GB.","description_kind":"plain","optional":true,"computed":true},"disk_type":{"type":"string","description":"The Google Compute Engine disk type. Can be either \"pd-ssd\", \"local-ssd\", \"pd-balanced\" or \"pd-standard\".","description_kind":"plain","optional":true,"computed":true},"interface":{"type":"string","description":"Specifies the disk interface to use for attaching this disk.","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to disks,","description_kind":"plain","optional":true},"mode":{"type":"string","description":"The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If you are attaching or creating a boot disk, this must read-write mode.","description_kind":"plain","optional":true,"computed":true},"resource_policies":{"type":["list","string"],"description":"A list (short name or id) of resource policies to attach to this disk. Currently a max of 1 resource policy is supported.","description_kind":"plain","optional":true},"source":{"type":"string","description":"The name (not self_link) of the disk (such as those managed by google_compute_disk) to attach. ~\u003e Note: Either source or source_image is required when creating a new instance except for when creating a local SSD.","description_kind":"plain","optional":true},"source_image":{"type":"string","description":"The image from which to initialize this disk. This can be one of: the image's self_link, projects/{project}/global/images/{image}, projects/{project}/global/images/family/{family}, global/images/{image}, global/images/family/{family}, family/{family}, {project}/{family}, {project}/{image}, {family}, or {image}. ~\u003e Note: Either source or source_image is required when creating a new instance except for when creating a local SSD.","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"The type of Google Compute Engine disk, can be either \"SCRATCH\" or \"PERSISTENT\".","description_kind":"plain","optional":true,"computed":true}},"block_types":{"disk_encryption_key":{"nesting_mode":"list","block":{"attributes":{"kms_key_self_link":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS.","description_kind":"plain","required":true}},"description":"Encrypts or decrypts a disk using a customer-supplied encryption key.","description_kind":"plain"},"max_items":1}},"description":"Disks to attach to instances created from this template. This can be specified multiple times for multiple disks.","description_kind":"plain"},"min_items":1},"guest_accelerator":{"nesting_mode":"list","block":{"attributes":{"count":{"type":"number","description":"The number of the guest accelerator cards exposed to this instance.","description_kind":"plain","required":true},"type":{"type":"string","description":"The accelerator type resource to expose to this instance. E.g. nvidia-tesla-k80.","description_kind":"plain","required":true}},"description":"List of the type and count of accelerator cards attached to the instance.","description_kind":"plain"}},"network_interface":{"nesting_mode":"list","block":{"attributes":{"ipv6_access_type":{"type":"string","description":"One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the network_interface.","description_kind":"plain","computed":true},"network":{"type":"string","description":"The name or self_link of the network to attach this interface to. Use network attribute for Legacy or Auto subnetted networks and subnetwork for custom subnetted networks.","description_kind":"plain","optional":true,"computed":true},"network_ip":{"type":"string","description":"The private IP address to assign to the instance. If empty, the address will be automatically assigned.","description_kind":"plain","optional":true},"nic_type":{"type":"string","description":"The type of vNIC to be used on this interface. Possible values:GVNIC, VIRTIO_NET","description_kind":"plain","optional":true},"queue_count":{"type":"number","description":"The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It will be empty if not specified.","description_kind":"plain","optional":true},"stack_type":{"type":"string","description":"The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used.","description_kind":"plain","optional":true,"computed":true},"subnetwork":{"type":"string","description":"The name of the subnetwork to attach this interface to. The subnetwork must exist in the same region this instance will be created in. Either network or subnetwork must be provided.","description_kind":"plain","optional":true,"computed":true},"subnetwork_project":{"type":"string","description":"The ID of the project in which the subnetwork belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"access_config":{"nesting_mode":"list","block":{"attributes":{"nat_ip":{"type":"string","description":"The IP address that will be 1:1 mapped to the instance's network ip. If not given, one will be generated.","description_kind":"plain","optional":true,"computed":true},"network_tier":{"type":"string","description":"The networking tier used for configuring this instance template. This field can take the following values: PREMIUM or STANDARD. If this field is not specified, it is assumed to be PREMIUM.","description_kind":"plain","optional":true,"computed":true},"public_ptr_domain_name":{"type":"string","description":"The DNS domain name for the public PTR record.The DNS domain name for the public PTR record.","description_kind":"plain","computed":true}},"description":"Access configurations, i.e. IPs via which this instance can be accessed via the Internet. Omit to ensure that the instance is not accessible from the Internet (this means that ssh provisioners will not work unless you are running Terraform can send traffic to the instance's network (e.g. via tunnel or because it is running on another cloud instance on that network). This block can be repeated multiple times.","description_kind":"plain"}},"alias_ip_range":{"nesting_mode":"list","block":{"attributes":{"ip_cidr_range":{"type":"string","description":"The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. At the time of writing only a netmask (e.g. /24) may be supplied, with a CIDR format resulting in an API error.","description_kind":"plain","required":true},"subnetwork_range_name":{"type":"string","description":"The subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.","description_kind":"plain","optional":true}},"description":"An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.","description_kind":"plain"}},"ipv6_access_config":{"nesting_mode":"list","block":{"attributes":{"external_ipv6":{"type":"string","description":"The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.","description_kind":"plain","computed":true},"external_ipv6_prefix_length":{"type":"string","description":"The prefix length of the external IPv6 range.","description_kind":"plain","computed":true},"network_tier":{"type":"string","description":"The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6","description_kind":"plain","required":true},"public_ptr_domain_name":{"type":"string","description":"The domain name to be used when creating DNSv6 records for the external IPv6 ranges.","description_kind":"plain","computed":true}},"description":"An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.","description_kind":"plain"}}},"description":"Networks to attach to instances created from this template. This can be specified multiple times for multiple networks.","description_kind":"plain"}},"reservation_affinity":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description":"The type of reservation from which this instance can consume resources.","description_kind":"plain","required":true}},"block_types":{"specific_reservation":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description":"Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify compute.googleapis.com/reservation-name as the key and specify the name of your reservation as the only value.","description_kind":"plain","required":true},"values":{"type":["list","string"],"description":"Corresponds to the label values of a reservation resource.","description_kind":"plain","required":true}},"description":"Specifies the label selector for the reservation to use.","description_kind":"plain"},"max_items":1}},"description":"Specifies the reservations that this instance can consume from.","description_kind":"plain"},"max_items":1},"scheduling":{"nesting_mode":"list","block":{"attributes":{"automatic_restart":{"type":"bool","description":"Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). This defaults to true.","description_kind":"plain","optional":true},"min_node_cpus":{"type":"number","description":"Minimum number of cpus for the instance.","description_kind":"plain","optional":true},"on_host_maintenance":{"type":"string","description":"Defines the maintenance behavior for this instance.","description_kind":"plain","optional":true,"computed":true},"preemptible":{"type":"bool","description":"Allows instance to be preempted. This defaults to false.","description_kind":"plain","optional":true}},"block_types":{"node_affinities":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","required":true},"values":{"type":["set","string"],"description_kind":"plain","required":true}},"description":"Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems.","description_kind":"plain"}}},"description":"The scheduling strategy to use.","description_kind":"plain"},"max_items":1},"service_account":{"nesting_mode":"list","block":{"attributes":{"email":{"type":"string","description":"The service account e-mail address. If not given, the default Google Compute Engine service account is used.","description_kind":"plain","optional":true,"computed":true},"scopes":{"type":["set","string"],"description":"A list of service scopes. Both OAuth2 URLs and gcloud short names are supported. To allow full access to all Cloud APIs, use the cloud-platform scope.","description_kind":"plain","required":true}},"description":"Service account to attach to the instance.","description_kind":"plain"},"max_items":1},"shielded_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description":"Compare the most recent boot measurements to the integrity policy baseline and return a pair of pass/fail results depending on whether they match or not. Defaults to true.","description_kind":"plain","optional":true},"enable_secure_boot":{"type":"bool","description":"Verify the digital signature of all boot components, and halt the boot process if signature verification fails. Defaults to false.","description_kind":"plain","optional":true},"enable_vtpm":{"type":"bool","description":"Use a virtualized trusted platform module, which is a specialized computer chip you can use to encrypt objects like keys and certificates. Defaults to true.","description_kind":"plain","optional":true}},"description":"Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Note: shielded_instance_config can only be used with boot images with shielded vm support.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_interconnect_attachment":{"version":0,"block":{"attributes":{"admin_enabled":{"type":"bool","description":"Whether the VLAN attachment is enabled or disabled. When using\nPARTNER type this will Pre-Activate the interconnect attachment","description_kind":"plain","optional":true},"bandwidth":{"type":"string","description":"Provisioned bandwidth capacity for the interconnect attachment.\nFor attachments of type DEDICATED, the user can set the bandwidth.\nFor attachments of type PARTNER, the Google Partner that is operating the interconnect must set the bandwidth.\nOutput only for PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED,\nDefaults to BPS_10G Possible values: [\"BPS_50M\", \"BPS_100M\", \"BPS_200M\", \"BPS_300M\", \"BPS_400M\", \"BPS_500M\", \"BPS_1G\", \"BPS_2G\", \"BPS_5G\", \"BPS_10G\", \"BPS_20G\", \"BPS_50G\"]","description_kind":"plain","optional":true,"computed":true},"candidate_subnets":{"type":["list","string"],"description":"Up to 16 candidate prefixes that can be used to restrict the allocation\nof cloudRouterIpAddress and customerRouterIpAddress for this attachment.\nAll prefixes must be within link-local address space (169.254.0.0/16)\nand must be /29 or shorter (/28, /27, etc). Google will attempt to select\nan unused /29 from the supplied candidate prefix(es). The request will\nfail if all possible /29s are in use on Google's edge. If not supplied,\nGoogle will randomly select an unused /29 from all of link-local space.","description_kind":"plain","optional":true},"cloud_router_ip_address":{"type":"string","description":"IPv4 address + prefix length to be configured on Cloud Router\nInterface for this interconnect attachment.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"customer_router_ip_address":{"type":"string","description":"IPv4 address + prefix length to be configured on the customer\nrouter subinterface for this interconnect attachment.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"edge_availability_domain":{"type":"string","description":"Desired availability domain for the attachment. Only available for type\nPARTNER, at creation time. For improved reliability, customers should\nconfigure a pair of attachments with one per availability domain. The\nselected availability domain will be provided to the Partner via the\npairing key so that the provisioned circuit will lie in the specified\ndomain. If not specified, the value will default to AVAILABILITY_DOMAIN_ANY.","description_kind":"plain","optional":true,"computed":true},"encryption":{"type":"string","description":"Indicates the user-supplied encryption option of this interconnect\nattachment:\n\nNONE is the default value, which means that the attachment carries\nunencrypted traffic. VMs can send traffic to, or receive traffic\nfrom, this type of attachment.\n\nIPSEC indicates that the attachment carries only traffic encrypted by\nan IPsec device such as an HA VPN gateway. VMs cannot directly send\ntraffic to, or receive traffic from, such an attachment. To use\nIPsec-encrypted Cloud Interconnect create the attachment using this\noption.\n\nNot currently available publicly. Default value: \"NONE\" Possible values: [\"NONE\", \"IPSEC\"]","description_kind":"plain","optional":true},"google_reference_id":{"type":"string","description":"Google reference ID, to be used when raising support tickets with\nGoogle or otherwise to debug backend connectivity issues.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"interconnect":{"type":"string","description":"URL of the underlying Interconnect object that this attachment's\ntraffic will traverse through. Required if type is DEDICATED, must not\nbe set if type is PARTNER.","description_kind":"plain","optional":true},"ipsec_internal_addresses":{"type":["list","string"],"description":"URL of addresses that have been reserved for the interconnect\nattachment, Used only for interconnect attachment that has the\nencryption option as IPSEC.\n\nThe addresses must be RFC 1918 IP address ranges. When creating HA\nVPN gateway over the interconnect attachment, if the attachment is\nconfigured to use an RFC 1918 IP address, then the VPN gateway's IP\naddress will be allocated from the IP address range specified\nhere.\n\nFor example, if the HA VPN gateway's interface 0 is paired to this\ninterconnect attachment, then an RFC 1918 IP address for the VPN\ngateway interface 0 will be allocated from the IP address specified\nfor this interconnect attachment.\n\nIf this field is not specified for interconnect attachment that has\nencryption option as IPSEC, later on when creating HA VPN gateway on\nthis interconnect attachment, the HA VPN gateway's IP address will be\nallocated from regional external IP address pool.","description_kind":"plain","optional":true},"mtu":{"type":"string","description":"Maximum Transmission Unit (MTU), in bytes, of packets passing through\nthis interconnect attachment. Currently, only 1440 and 1500 are allowed. If not specified, the value will default to 1440.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is created. The\nname must be 1-63 characters long, and comply with RFC1035. Specifically, the\nname must be 1-63 characters long and match the regular expression\n'[a-z]([-a-z0-9]*[a-z0-9])?' which means the first character must be a\nlowercase letter, and all following characters must be a dash, lowercase\nletter, or digit, except the last character, which cannot be a dash.","description_kind":"plain","required":true},"pairing_key":{"type":"string","description":"[Output only for type PARTNER. Not present for DEDICATED]. The opaque\nidentifier of an PARTNER attachment used to initiate provisioning with\na selected partner. Of the form \"XXXXX/region/domain\"","description_kind":"plain","computed":true},"partner_asn":{"type":"string","description":"[Output only for type PARTNER. Not present for DEDICATED]. Optional\nBGP ASN for the router that should be supplied by a layer 3 Partner if\nthey configured BGP on behalf of the customer.","description_kind":"plain","computed":true},"private_interconnect_info":{"type":["list",["object",{"tag8021q":"number"}]],"description":"Information specific to an InterconnectAttachment. This property\nis populated if the interconnect that this is attached to is of type DEDICATED.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region where the regional interconnect attachment resides.","description_kind":"plain","optional":true,"computed":true},"router":{"type":"string","description":"URL of the cloud router to be used for dynamic routing. This router must be in\nthe same region as this InterconnectAttachment. The InterconnectAttachment will\nautomatically connect the Interconnect to the network \u0026 region within which the\nCloud Router is configured.","description_kind":"plain","required":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"state":{"type":"string","description":"[Output Only] The current state of this attachment's functionality.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of InterconnectAttachment you wish to create. Defaults to\nDEDICATED. Possible values: [\"DEDICATED\", \"PARTNER\", \"PARTNER_PROVIDER\"]","description_kind":"plain","optional":true,"computed":true},"vlan_tag8021q":{"type":"number","description":"The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4094. When\nusing PARTNER type this will be managed upstream.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_managed_ssl_certificate":{"version":0,"block":{"attributes":{"certificate_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","optional":true,"computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"expire_time":{"type":"string","description":"Expire time of the certificate.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.\n\n\nThese are in the same namespace as the managed SSL certificates.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"subject_alternative_names":{"type":["list","string"],"description":"Domains associated with the certificate via Subject Alternative Name.","description_kind":"plain","computed":true},"type":{"type":"string","description":"Enum field whose value is always 'MANAGED' - used to signal to the API\nwhich type this is. Default value: \"MANAGED\" Possible values: [\"MANAGED\"]","description_kind":"plain","optional":true}},"block_types":{"managed":{"nesting_mode":"list","block":{"attributes":{"domains":{"type":["list","string"],"description":"Domains for which a managed SSL certificate will be valid. Currently,\nthere can be up to 100 domains in this list.","description_kind":"plain","required":true}},"description":"Properties relevant to a managed certificate. These will be used if the\ncertificate is managed (as indicated by a value of 'MANAGED' in 'type').","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_network":{"version":0,"block":{"attributes":{"auto_create_subnetworks":{"type":"bool","description":"When set to 'true', the network is created in \"auto subnet mode\" and\nit will create a subnet for each region automatically across the\n'10.128.0.0/9' address range.\n\nWhen set to 'false', the network is created in \"custom subnet mode\" so\nthe user can explicitly connect subnetwork resources.","description_kind":"plain","optional":true},"delete_default_routes_on_create":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource. The resource must be\nrecreated to modify this field.","description_kind":"plain","optional":true},"gateway_ipv4":{"type":"string","description":"The gateway address for default routing out of the network. This value\nis selected by GCP.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mtu":{"type":"number","description":"Maximum Transmission Unit in bytes. The minimum value for this field is 1460\nand the maximum value is 1500 bytes.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"routing_mode":{"type":"string","description":"The network-wide routing mode to use. If set to 'REGIONAL', this\nnetwork's cloud routers will only advertise routes with subnetworks\nof this network in the same region as the router. If set to 'GLOBAL',\nthis network's cloud routers will advertise routes with all\nsubnetworks of this network, across regions. Possible values: [\"REGIONAL\", \"GLOBAL\"]","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_network_endpoint":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description":"The name for a specific VM instance that the IP address belongs to.\nThis is required for network endpoints of type GCE_VM_IP_PORT.\nThe instance must be in the same zone of network endpoint group.","description_kind":"plain","optional":true},"ip_address":{"type":"string","description":"IPv4 address of network endpoint. The IP address must belong\nto a VM in GCE (either the primary IP or as part of an aliased IP\nrange).","description_kind":"plain","required":true},"network_endpoint_group":{"type":"string","description":"The network endpoint group this endpoint is part of.","description_kind":"plain","required":true},"port":{"type":"number","description":"Port number of network endpoint.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"Zone where the containing network endpoint group is located.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_network_endpoint_group":{"version":0,"block":{"attributes":{"default_port":{"type":"number","description":"The default port used if the port number is not specified in the\nnetwork endpoint.","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"The network to which all network endpoints in the NEG belong.\nUses \"default\" project network if unspecified.","description_kind":"plain","required":true},"network_endpoint_type":{"type":"string","description":"Type of network endpoints in this network endpoint group.\nNON_GCP_PRIVATE_IP_PORT is used for hybrid connectivity network\nendpoint groups (see https://cloud.google.com/load-balancing/docs/hybrid).\nNote that NON_GCP_PRIVATE_IP_PORT can only be used with Backend Services\nthat 1) have the following load balancing schemes: EXTERNAL, EXTERNAL_MANAGED,\nINTERNAL_MANAGED, and INTERNAL_SELF_MANAGED and 2) support the RATE or\nCONNECTION balancing modes. Default value: \"GCE_VM_IP_PORT\" Possible values: [\"GCE_VM_IP_PORT\", \"NON_GCP_PRIVATE_IP_PORT\"]","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description":"Number of network endpoints in the network endpoint group.","description_kind":"plain","computed":true},"subnetwork":{"type":"string","description":"Optional subnetwork to which all network endpoints in the NEG belong.","description_kind":"plain","optional":true},"zone":{"type":"string","description":"Zone where the network endpoint group is located.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_network_peering":{"version":0,"block":{"attributes":{"export_custom_routes":{"type":"bool","description":"Whether to export the custom routes to the peer network. Defaults to false.","description_kind":"plain","optional":true},"export_subnet_routes_with_public_ip":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"import_custom_routes":{"type":"bool","description":"Whether to export the custom routes from the peer network. Defaults to false.","description_kind":"plain","optional":true},"import_subnet_routes_with_public_ip":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the peering.","description_kind":"plain","required":true},"network":{"type":"string","description":"The primary network of the peering.","description_kind":"plain","required":true},"peer_network":{"type":"string","description":"The peer network in the peering. The peer network may belong to a different project.","description_kind":"plain","required":true},"state":{"type":"string","description":"State for the peering, either ACTIVE or INACTIVE. The peering is ACTIVE when there's a matching configuration in the peer network.","description_kind":"plain","computed":true},"state_details":{"type":"string","description":"Details about the current state of the peering.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_network_peering_routes_config":{"version":0,"block":{"attributes":{"export_custom_routes":{"type":"bool","description":"Whether to export the custom routes to the peer network.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"import_custom_routes":{"type":"bool","description":"Whether to import the custom routes to the peer network.","description_kind":"plain","required":true},"network":{"type":"string","description":"The name of the primary network for the peering.","description_kind":"plain","required":true},"peering":{"type":"string","description":"Name of the peering.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_node_group":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional textual description of the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"initial_size":{"type":"number","description":"The initial number of nodes in the node group. One of 'initial_size' or 'size' must be specified.","description_kind":"plain","optional":true},"maintenance_policy":{"type":"string","description":"Specifies how to handle instances when a node in the group undergoes maintenance. Set to one of: DEFAULT, RESTART_IN_PLACE, or MIGRATE_WITHIN_NODE_GROUP. The default value is DEFAULT.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the resource.","description_kind":"plain","optional":true},"node_template":{"type":"string","description":"The URL of the node template to which this node group belongs.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description":"The total number of nodes in the node group. One of 'initial_size' or 'size' must be specified.","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"Zone where this node group is located","description_kind":"plain","optional":true,"computed":true}},"block_types":{"autoscaling_policy":{"nesting_mode":"list","block":{"attributes":{"max_nodes":{"type":"number","description":"Maximum size of the node group. Set to a value less than or equal\nto 100 and greater than or equal to min-nodes.","description_kind":"plain","optional":true,"computed":true},"min_nodes":{"type":"number","description":"Minimum size of the node group. Must be less\nthan or equal to max-nodes. The default value is 0.","description_kind":"plain","optional":true,"computed":true},"mode":{"type":"string","description":"The autoscaling mode. Set to one of the following:\n - OFF: Disables the autoscaler.\n - ON: Enables scaling in and scaling out.\n - ONLY_SCALE_OUT: Enables only scaling out.\n You must use this mode if your node groups are configured to\n restart their hosted VMs on minimal servers. Possible values: [\"OFF\", \"ON\", \"ONLY_SCALE_OUT\"]","description_kind":"plain","optional":true,"computed":true}},"description":"If you use sole-tenant nodes for your workloads, you can use the node\ngroup autoscaler to automatically manage the sizes of your node groups.","description_kind":"plain"},"max_items":1},"maintenance_window":{"nesting_mode":"list","block":{"attributes":{"start_time":{"type":"string","description":"instances.start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid.","description_kind":"plain","required":true}},"description":"contains properties for the timeframe of maintenance","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_node_template":{"version":0,"block":{"attributes":{"cpu_overcommit_type":{"type":"string","description":"CPU overcommit. Default value: \"NONE\" Possible values: [\"ENABLED\", \"NONE\"]","description_kind":"plain","optional":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional textual description of the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource.","description_kind":"plain","optional":true},"node_affinity_labels":{"type":["map","string"],"description":"Labels to use for node affinity, which will be used in\ninstance scheduling.","description_kind":"plain","optional":true},"node_type":{"type":"string","description":"Node type to use for nodes group that are created from this template.\nOnly one of nodeTypeFlexibility and nodeType can be specified.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region where nodes using the node template will be created.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"node_type_flexibility":{"nesting_mode":"list","block":{"attributes":{"cpus":{"type":"string","description":"Number of virtual CPUs to use.","description_kind":"plain","optional":true},"local_ssd":{"type":"string","description":"Use local SSD","description_kind":"plain","computed":true},"memory":{"type":"string","description":"Physical memory available to the node, defined in MB.","description_kind":"plain","optional":true}},"description":"Flexible properties for the desired node type. Node groups that\nuse this node template will create nodes of a type that matches\nthese properties. Only one of nodeTypeFlexibility and nodeType can\nbe specified.","description_kind":"plain"},"max_items":1},"server_binding":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description":"Type of server binding policy. If 'RESTART_NODE_ON_ANY_SERVER',\nnodes using this template will restart on any physical server\nfollowing a maintenance event.\n\nIf 'RESTART_NODE_ON_MINIMAL_SERVER', nodes using this template\nwill restart on the same physical server following a maintenance\nevent, instead of being live migrated to or restarted on a new\nphysical server. This option may be useful if you are using\nsoftware licenses tied to the underlying server characteristics\nsuch as physical sockets or cores, to avoid the need for\nadditional licenses when maintenance occurs. However, VMs on such\nnodes will experience outages while maintenance is applied. Possible values: [\"RESTART_NODE_ON_ANY_SERVER\", \"RESTART_NODE_ON_MINIMAL_SERVERS\"]","description_kind":"plain","required":true}},"description":"The server binding policy for nodes using this template. Determines\nwhere the nodes should restart following a maintenance event.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_packet_mirroring":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A human-readable description of the rule.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the packet mirroring rule","description_kind":"plain","required":true},"priority":{"type":"number","description":"Since only one rule can be active at a time, priority is\nused to break ties in the case of two rules that apply to\nthe same instances.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The Region in which the created address should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"collector_ilb":{"nesting_mode":"list","block":{"attributes":{"url":{"type":"string","description":"The URL of the forwarding rule.","description_kind":"plain","required":true}},"description":"The Forwarding Rule resource (of type load_balancing_scheme=INTERNAL)\nthat will be used as collector for mirrored traffic. The\nspecified forwarding rule must have is_mirroring_collector\nset to true.","description_kind":"plain"},"min_items":1,"max_items":1},"filter":{"nesting_mode":"list","block":{"attributes":{"cidr_ranges":{"type":["list","string"],"description":"IP CIDR ranges that apply as a filter on the source (ingress) or\ndestination (egress) IP in the IP header. Only IPv4 is supported.","description_kind":"plain","optional":true},"direction":{"type":"string","description":"Direction of traffic to mirror. Default value: \"BOTH\" Possible values: [\"INGRESS\", \"EGRESS\", \"BOTH\"]","description_kind":"plain","optional":true},"ip_protocols":{"type":["list","string"],"description":"Protocols that apply as a filter on mirrored traffic. Possible values: [\"tcp\", \"udp\", \"icmp\"]","description_kind":"plain","optional":true}},"description":"A filter for mirrored traffic. If unset, all traffic is mirrored.","description_kind":"plain"},"max_items":1},"mirrored_resources":{"nesting_mode":"list","block":{"attributes":{"tags":{"type":["list","string"],"description":"All instances with these tags will be mirrored.","description_kind":"plain","optional":true}},"block_types":{"instances":{"nesting_mode":"list","block":{"attributes":{"url":{"type":"string","description":"The URL of the instances where this rule should be active.","description_kind":"plain","required":true}},"description":"All the listed instances will be mirrored. Specify at most 50.","description_kind":"plain"}},"subnetworks":{"nesting_mode":"list","block":{"attributes":{"url":{"type":"string","description":"The URL of the subnetwork where this rule should be active.","description_kind":"plain","required":true}},"description":"All instances in one of these subnetworks will be mirrored.","description_kind":"plain"}}},"description":"A means of specifying which resources to mirror.","description_kind":"plain"},"min_items":1,"max_items":1},"network":{"nesting_mode":"list","block":{"attributes":{"url":{"type":"string","description":"The full self_link URL of the network where this rule is active.","description_kind":"plain","required":true}},"description":"Specifies the mirrored VPC network. Only packets in this network\nwill be mirrored. All mirrored VMs should have a NIC in the given\nnetwork. All mirrored subnetworks should belong to the given network.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_per_instance_config":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_group_manager":{"type":"string","description":"The instance group manager this instance config is part of.","description_kind":"plain","required":true},"minimal_action":{"type":"string","description_kind":"plain","optional":true},"most_disruptive_allowed_action":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name for this per-instance config and its corresponding instance.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"remove_instance_state_on_destroy":{"type":"bool","description_kind":"plain","optional":true},"zone":{"type":"string","description":"Zone where the containing instance group manager is located","description_kind":"plain","optional":true}},"block_types":{"preserved_state":{"nesting_mode":"list","block":{"attributes":{"metadata":{"type":["map","string"],"description":"Preserved metadata defined for this instance. This is a list of key-\u003evalue pairs.","description_kind":"plain","optional":true}},"block_types":{"disk":{"nesting_mode":"set","block":{"attributes":{"delete_rule":{"type":"string","description":"A value that prescribes what should happen to the stateful disk when the VM instance is deleted.\nThe available options are 'NEVER' and 'ON_PERMANENT_INSTANCE_DELETION'.\n'NEVER' - detach the disk when the VM is deleted, but do not delete the disk.\n'ON_PERMANENT_INSTANCE_DELETION' will delete the stateful disk when the VM is permanently\ndeleted from the instance group. Default value: \"NEVER\" Possible values: [\"NEVER\", \"ON_PERMANENT_INSTANCE_DELETION\"]","description_kind":"plain","optional":true},"device_name":{"type":"string","description":"A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance.","description_kind":"plain","required":true},"mode":{"type":"string","description":"The mode of the disk. Default value: \"READ_WRITE\" Possible values: [\"READ_ONLY\", \"READ_WRITE\"]","description_kind":"plain","optional":true},"source":{"type":"string","description":"The URI of an existing persistent disk to attach under the specified device-name in the format\n'projects/project-id/zones/zone/disks/disk-name'.","description_kind":"plain","required":true}},"description":"Stateful disks for the instance.","description_kind":"plain"}}},"description":"The preserved state for this instance.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_project_default_network_tier":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"network_tier":{"type":"string","description":"The default network tier to be configured for the project. This field can take the following values: PREMIUM or STANDARD.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_project_metadata":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":["map","string"],"description":"A series of key value pairs.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_project_metadata_item":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description":"The metadata key to set.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"value":{"type":"string","description":"The value to set for the given metadata key.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_autoscaler":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. The name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"URL of the region where the instance group resides.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"target":{"type":"string","description":"URL of the managed instance group that this autoscaler will scale.","description_kind":"plain","required":true}},"block_types":{"autoscaling_policy":{"nesting_mode":"list","block":{"attributes":{"cooldown_period":{"type":"number","description":"The number of seconds that the autoscaler should wait before it\nstarts collecting information from a new instance. This prevents\nthe autoscaler from collecting information when the instance is\ninitializing, during which the collected usage would not be\nreliable. The default time autoscaler waits is 60 seconds.\n\nVirtual machine initialization times might vary because of\nnumerous factors. We recommend that you test how long an\ninstance may take to initialize. To do this, create an instance\nand time the startup process.","description_kind":"plain","optional":true},"max_replicas":{"type":"number","description":"The maximum number of instances that the autoscaler can scale up\nto. This is required when creating or updating an autoscaler. The\nmaximum number of replicas should not be lower than minimal number\nof replicas.","description_kind":"plain","required":true},"min_replicas":{"type":"number","description":"The minimum number of replicas that the autoscaler can scale down\nto. This cannot be less than 0. If not provided, autoscaler will\nchoose a default value depending on maximum number of instances\nallowed.","description_kind":"plain","required":true},"mode":{"type":"string","description":"Defines operating mode for this policy. Default value: \"ON\" Possible values: [\"OFF\", \"ONLY_UP\", \"ON\"]","description_kind":"plain","optional":true}},"block_types":{"cpu_utilization":{"nesting_mode":"list","block":{"attributes":{"predictive_method":{"type":"string","description":"Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are:\n\n- NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics.\n\n- OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.","description_kind":"plain","optional":true},"target":{"type":"number","description":"The target CPU utilization that the autoscaler should maintain.\nMust be a float value in the range (0, 1]. If not specified, the\ndefault is 0.6.\n\nIf the CPU level is below the target utilization, the autoscaler\nscales down the number of instances until it reaches the minimum\nnumber of instances you specified or until the average CPU of\nyour instances reaches the target utilization.\n\nIf the average CPU is above the target utilization, the autoscaler\nscales up until it reaches the maximum number of instances you\nspecified or until the average utilization reaches the target\nutilization.","description_kind":"plain","required":true}},"description":"Defines the CPU utilization policy that allows the autoscaler to\nscale based on the average CPU utilization of a managed instance\ngroup.","description_kind":"plain"},"max_items":1},"load_balancing_utilization":{"nesting_mode":"list","block":{"attributes":{"target":{"type":"number","description":"Fraction of backend capacity utilization (set in HTTP(s) load\nbalancing configuration) that autoscaler should maintain. Must\nbe a positive float value. If not defined, the default is 0.8.","description_kind":"plain","required":true}},"description":"Configuration parameters of autoscaling based on a load balancer.","description_kind":"plain"},"max_items":1},"metric":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"The identifier (type) of the Stackdriver Monitoring metric.\nThe metric cannot have negative values.\n\nThe metric must have a value type of INT64 or DOUBLE.","description_kind":"plain","required":true},"target":{"type":"number","description":"The target value of the metric that autoscaler should\nmaintain. This must be a positive value. A utilization\nmetric scales number of virtual machines handling requests\nto increase or decrease proportionally to the metric.\n\nFor example, a good metric to use as a utilizationTarget is\nwww.googleapis.com/compute/instance/network/received_bytes_count.\nThe autoscaler will work to keep this value constant for each\nof the instances.","description_kind":"plain","optional":true},"type":{"type":"string","description":"Defines how target utilization value is expressed for a\nStackdriver Monitoring metric. Possible values: [\"GAUGE\", \"DELTA_PER_SECOND\", \"DELTA_PER_MINUTE\"]","description_kind":"plain","optional":true}},"description":"Configuration parameters of autoscaling based on a custom metric.","description_kind":"plain"}},"scale_in_control":{"nesting_mode":"list","block":{"attributes":{"time_window_sec":{"type":"number","description":"How long back autoscaling should look when computing recommendations\nto include directives regarding slower scale down, as described above.","description_kind":"plain","optional":true}},"block_types":{"max_scaled_in_replicas":{"nesting_mode":"list","block":{"attributes":{"fixed":{"type":"number","description":"Specifies a fixed number of VM instances. This must be a positive\ninteger.","description_kind":"plain","optional":true},"percent":{"type":"number","description":"Specifies a percentage of instances between 0 to 100%, inclusive.\nFor example, specify 80 for 80%.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1}},"description":"Defines scale in controls to reduce the risk of response latency\nand outages due to abrupt scale-in events","description_kind":"plain"},"max_items":1},"scaling_schedules":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"A description of a scaling schedule.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"A boolean value that specifies if a scaling schedule can influence autoscaler recommendations. If set to true, then a scaling schedule has no effect.","description_kind":"plain","optional":true},"duration_sec":{"type":"number","description":"The duration of time intervals (in seconds) for which this scaling schedule will be running. The minimum allowed value is 300.","description_kind":"plain","required":true},"min_required_replicas":{"type":"number","description":"Minimum number of VM instances that autoscaler will recommend in time intervals starting according to schedule.","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"schedule":{"type":"string","description":"The start timestamps of time intervals when this scaling schedule should provide a scaling signal. This field uses the extended cron format (with an optional year field).","description_kind":"plain","required":true},"time_zone":{"type":"string","description":"The time zone to be used when interpreting the schedule. The value of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database.","description_kind":"plain","optional":true}},"description":"Scaling schedules defined for an autoscaler. Multiple schedules can be set on an autoscaler and they can overlap.","description_kind":"plain"}}},"description":"The configuration parameters for the autoscaling algorithm. You can\ndefine one or more of the policies for an autoscaler: cpuUtilization,\ncustomMetricUtilizations, and loadBalancingUtilization.\n\nIf none of these are specified, the default will be to autoscale based\non cpuUtilization to 0.6 or 60%.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_backend_service":{"version":1,"block":{"attributes":{"affinity_cookie_ttl_sec":{"type":"number","description":"Lifetime of cookies in seconds if session_affinity is\nGENERATED_COOKIE. If set to 0, the cookie is non-persistent and lasts\nonly until the end of the browser session (or equivalent). The\nmaximum allowed value for TTL is one day.\n\nWhen the load balancing scheme is INTERNAL, this field is not used.","description_kind":"plain","optional":true},"connection_draining_timeout_sec":{"type":"number","description":"Time for which instance will be drained (not accept new\nconnections, but still work to finish started).","description_kind":"plain","optional":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"enable_cdn":{"type":"bool","description":"If true, enable Cloud CDN for this RegionBackendService.","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource. A hash of the contents stored in this\nobject. This field is used in optimistic locking.","description_kind":"plain","computed":true},"health_checks":{"type":["set","string"],"description":"The set of URLs to HealthCheck resources for health checking\nthis RegionBackendService. Currently at most one health\ncheck can be specified.\n\nA health check must be specified unless the backend service uses an internet\nor serverless NEG as a backend.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"load_balancing_scheme":{"type":"string","description":"Indicates what kind of load balancing this regional backend service\nwill be used for. A backend service created for one type of load\nbalancing cannot be used with the other(s). For more information, refer to\n[Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service). Default value: \"INTERNAL\" Possible values: [\"EXTERNAL\", \"EXTERNAL_MANAGED\", \"INTERNAL\", \"INTERNAL_MANAGED\"]","description_kind":"plain","optional":true},"locality_lb_policy":{"type":"string","description":"The load balancing algorithm used within the scope of the locality.\nThe possible values are:\n\n* 'ROUND_ROBIN': This is a simple policy in which each healthy backend\n is selected in round robin order.\n\n* 'LEAST_REQUEST': An O(1) algorithm which selects two random healthy\n hosts and picks the host which has fewer active requests.\n\n* 'RING_HASH': The ring/modulo hash load balancer implements consistent\n hashing to backends. The algorithm has the property that the\n addition/removal of a host from a set of N hosts only affects\n 1/N of the requests.\n\n* 'RANDOM': The load balancer selects a random healthy host.\n\n* 'ORIGINAL_DESTINATION': Backend host is selected based on the client\n connection metadata, i.e., connections are opened\n to the same address as the destination address of\n the incoming connection before the connection\n was redirected to the load balancer.\n\n* 'MAGLEV': used as a drop in replacement for the ring hash load balancer.\n Maglev is not as stable as ring hash but has faster table lookup\n build times and host selection times. For more information about\n Maglev, refer to https://ai.google/research/pubs/pub44824\n\n\nThis field is applicable to either:\n\n* A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2,\n and loadBalancingScheme set to INTERNAL_MANAGED.\n* A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED.\n\n\nIf session_affinity is not NONE, and this field is not set to MAGLEV or RING_HASH,\nsession affinity settings will not take effect.\n\nOnly ROUND_ROBIN and RING_HASH are supported when the backend service is referenced\nby a URL map that is bound to target gRPC proxy that has validate_for_proxyless\nfield set to true. Possible values: [\"ROUND_ROBIN\", \"LEAST_REQUEST\", \"RING_HASH\", \"RANDOM\", \"ORIGINAL_DESTINATION\", \"MAGLEV\"]","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"The URL of the network to which this backend service belongs.\nThis field can only be specified when the load balancing scheme is set to INTERNAL.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"A named port on a backend instance group representing the port for\ncommunication to the backend VMs in that group. Required when the\nloadBalancingScheme is EXTERNAL, EXTERNAL_MANAGED, INTERNAL_MANAGED, or INTERNAL_SELF_MANAGED\nand the backends are instance groups. The named port must be defined on each\nbackend instance group. This parameter has no meaning if the backends are NEGs. API sets a\ndefault of \"http\" if not given.\nMust be omitted when the loadBalancingScheme is INTERNAL (Internal TCP/UDP Load Balancing).","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description":"The protocol this RegionBackendService uses to communicate with backends.\nThe default is HTTP. **NOTE**: HTTP2 is only valid for beta HTTP/2 load balancer\ntypes and may result in errors if used with the GA API. Possible values: [\"HTTP\", \"HTTPS\", \"HTTP2\", \"SSL\", \"TCP\", \"UDP\", \"GRPC\", \"UNSPECIFIED\"]","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The Region in which the created backend service should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"session_affinity":{"type":"string","description":"Type of session affinity to use. The default is NONE. Session affinity is\nnot applicable if the protocol is UDP. Possible values: [\"NONE\", \"CLIENT_IP\", \"CLIENT_IP_PORT_PROTO\", \"CLIENT_IP_PROTO\", \"GENERATED_COOKIE\", \"HEADER_FIELD\", \"HTTP_COOKIE\", \"CLIENT_IP_NO_DESTINATION\"]","description_kind":"plain","optional":true,"computed":true},"timeout_sec":{"type":"number","description":"How many seconds to wait for the backend before considering it a\nfailed request. Default is 30 seconds. Valid range is [1, 86400].","description_kind":"plain","optional":true,"computed":true}},"block_types":{"backend":{"nesting_mode":"set","block":{"attributes":{"balancing_mode":{"type":"string","description":"Specifies the balancing mode for this backend. Default value: \"CONNECTION\" Possible values: [\"UTILIZATION\", \"RATE\", \"CONNECTION\"]","description_kind":"plain","optional":true},"capacity_scaler":{"type":"number","description":"A multiplier applied to the group's maximum servicing capacity\n(based on UTILIZATION, RATE or CONNECTION).\n\n~\u003e**NOTE**: This field cannot be set for\nINTERNAL region backend services (default loadBalancingScheme),\nbut is required for non-INTERNAL backend service. The total\ncapacity_scaler for all backends must be non-zero.\n\nA setting of 0 means the group is completely drained, offering\n0% of its available Capacity. Valid range is [0.0,1.0].","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource.\nProvide this property when you create the resource.","description_kind":"plain","optional":true},"failover":{"type":"bool","description":"This field designates whether this is a failover backend. More\nthan one failover backend can be configured for a given RegionBackendService.","description_kind":"plain","optional":true,"computed":true},"group":{"type":"string","description":"The fully-qualified URL of an Instance Group or Network Endpoint\nGroup resource. In case of instance group this defines the list\nof instances that serve traffic. Member virtual machine\ninstances from each instance group must live in the same zone as\nthe instance group itself. No two backends in a backend service\nare allowed to use same Instance Group resource.\n\nFor Network Endpoint Groups this defines list of endpoints. All\nendpoints of Network Endpoint Group must be hosted on instances\nlocated in the same zone as the Network Endpoint Group.\n\nBackend services cannot mix Instance Group and\nNetwork Endpoint Group backends.\n\nWhen the 'load_balancing_scheme' is INTERNAL, only instance groups\nare supported.\n\nNote that you must specify an Instance Group or Network Endpoint\nGroup resource using the fully-qualified URL, rather than a\npartial URL.","description_kind":"plain","required":true},"max_connections":{"type":"number","description":"The max number of simultaneous connections for the group. Can\nbe used with either CONNECTION or UTILIZATION balancing modes.\nCannot be set for INTERNAL backend services.\n\nFor CONNECTION mode, either maxConnections or one\nof maxConnectionsPerInstance or maxConnectionsPerEndpoint,\nas appropriate for group type, must be set.","description_kind":"plain","optional":true},"max_connections_per_endpoint":{"type":"number","description":"The max number of simultaneous connections that a single backend\nnetwork endpoint can handle. Cannot be set\nfor INTERNAL backend services.\n\nThis is used to calculate the capacity of the group. Can be\nused in either CONNECTION or UTILIZATION balancing modes. For\nCONNECTION mode, either maxConnections or\nmaxConnectionsPerEndpoint must be set.","description_kind":"plain","optional":true},"max_connections_per_instance":{"type":"number","description":"The max number of simultaneous connections that a single\nbackend instance can handle. Cannot be set for INTERNAL backend\nservices.\n\nThis is used to calculate the capacity of the group.\nCan be used in either CONNECTION or UTILIZATION balancing modes.\nFor CONNECTION mode, either maxConnections or\nmaxConnectionsPerInstance must be set.","description_kind":"plain","optional":true},"max_rate":{"type":"number","description":"The max requests per second (RPS) of the group. Cannot be set\nfor INTERNAL backend services.\n\nCan be used with either RATE or UTILIZATION balancing modes,\nbut required if RATE mode. Either maxRate or one\nof maxRatePerInstance or maxRatePerEndpoint, as appropriate for\ngroup type, must be set.","description_kind":"plain","optional":true},"max_rate_per_endpoint":{"type":"number","description":"The max requests per second (RPS) that a single backend network\nendpoint can handle. This is used to calculate the capacity of\nthe group. Can be used in either balancing mode. For RATE mode,\neither maxRate or maxRatePerEndpoint must be set. Cannot be set\nfor INTERNAL backend services.","description_kind":"plain","optional":true},"max_rate_per_instance":{"type":"number","description":"The max requests per second (RPS) that a single backend\ninstance can handle. This is used to calculate the capacity of\nthe group. Can be used in either balancing mode. For RATE mode,\neither maxRate or maxRatePerInstance must be set. Cannot be set\nfor INTERNAL backend services.","description_kind":"plain","optional":true},"max_utilization":{"type":"number","description":"Used when balancingMode is UTILIZATION. This ratio defines the\nCPU utilization target for the group. Valid range is [0.0, 1.0].\nCannot be set for INTERNAL backend services.","description_kind":"plain","optional":true}},"description":"The set of backends that serve this RegionBackendService.","description_kind":"plain"}},"cdn_policy":{"nesting_mode":"list","block":{"attributes":{"cache_mode":{"type":"string","description":"Specifies the cache setting for all responses from this backend.\nThe possible values are: USE_ORIGIN_HEADERS, FORCE_CACHE_ALL and CACHE_ALL_STATIC Possible values: [\"USE_ORIGIN_HEADERS\", \"FORCE_CACHE_ALL\", \"CACHE_ALL_STATIC\"]","description_kind":"plain","optional":true,"computed":true},"client_ttl":{"type":"number","description":"Specifies the maximum allowed TTL for cached content served by this origin.","description_kind":"plain","optional":true,"computed":true},"default_ttl":{"type":"number","description":"Specifies the default TTL for cached content served by this origin for responses\nthat do not have an existing valid TTL (max-age or s-max-age).","description_kind":"plain","optional":true,"computed":true},"max_ttl":{"type":"number","description":"Specifies the maximum allowed TTL for cached content served by this origin.","description_kind":"plain","optional":true,"computed":true},"negative_caching":{"type":"bool","description":"Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects.","description_kind":"plain","optional":true,"computed":true},"serve_while_stale":{"type":"number","description":"Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache.","description_kind":"plain","optional":true,"computed":true},"signed_url_cache_max_age_sec":{"type":"number","description":"Maximum number of seconds the response to a signed URL request\nwill be considered fresh, defaults to 1hr (3600s). After this\ntime period, the response will be revalidated before\nbeing served.\n\nWhen serving responses to signed URL requests, Cloud CDN will\ninternally behave as though all responses from this backend had a\n\"Cache-Control: public, max-age=[TTL]\" header, regardless of any\nexisting Cache-Control header. The actual headers served in\nresponses will not be altered.","description_kind":"plain","optional":true}},"block_types":{"cache_key_policy":{"nesting_mode":"list","block":{"attributes":{"include_host":{"type":"bool","description":"If true requests to different hosts will be cached separately.","description_kind":"plain","optional":true},"include_protocol":{"type":"bool","description":"If true, http and https requests will be cached separately.","description_kind":"plain","optional":true},"include_query_string":{"type":"bool","description":"If true, include query string parameters in the cache key\naccording to query_string_whitelist and\nquery_string_blacklist. If neither is set, the entire query\nstring will be included.\n\nIf false, the query string will be excluded from the cache\nkey entirely.","description_kind":"plain","optional":true},"query_string_blacklist":{"type":["set","string"],"description":"Names of query string parameters to exclude in cache keys.\n\nAll other parameters will be included. Either specify\nquery_string_whitelist or query_string_blacklist, not both.\n'\u0026' and '=' will be percent encoded and not treated as\ndelimiters.","description_kind":"plain","optional":true},"query_string_whitelist":{"type":["set","string"],"description":"Names of query string parameters to include in cache keys.\n\nAll other parameters will be excluded. Either specify\nquery_string_whitelist or query_string_blacklist, not both.\n'\u0026' and '=' will be percent encoded and not treated as\ndelimiters.","description_kind":"plain","optional":true}},"description":"The CacheKeyPolicy for this CdnPolicy.","description_kind":"plain"},"max_items":1},"negative_caching_policy":{"nesting_mode":"list","block":{"attributes":{"code":{"type":"number","description":"The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 308, 404, 405, 410, 421, 451 and 501\ncan be specified as values, and you cannot specify a status code more than once.","description_kind":"plain","optional":true}},"description":"Sets a cache TTL for the specified HTTP status code. negativeCaching must be enabled to configure negativeCachingPolicy.\nOmitting the policy and leaving negativeCaching enabled will use Cloud CDN's default cache TTLs.","description_kind":"plain"}}},"description":"Cloud CDN configuration for this BackendService.","description_kind":"plain"},"max_items":1},"circuit_breakers":{"nesting_mode":"list","block":{"attributes":{"max_connections":{"type":"number","description":"The maximum number of connections to the backend cluster.\nDefaults to 1024.","description_kind":"plain","optional":true},"max_pending_requests":{"type":"number","description":"The maximum number of pending requests to the backend cluster.\nDefaults to 1024.","description_kind":"plain","optional":true},"max_requests":{"type":"number","description":"The maximum number of parallel requests to the backend cluster.\nDefaults to 1024.","description_kind":"plain","optional":true},"max_requests_per_connection":{"type":"number","description":"Maximum requests for a single backend connection. This parameter\nis respected by both the HTTP/1.1 and HTTP/2 implementations. If\nnot specified, there is no limit. Setting this parameter to 1\nwill effectively disable keep alive.","description_kind":"plain","optional":true},"max_retries":{"type":"number","description":"The maximum number of parallel retries to the backend cluster.\nDefaults to 3.","description_kind":"plain","optional":true}},"description":"Settings controlling the volume of connections to a backend service. This field\nis applicable only when the 'load_balancing_scheme' is set to INTERNAL_MANAGED\nand the 'protocol' is set to HTTP, HTTPS, or HTTP2.","description_kind":"plain"},"max_items":1},"consistent_hash":{"nesting_mode":"list","block":{"attributes":{"http_header_name":{"type":"string","description":"The hash based on the value of the specified header field.\nThis field is applicable if the sessionAffinity is set to HEADER_FIELD.","description_kind":"plain","optional":true},"minimum_ring_size":{"type":"number","description":"The minimum number of virtual nodes to use for the hash ring.\nLarger ring sizes result in more granular load\ndistributions. If the number of hosts in the load balancing pool\nis larger than the ring size, each host will be assigned a single\nvirtual node.\nDefaults to 1024.","description_kind":"plain","optional":true}},"block_types":{"http_cookie":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the cookie.","description_kind":"plain","optional":true},"path":{"type":"string","description":"Path to set for the cookie.","description_kind":"plain","optional":true}},"block_types":{"ttl":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"number","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.","description_kind":"plain","required":true}},"description":"Lifetime of the cookie.","description_kind":"plain"},"max_items":1}},"description":"Hash is based on HTTP Cookie. This field describes a HTTP cookie\nthat will be used as the hash key for the consistent hash load\nbalancer. If the cookie is not present, it will be generated.\nThis field is applicable if the sessionAffinity is set to HTTP_COOKIE.","description_kind":"plain"},"max_items":1}},"description":"Consistent Hash-based load balancing can be used to provide soft session\naffinity based on HTTP headers, cookies or other properties. This load balancing\npolicy is applicable only for HTTP connections. The affinity to a particular\ndestination host will be lost when one or more hosts are added/removed from the\ndestination service. This field specifies parameters that control consistent\nhashing.\nThis field only applies when all of the following are true -\n * 'load_balancing_scheme' is set to INTERNAL_MANAGED\n * 'protocol' is set to HTTP, HTTPS, or HTTP2\n * 'locality_lb_policy' is set to MAGLEV or RING_HASH","description_kind":"plain"},"max_items":1},"failover_policy":{"nesting_mode":"list","block":{"attributes":{"disable_connection_drain_on_failover":{"type":"bool","description":"On failover or failback, this field indicates whether connection drain\nwill be honored. Setting this to true has the following effect: connections\nto the old active pool are not drained. Connections to the new active pool\nuse the timeout of 10 min (currently fixed). Setting to false has the\nfollowing effect: both old and new connections will have a drain timeout\nof 10 min.\nThis can be set to true only if the protocol is TCP.\nThe default is false.","description_kind":"plain","optional":true},"drop_traffic_if_unhealthy":{"type":"bool","description":"This option is used only when no healthy VMs are detected in the primary\nand backup instance groups. When set to true, traffic is dropped. When\nset to false, new connections are sent across all VMs in the primary group.\nThe default is false.","description_kind":"plain","optional":true},"failover_ratio":{"type":"number","description":"The value of the field must be in [0, 1]. If the ratio of the healthy\nVMs in the primary backend is at or below this number, traffic arriving\nat the load-balanced IP will be directed to the failover backend.\nIn case where 'failoverRatio' is not set or all the VMs in the backup\nbackend are unhealthy, the traffic will be directed back to the primary\nbackend in the \"force\" mode, where traffic will be spread to the healthy\nVMs with the best effort, or to all VMs when no VM is healthy.\nThis field is only used with l4 load balancing.","description_kind":"plain","optional":true}},"description":"Policy for failovers.","description_kind":"plain"},"max_items":1},"iap":{"nesting_mode":"list","block":{"attributes":{"oauth2_client_id":{"type":"string","description":"OAuth2 Client ID for IAP","description_kind":"plain","required":true},"oauth2_client_secret":{"type":"string","description":"OAuth2 Client Secret for IAP","description_kind":"plain","required":true,"sensitive":true},"oauth2_client_secret_sha256":{"type":"string","description":"OAuth2 Client Secret SHA-256 for IAP","description_kind":"plain","computed":true,"sensitive":true}},"description":"Settings for enabling Cloud Identity Aware Proxy","description_kind":"plain"},"max_items":1},"log_config":{"nesting_mode":"list","block":{"attributes":{"enable":{"type":"bool","description":"Whether to enable logging for the load balancer traffic served by this backend service.","description_kind":"plain","optional":true},"sample_rate":{"type":"number","description":"This field can only be specified if logging is enabled for this backend service. The value of\nthe field must be in [0, 1]. This configures the sampling rate of requests to the load balancer\nwhere 1.0 means all logged requests are reported and 0.0 means no logged requests are reported.\nThe default value is 1.0.","description_kind":"plain","optional":true}},"description":"This field denotes the logging options for the load balancer traffic served by this backend service.\nIf logging is enabled, logs will be exported to Stackdriver.","description_kind":"plain"},"max_items":1},"outlier_detection":{"nesting_mode":"list","block":{"attributes":{"consecutive_errors":{"type":"number","description":"Number of errors before a host is ejected from the connection pool. When the\nbackend host is accessed over HTTP, a 5xx return code qualifies as an error.\nDefaults to 5.","description_kind":"plain","optional":true},"consecutive_gateway_failure":{"type":"number","description":"The number of consecutive gateway failures (502, 503, 504 status or connection\nerrors that are mapped to one of those status codes) before a consecutive\ngateway failure ejection occurs. Defaults to 5.","description_kind":"plain","optional":true},"enforcing_consecutive_errors":{"type":"number","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through consecutive 5xx. This setting can be used to disable\nejection or to ramp it up slowly. Defaults to 100.","description_kind":"plain","optional":true},"enforcing_consecutive_gateway_failure":{"type":"number","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through consecutive gateway failures. This setting can be\nused to disable ejection or to ramp it up slowly. Defaults to 0.","description_kind":"plain","optional":true},"enforcing_success_rate":{"type":"number","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through success rate statistics. This setting can be used to\ndisable ejection or to ramp it up slowly. Defaults to 100.","description_kind":"plain","optional":true},"max_ejection_percent":{"type":"number","description":"Maximum percentage of hosts in the load balancing pool for the backend service\nthat can be ejected. Defaults to 10%.","description_kind":"plain","optional":true},"success_rate_minimum_hosts":{"type":"number","description":"The number of hosts in a cluster that must have enough request volume to detect\nsuccess rate outliers. If the number of hosts is less than this setting, outlier\ndetection via success rate statistics is not performed for any host in the\ncluster. Defaults to 5.","description_kind":"plain","optional":true},"success_rate_request_volume":{"type":"number","description":"The minimum number of total requests that must be collected in one interval (as\ndefined by the interval duration above) to include this host in success rate\nbased outlier detection. If the volume is lower than this setting, outlier\ndetection via success rate statistics is not performed for that host. Defaults\nto 100.","description_kind":"plain","optional":true},"success_rate_stdev_factor":{"type":"number","description":"This factor is used to determine the ejection threshold for success rate outlier\nejection. The ejection threshold is the difference between the mean success\nrate, and the product of this factor and the standard deviation of the mean\nsuccess rate: mean - (stdev * success_rate_stdev_factor). This factor is divided\nby a thousand to get a double. That is, if the desired factor is 1.9, the\nruntime value should be 1900. Defaults to 1900.","description_kind":"plain","optional":true}},"block_types":{"base_ejection_time":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"number","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"The base time that a host is ejected for. The real time is equal to the base\ntime multiplied by the number of times the host has been ejected. Defaults to\n30000ms or 30s.","description_kind":"plain"},"max_items":1},"interval":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"number","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Time interval between ejection sweep analysis. This can result in both new\nejections as well as hosts being returned to service. Defaults to 10 seconds.","description_kind":"plain"},"max_items":1}},"description":"Settings controlling eviction of unhealthy hosts from the load balancing pool.\nThis field is applicable only when the 'load_balancing_scheme' is set\nto INTERNAL_MANAGED and the 'protocol' is set to HTTP, HTTPS, or HTTP2.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_disk":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label_fingerprint":{"type":"string","description":"The fingerprint used for optimistic locking of this resource. Used\ninternally during updates.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Labels to apply to this disk. A list of key-\u003evalue pairs.","description_kind":"plain","optional":true},"last_attach_timestamp":{"type":"string","description":"Last attach timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"last_detach_timestamp":{"type":"string","description":"Last detach timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"physical_block_size_bytes":{"type":"number","description":"Physical block size of the persistent disk, in bytes. If not present\nin a request, a default value is used. Currently supported sizes\nare 4096 and 16384, other sizes may be added in the future.\nIf an unsupported value is requested, the error message will list\nthe supported values for the caller's project.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"A reference to the region where the disk resides.","description_kind":"plain","optional":true,"computed":true},"replica_zones":{"type":["list","string"],"description":"URLs of the zones where the disk should be replicated to.","description_kind":"plain","required":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description":"Size of the persistent disk, specified in GB. You can specify this\nfield when creating a persistent disk using the sourceImage or\nsourceSnapshot parameter, or specify it alone to create an empty\npersistent disk.\n\nIf you specify this field along with sourceImage or sourceSnapshot,\nthe value of sizeGb must not be less than the size of the sourceImage\nor the size of the snapshot.","description_kind":"plain","optional":true,"computed":true},"snapshot":{"type":"string","description":"The source snapshot used to create this disk. You can provide this as\na partial or full URL to the resource. For example, the following are\nvalid values:\n\n* 'https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot'\n* 'projects/project/global/snapshots/snapshot'\n* 'global/snapshots/snapshot'\n* 'snapshot'","description_kind":"plain","optional":true},"source_snapshot_id":{"type":"string","description":"The unique ID of the snapshot used to create this disk. This value\nidentifies the exact snapshot that was used to create this persistent\ndisk. For example, if you created the persistent disk from a snapshot\nthat was later deleted and recreated under the same name, the source\nsnapshot ID would identify the exact version of the snapshot that was\nused.","description_kind":"plain","computed":true},"type":{"type":"string","description":"URL of the disk type resource describing which disk type to use to\ncreate the disk. Provide this when creating the disk.","description_kind":"plain","optional":true},"users":{"type":["list","string"],"description":"Links to the users of the disk (attached instances) in form:\nproject/zones/zone/instances/instance","description_kind":"plain","computed":true}},"block_types":{"disk_encryption_key":{"nesting_mode":"list","block":{"attributes":{"raw_key":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.","description_kind":"plain","optional":true,"sensitive":true},"sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.","description_kind":"plain","computed":true}},"description":"Encrypts the disk using a customer-supplied encryption key.\n\nAfter you encrypt a disk with a customer-supplied key, you must\nprovide the same key if you use the disk later (e.g. to create a disk\nsnapshot or an image, or to attach the disk to a virtual machine).\n\nCustomer-supplied encryption keys do not protect access to metadata of\nthe disk.\n\nIf you do not provide an encryption key when creating the disk, then\nthe disk will be encrypted using an automatically generated key and\nyou do not need to provide a key to use the disk later.","description_kind":"plain"},"max_items":1},"source_snapshot_encryption_key":{"nesting_mode":"list","block":{"attributes":{"raw_key":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.","description_kind":"plain","optional":true},"sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.","description_kind":"plain","computed":true}},"description":"The customer-supplied encryption key of the source snapshot. Required\nif the source snapshot is protected by a customer-supplied encryption\nkey.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_disk_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_compute_region_disk_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_compute_region_disk_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_compute_region_disk_resource_policy_attachment":{"version":0,"block":{"attributes":{"disk":{"type":"string","description":"The name of the regional disk in which the resource policies are attached to.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource policy to be attached to the disk for scheduling snapshot\ncreation. Do not specify the self link.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"A reference to the region where the disk resides.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_health_check":{"version":0,"block":{"attributes":{"check_interval_sec":{"type":"number","description":"How often (in seconds) to send a health check. The default value is 5\nseconds.","description_kind":"plain","optional":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"healthy_threshold":{"type":"number","description":"A so-far unhealthy instance will be marked healthy after this many\nconsecutive successes. The default value is 2.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the\nlast character, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The Region in which the created health check should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"timeout_sec":{"type":"number","description":"How long (in seconds) to wait before claiming failure.\nThe default value is 5 seconds. It is invalid for timeoutSec to have\ngreater value than checkIntervalSec.","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of the health check. One of HTTP, HTTP2, HTTPS, TCP, or SSL.","description_kind":"plain","computed":true},"unhealthy_threshold":{"type":"number","description":"A so-far healthy instance will be marked unhealthy after this many\nconsecutive failures. The default value is 2.","description_kind":"plain","optional":true}},"block_types":{"grpc_health_check":{"nesting_mode":"list","block":{"attributes":{"grpc_service_name":{"type":"string","description":"The gRPC service name for the health check.\nThe value of grpcServiceName has the following meanings by convention:\n\n* Empty serviceName means the overall status of all services at the backend.\n* Non-empty serviceName means the health of that gRPC service, as defined by the owner of the service.\n\nThe grpcServiceName can only be ASCII.","description_kind":"plain","optional":true},"port":{"type":"number","description":"The port number for the health check request.\nMust be specified if portName and portSpecification are not set\nor if port_specification is USE_FIXED_PORT. Valid values are 1 through 65535.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, gRPC health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"http2_health_check":{"nesting_mode":"list","block":{"attributes":{"host":{"type":"string","description":"The value of the host header in the HTTP2 health check request.\nIf left empty (default value), the public IP on behalf of which this health\ncheck is performed will be used.","description_kind":"plain","optional":true},"port":{"type":"number","description":"The TCP port number for the HTTP2 health check request.\nThe default value is 443.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, HTTP2 health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"request_path":{"type":"string","description":"The request path of the HTTP2 health check request.\nThe default value is /.","description_kind":"plain","optional":true},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"http_health_check":{"nesting_mode":"list","block":{"attributes":{"host":{"type":"string","description":"The value of the host header in the HTTP health check request.\nIf left empty (default value), the public IP on behalf of which this health\ncheck is performed will be used.","description_kind":"plain","optional":true},"port":{"type":"number","description":"The TCP port number for the HTTP health check request.\nThe default value is 80.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, HTTP health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"request_path":{"type":"string","description":"The request path of the HTTP health check request.\nThe default value is /.","description_kind":"plain","optional":true},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"https_health_check":{"nesting_mode":"list","block":{"attributes":{"host":{"type":"string","description":"The value of the host header in the HTTPS health check request.\nIf left empty (default value), the public IP on behalf of which this health\ncheck is performed will be used.","description_kind":"plain","optional":true},"port":{"type":"number","description":"The TCP port number for the HTTPS health check request.\nThe default value is 443.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, HTTPS health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"request_path":{"type":"string","description":"The request path of the HTTPS health check request.\nThe default value is /.","description_kind":"plain","optional":true},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"log_config":{"nesting_mode":"list","block":{"attributes":{"enable":{"type":"bool","description":"Indicates whether or not to export logs. This is false by default,\nwhich means no health check logging will be done.","description_kind":"plain","optional":true}},"description":"Configure logging on this health check.","description_kind":"plain"},"max_items":1},"ssl_health_check":{"nesting_mode":"list","block":{"attributes":{"port":{"type":"number","description":"The TCP port number for the SSL health check request.\nThe default value is 443.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, SSL health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"request":{"type":"string","description":"The application data to send once the SSL connection has been\nestablished (default value is empty). If both request and response are\nempty, the connection establishment alone will indicate health. The request\ndata can only be ASCII.","description_kind":"plain","optional":true},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"tcp_health_check":{"nesting_mode":"list","block":{"attributes":{"port":{"type":"number","description":"The TCP port number for the TCP health check request.\nThe default value is 80.","description_kind":"plain","optional":true},"port_name":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\nport_name are defined, port takes precedence.","description_kind":"plain","optional":true},"port_specification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n network endpoint is used for health checking. For other backends, the\n port or named port specified in the Backend Service is used for health\n checking.\n\nIf not specified, TCP health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]","description_kind":"plain","optional":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"request":{"type":"string","description":"The application data to send once the TCP connection has been\nestablished (default value is empty). If both request and response are\nempty, the connection establishment alone will indicate health. The request\ndata can only be ASCII.","description_kind":"plain","optional":true},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_instance_group_manager":{"version":0,"block":{"attributes":{"base_instance_name":{"type":"string","description":"The base instance name to use for instances in this group. The value must be a valid RFC1035 name. Supported characters are lowercase letters, numbers, and hyphens (-). Instances are named by appending a hyphen and a random four-character string to the base instance name.","description_kind":"plain","required":true},"description":{"type":"string","description":"An optional textual description of the instance group manager.","description_kind":"plain","optional":true},"distribution_policy_target_shape":{"type":"string","description":"The shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType).","description_kind":"plain","optional":true,"computed":true},"distribution_policy_zones":{"type":["set","string"],"description":"The distribution policy for this managed instance group. You can specify one or more values.","description_kind":"plain","optional":true,"computed":true},"fingerprint":{"type":"string","description":"The fingerprint of the instance group manager.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_group":{"type":"string","description":"The full URL of the instance group created by the manager.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the instance group manager. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region where the managed instance group resides.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"The URL of the created resource.","description_kind":"plain","computed":true},"status":{"type":["list",["object",{"is_stable":"bool","stateful":["list",["object",{"has_stateful_config":"bool","per_instance_configs":["list",["object",{"all_effective":"bool"}]]}]],"version_target":["list",["object",{"is_reached":"bool"}]]}]],"description":"The status of this managed instance group.","description_kind":"plain","computed":true},"target_pools":{"type":["set","string"],"description":"The full URL of all target pools to which new instances in the group are added. Updating the target pools attribute does not affect existing instances.","description_kind":"plain","optional":true},"target_size":{"type":"number","description":"The target number of running instances for this managed instance group. This value should always be explicitly set unless this resource is attached to an autoscaler, in which case it should never be set. Defaults to 0.","description_kind":"plain","optional":true,"computed":true},"wait_for_instances":{"type":"bool","description":"Whether to wait for all instances to be created/updated before returning. Note that if this is set to true and the operation does not succeed, Terraform will continue trying until it times out.","description_kind":"plain","optional":true},"wait_for_instances_status":{"type":"string","description":"When used with wait_for_instances specifies the status to wait for. When STABLE is specified this resource will wait until the instances are stable before returning. When UPDATED is set, it will wait for the version target to be reached and any per instance configs to be effective as well as all instances to be stable before returning.","description_kind":"plain","optional":true}},"block_types":{"auto_healing_policies":{"nesting_mode":"list","block":{"attributes":{"health_check":{"type":"string","description":"The health check resource that signals autohealing.","description_kind":"plain","required":true},"initial_delay_sec":{"type":"number","description":"The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. Between 0 and 3600.","description_kind":"plain","required":true}},"description":"The autohealing policies for this managed instance group. You can specify only one value.","description_kind":"plain"},"max_items":1},"named_port":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description":"The name of the port.","description_kind":"plain","required":true},"port":{"type":"number","description":"The port number.","description_kind":"plain","required":true}},"description":"The named port configuration.","description_kind":"plain"}},"stateful_disk":{"nesting_mode":"set","block":{"attributes":{"delete_rule":{"type":"string","description":"A value that prescribes what should happen to the stateful disk when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the disk when the VM is deleted, but do not delete the disk. ON_PERMANENT_INSTANCE_DELETION will delete the stateful disk when the VM is permanently deleted from the instance group. The default is NEVER.","description_kind":"plain","optional":true},"device_name":{"type":"string","description":"The device name of the disk to be attached.","description_kind":"plain","required":true}},"description":"Disks created on the instances that will be preserved on instance delete, update, etc. Structure is documented below. For more information see the official documentation. Proactive cross zone instance redistribution must be disabled before you can update stateful disks on existing instance group managers. This can be controlled via the update_policy.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"update_policy":{"nesting_mode":"list","block":{"attributes":{"instance_redistribution_type":{"type":"string","description":"The instance redistribution policy for regional managed instance groups. Valid values are: \"PROACTIVE\", \"NONE\". If PROACTIVE (default), the group attempts to maintain an even distribution of VM instances across zones in the region. If NONE, proactive redistribution is disabled.","description_kind":"plain","optional":true},"max_surge_fixed":{"type":"number","description":"The maximum number of instances that can be created above the specified targetSize during the update process. Conflicts with max_surge_percent. It has to be either 0 or at least equal to the number of zones. If fixed values are used, at least one of max_unavailable_fixed or max_surge_fixed must be greater than 0.","description_kind":"plain","optional":true,"computed":true},"max_surge_percent":{"type":"number","description":"The maximum number of instances(calculated as percentage) that can be created above the specified targetSize during the update process. Conflicts with max_surge_fixed. Percent value is only allowed for regional managed instance groups with size at least 10.","description_kind":"plain","optional":true},"max_unavailable_fixed":{"type":"number","description":"The maximum number of instances that can be unavailable during the update process. Conflicts with max_unavailable_percent. It has to be either 0 or at least equal to the number of zones. If fixed values are used, at least one of max_unavailable_fixed or max_surge_fixed must be greater than 0.","description_kind":"plain","optional":true,"computed":true},"max_unavailable_percent":{"type":"number","description":"The maximum number of instances(calculated as percentage) that can be unavailable during the update process. Conflicts with max_unavailable_fixed. Percent value is only allowed for regional managed instance groups with size at least 10.","description_kind":"plain","optional":true},"minimal_action":{"type":"string","description":"Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.","description_kind":"plain","required":true},"replacement_method":{"type":"string","description":"The instance replacement method for regional managed instance groups. Valid values are: \"RECREATE\", \"SUBSTITUTE\". If SUBSTITUTE (default), the group replaces VM instances with new instances that have randomly generated names. If RECREATE, instance names are preserved. You must also set max_unavailable_fixed or max_unavailable_percent to be greater than 0.","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).","description_kind":"plain","required":true}},"description":"The update policy for this managed instance group.","description_kind":"plain"},"max_items":1},"version":{"nesting_mode":"list","block":{"attributes":{"instance_template":{"type":"string","description":"The full URL to an instance template from which all new instances of this version will be created.","description_kind":"plain","required":true},"name":{"type":"string","description":"Version name.","description_kind":"plain","optional":true}},"block_types":{"target_size":{"nesting_mode":"list","block":{"attributes":{"fixed":{"type":"number","description":"The number of instances which are managed for this version. Conflicts with percent.","description_kind":"plain","optional":true},"percent":{"type":"number","description":"The number of instances (calculated as percentage) which are managed for this version. Conflicts with fixed. Note that when using percent, rounding will be in favor of explicitly set target_size values; a managed instance group with 2 instances and 2 versions, one of which has a target_size.percent of 60 will create 2 instances of that version.","description_kind":"plain","optional":true}},"description":"The number of instances calculated as a fixed number or a percentage depending on the settings.","description_kind":"plain"},"max_items":1}},"description":"Application versions managed by this instance group. Each version deals with a specific instance template, allowing canary release scenarios.","description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"google_compute_region_network_endpoint_group":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"network_endpoint_type":{"type":"string","description":"Type of network endpoints in this network endpoint group. Defaults to SERVERLESS Default value: \"SERVERLESS\" Possible values: [\"SERVERLESS\"]","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"A reference to the region where the Serverless NEGs Reside.","description_kind":"plain","required":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"app_engine":{"nesting_mode":"list","block":{"attributes":{"service":{"type":"string","description":"Optional serving service.\nThe service name must be 1-63 characters long, and comply with RFC1035.\nExample value: \"default\", \"my-service\".","description_kind":"plain","optional":true},"url_mask":{"type":"string","description":"A template to parse service and version fields from a request URL.\nURL mask allows for routing to multiple App Engine services without\nhaving to create multiple Network Endpoint Groups and backend services.\n\nFor example, the request URLs \"foo1-dot-appname.appspot.com/v1\" and\n\"foo1-dot-appname.appspot.com/v2\" can be backed by the same Serverless NEG with\nURL mask \"-dot-appname.appspot.com/\". The URL mask will parse\nthem to { service = \"foo1\", version = \"v1\" } and { service = \"foo1\", version = \"v2\" } respectively.","description_kind":"plain","optional":true},"version":{"type":"string","description":"Optional serving version.\nThe version must be 1-63 characters long, and comply with RFC1035.\nExample value: \"v1\", \"v2\".","description_kind":"plain","optional":true}},"description":"Only valid when networkEndpointType is \"SERVERLESS\".\nOnly one of cloud_run, app_engine, cloud_function or serverless_deployment may be set.","description_kind":"plain"},"max_items":1},"cloud_function":{"nesting_mode":"list","block":{"attributes":{"function":{"type":"string","description":"A user-defined name of the Cloud Function.\nThe function name is case-sensitive and must be 1-63 characters long.\nExample value: \"func1\".","description_kind":"plain","optional":true},"url_mask":{"type":"string","description":"A template to parse function field from a request URL. URL mask allows\nfor routing to multiple Cloud Functions without having to create\nmultiple Network Endpoint Groups and backend services.\n\nFor example, request URLs \"mydomain.com/function1\" and \"mydomain.com/function2\"\ncan be backed by the same Serverless NEG with URL mask \"/\". The URL mask\nwill parse them to { function = \"function1\" } and { function = \"function2\" } respectively.","description_kind":"plain","optional":true}},"description":"Only valid when networkEndpointType is \"SERVERLESS\".\nOnly one of cloud_run, app_engine, cloud_function or serverless_deployment may be set.","description_kind":"plain"},"max_items":1},"cloud_run":{"nesting_mode":"list","block":{"attributes":{"service":{"type":"string","description":"Cloud Run service is the main resource of Cloud Run.\nThe service must be 1-63 characters long, and comply with RFC1035.\nExample value: \"run-service\".","description_kind":"plain","optional":true},"tag":{"type":"string","description":"Cloud Run tag represents the \"named-revision\" to provide\nadditional fine-grained traffic routing information.\nThe tag must be 1-63 characters long, and comply with RFC1035.\nExample value: \"revision-0010\".","description_kind":"plain","optional":true},"url_mask":{"type":"string","description":"A template to parse service and tag fields from a request URL.\nURL mask allows for routing to multiple Run services without having\nto create multiple network endpoint groups and backend services.\n\nFor example, request URLs \"foo1.domain.com/bar1\" and \"foo1.domain.com/bar2\"\nan be backed by the same Serverless Network Endpoint Group (NEG) with\nURL mask \".domain.com/\". The URL mask will parse them to { service=\"bar1\", tag=\"foo1\" }\nand { service=\"bar2\", tag=\"foo2\" } respectively.","description_kind":"plain","optional":true}},"description":"Only valid when networkEndpointType is \"SERVERLESS\".\nOnly one of cloud_run, app_engine, cloud_function or serverless_deployment may be set.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_per_instance_config":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"minimal_action":{"type":"string","description_kind":"plain","optional":true},"most_disruptive_allowed_action":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name for this per-instance config and its corresponding instance.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region where the containing instance group manager is located","description_kind":"plain","optional":true,"computed":true},"region_instance_group_manager":{"type":"string","description":"The region instance group manager this instance config is part of.","description_kind":"plain","required":true},"remove_instance_state_on_destroy":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"preserved_state":{"nesting_mode":"list","block":{"attributes":{"metadata":{"type":["map","string"],"description":"Preserved metadata defined for this instance. This is a list of key-\u003evalue pairs.","description_kind":"plain","optional":true}},"block_types":{"disk":{"nesting_mode":"set","block":{"attributes":{"delete_rule":{"type":"string","description":"A value that prescribes what should happen to the stateful disk when the VM instance is deleted.\nThe available options are 'NEVER' and 'ON_PERMANENT_INSTANCE_DELETION'.\n'NEVER' - detach the disk when the VM is deleted, but do not delete the disk.\n'ON_PERMANENT_INSTANCE_DELETION' will delete the stateful disk when the VM is permanently\ndeleted from the instance group. Default value: \"NEVER\" Possible values: [\"NEVER\", \"ON_PERMANENT_INSTANCE_DELETION\"]","description_kind":"plain","optional":true},"device_name":{"type":"string","description":"A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance.","description_kind":"plain","required":true},"mode":{"type":"string","description":"The mode of the disk. Default value: \"READ_WRITE\" Possible values: [\"READ_ONLY\", \"READ_WRITE\"]","description_kind":"plain","optional":true},"source":{"type":"string","description":"The URI of an existing persistent disk to attach under the specified device-name in the format\n'projects/project-id/zones/zone/disks/disk-name'.","description_kind":"plain","required":true}},"description":"Stateful disks for the instance.","description_kind":"plain"}}},"description":"The preserved state for this instance.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_ssl_certificate":{"version":0,"block":{"attributes":{"certificate":{"type":"string","description":"The certificate in PEM format.\nThe certificate chain must be no greater than 5 certs long.\nThe chain must include at least one intermediate cert.","description_kind":"plain","required":true,"sensitive":true},"certificate_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.\n\n\nThese are in the same namespace as the managed SSL certificates.","description_kind":"plain","optional":true,"computed":true},"name_prefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with name.","description_kind":"plain","optional":true,"computed":true},"private_key":{"type":"string","description":"The write-only private key in PEM format.","description_kind":"plain","required":true,"sensitive":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The Region in which the created regional ssl certificate should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_target_http_proxy":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"proxy_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The Region in which the created target https proxy should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"url_map":{"type":"string","description":"A reference to the RegionUrlMap resource that defines the mapping from URL\nto the BackendService.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_target_https_proxy":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"proxy_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The Region in which the created target https proxy should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"ssl_certificates":{"type":["list","string"],"description":"A list of RegionSslCertificate resources that are used to authenticate\nconnections between users and the load balancer. Currently, exactly\none SSL certificate must be specified.","description_kind":"plain","required":true},"url_map":{"type":"string","description":"A reference to the RegionUrlMap resource that defines the mapping from URL\nto the RegionBackendService.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_region_url_map":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"default_service":{"type":"string","description":"The full or partial URL of the defaultService resource to which traffic is directed if\nnone of the hostRules match. If defaultRouteAction is additionally specified, advanced\nrouting actions like URL Rewrites, etc. take effect prior to sending the request to the\nbackend. However, if defaultService is specified, defaultRouteAction cannot contain any\nweightedBackendServices. Conversely, if routeAction specifies any\nweightedBackendServices, service must not be specified. Only one of defaultService,\ndefaultUrlRedirect or defaultRouteAction.weightedBackendService must be set.","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource. This field is used internally during\nupdates of this resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"map_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The Region in which the url map should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"default_url_redirect":{"nesting_mode":"list","block":{"attributes":{"host_redirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one that was\nsupplied in the request. The value must be between 1 and 255 characters.","description_kind":"plain","optional":true},"https_redirect":{"type":"bool","description":"If set to true, the URL scheme in the redirected request is set to https. If set to\nfalse, the URL scheme of the redirected request will remain the same as that of the\nrequest. This must only be set for UrlMaps used in TargetHttpProxys. Setting this\ntrue for TargetHttpsProxy is not permitted. The default is set to false.","description_kind":"plain","optional":true},"path_redirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one that was\nsupplied in the request. pathRedirect cannot be supplied together with\nprefixRedirect. Supply one alone or neither. If neither is supplied, the path of the\noriginal request will be used for the redirect. The value must be between 1 and 1024\ncharacters.","description_kind":"plain","optional":true},"prefix_redirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,\nretaining the remaining portion of the URL before redirecting the request.\nprefixRedirect cannot be supplied together with pathRedirect. Supply one alone or\nneither. If neither is supplied, the path of the original request will be used for\nthe redirect. The value must be between 1 and 1024 characters.","description_kind":"plain","optional":true},"redirect_response_code":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n\n* FOUND, which corresponds to 302.\n\n* SEE_OTHER which corresponds to 303.\n\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method\nwill be retained.\n\n* PERMANENT_REDIRECT, which corresponds to 308. In this case,\nthe request method will be retained. Possible values: [\"FOUND\", \"MOVED_PERMANENTLY_DEFAULT\", \"PERMANENT_REDIRECT\", \"SEE_OTHER\", \"TEMPORARY_REDIRECT\"]","description_kind":"plain","optional":true},"strip_query":{"type":"bool","description":"If set to true, any accompanying query portion of the original URL is removed prior\nto redirecting the request. If set to false, the query portion of the original URL is\nretained.\n This field is required to ensure an empty block is not set. The normal default value is false.","description_kind":"plain","required":true}},"description":"When none of the specified hostRules match, the request is redirected to a URL specified\nby defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or\ndefaultRouteAction must not be set.","description_kind":"plain"},"max_items":1},"host_rule":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"An optional description of this HostRule. Provide this property\nwhen you create the resource.","description_kind":"plain","optional":true},"hosts":{"type":["set","string"],"description":"The list of host patterns to match. They must be valid\nhostnames, except * will match any string of ([a-z0-9-.]*). In\nthat case, * must be the first character and must be followed in\nthe pattern by either - or ..","description_kind":"plain","required":true},"path_matcher":{"type":"string","description":"The name of the PathMatcher to use to match the path portion of\nthe URL if the hostRule matches the URL's host portion.","description_kind":"plain","required":true}},"description":"The list of HostRules to use against the URL.","description_kind":"plain"}},"path_matcher":{"nesting_mode":"list","block":{"attributes":{"default_service":{"type":"string","description":"A reference to a RegionBackendService resource. This will be used if\nnone of the pathRules defined by this PathMatcher is matched by\nthe URL's path portion.","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name to which this PathMatcher is referred by the HostRule.","description_kind":"plain","required":true}},"block_types":{"default_url_redirect":{"nesting_mode":"list","block":{"attributes":{"host_redirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one that was\nsupplied in the request. The value must be between 1 and 255 characters.","description_kind":"plain","optional":true},"https_redirect":{"type":"bool","description":"If set to true, the URL scheme in the redirected request is set to https. If set to\nfalse, the URL scheme of the redirected request will remain the same as that of the\nrequest. This must only be set for UrlMaps used in TargetHttpProxys. Setting this\ntrue for TargetHttpsProxy is not permitted. The default is set to false.","description_kind":"plain","optional":true},"path_redirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one that was\nsupplied in the request. pathRedirect cannot be supplied together with\nprefixRedirect. Supply one alone or neither. If neither is supplied, the path of the\noriginal request will be used for the redirect. The value must be between 1 and 1024\ncharacters.","description_kind":"plain","optional":true},"prefix_redirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,\nretaining the remaining portion of the URL before redirecting the request.\nprefixRedirect cannot be supplied together with pathRedirect. Supply one alone or\nneither. If neither is supplied, the path of the original request will be used for\nthe redirect. The value must be between 1 and 1024 characters.","description_kind":"plain","optional":true},"redirect_response_code":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n\n* FOUND, which corresponds to 302.\n\n* SEE_OTHER which corresponds to 303.\n\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method\nwill be retained.\n\n* PERMANENT_REDIRECT, which corresponds to 308. In this case,\nthe request method will be retained. Possible values: [\"FOUND\", \"MOVED_PERMANENTLY_DEFAULT\", \"PERMANENT_REDIRECT\", \"SEE_OTHER\", \"TEMPORARY_REDIRECT\"]","description_kind":"plain","optional":true},"strip_query":{"type":"bool","description":"If set to true, any accompanying query portion of the original URL is removed prior\nto redirecting the request. If set to false, the query portion of the original URL is\nretained.\n This field is required to ensure an empty block is not set. The normal default value is false.","description_kind":"plain","required":true}},"description":"When none of the specified hostRules match, the request is redirected to a URL specified\nby defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or\ndefaultRouteAction must not be set.","description_kind":"plain"},"max_items":1},"path_rule":{"nesting_mode":"list","block":{"attributes":{"paths":{"type":["set","string"],"description":"The list of path patterns to match. Each must start with / and the only place a\n\\* is allowed is at the end following a /. The string fed to the path matcher\ndoes not include any text after the first ? or #, and those chars are not\nallowed here.","description_kind":"plain","required":true},"service":{"type":"string","description":"The region backend service resource to which traffic is\ndirected if this rule is matched. If routeAction is additionally specified,\nadvanced routing actions like URL Rewrites, etc. take effect prior to sending\nthe request to the backend. However, if service is specified, routeAction cannot\ncontain any weightedBackendService s. Conversely, if routeAction specifies any\nweightedBackendServices, service must not be specified. Only one of urlRedirect,\nservice or routeAction.weightedBackendService must be set.","description_kind":"plain","optional":true}},"block_types":{"route_action":{"nesting_mode":"list","block":{"block_types":{"cors_policy":{"nesting_mode":"list","block":{"attributes":{"allow_credentials":{"type":"bool","description":"In response to a preflight request, setting this to true indicates that the\nactual request can include user credentials. This translates to the Access-\nControl-Allow-Credentials header. Defaults to false.","description_kind":"plain","optional":true},"allow_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Headers header.","description_kind":"plain","optional":true},"allow_methods":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Methods header.","description_kind":"plain","optional":true},"allow_origin_regexes":{"type":["list","string"],"description":"Specifies the regular expression patterns that match allowed origins. For\nregular expression grammar please see en.cppreference.com/w/cpp/regex/ecmascript\nAn origin is allowed if it matches either allow_origins or allow_origin_regex.","description_kind":"plain","optional":true},"allow_origins":{"type":["list","string"],"description":"Specifies the list of origins that will be allowed to do CORS requests. An\norigin is allowed if it matches either allow_origins or allow_origin_regex.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If true, specifies the CORS policy is disabled.","description_kind":"plain","required":true},"expose_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Expose-Headers header.","description_kind":"plain","optional":true},"max_age":{"type":"number","description":"Specifies how long the results of a preflight request can be cached. This\ntranslates to the content for the Access-Control-Max-Age header.","description_kind":"plain","optional":true}},"description":"The specification for allowing client side cross-origin requests. Please see W3C\nRecommendation for Cross Origin Resource Sharing","description_kind":"plain"},"max_items":1},"fault_injection_policy":{"nesting_mode":"list","block":{"block_types":{"abort":{"nesting_mode":"list","block":{"attributes":{"http_status":{"type":"number","description":"The HTTP status code used to abort the request. The value must be between 200\nand 599 inclusive.","description_kind":"plain","required":true},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) which will be\naborted as part of fault injection. The value must be between 0.0 and 100.0\ninclusive.","description_kind":"plain","required":true}},"description":"The specification for how client requests are aborted as part of fault\ninjection.","description_kind":"plain"},"max_items":1},"delay":{"nesting_mode":"list","block":{"attributes":{"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) on which delay will\nbe introduced as part of fault injection. The value must be between 0.0 and\n100.0 inclusive.","description_kind":"plain","required":true}},"block_types":{"fixed_delay":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies the value of the fixed delay interval.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"The specification for how client requests are delayed as part of fault\ninjection, before being sent to a backend service.","description_kind":"plain"},"max_items":1}},"description":"The specification for fault injection introduced into traffic to test the\nresiliency of clients to backend service failure. As part of fault injection,\nwhen clients send requests to a backend service, delays can be introduced by\nLoadbalancer on a percentage of requests before sending those request to the\nbackend service. Similarly requests from clients can be aborted by the\nLoadbalancer for a percentage of requests. timeout and retry_policy will be\nignored by clients that are configured with a fault_injection_policy.","description_kind":"plain"},"max_items":1},"request_mirror_policy":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The RegionBackendService resource being mirrored to.","description_kind":"plain","required":true}},"description":"Specifies the policy on how requests intended for the route's backends are\nshadowed to a separate mirrored backend service. Loadbalancer does not wait for\nresponses from the shadow service. Prior to sending traffic to the shadow\nservice, the host / authority header is suffixed with -shadow.","description_kind":"plain"},"max_items":1},"retry_policy":{"nesting_mode":"list","block":{"attributes":{"num_retries":{"type":"number","description":"Specifies the allowed number retries. This number must be \u003e 0.","description_kind":"plain","optional":true},"retry_conditions":{"type":["list","string"],"description":"Specifies one or more conditions when this retry rule applies. Valid values are:\n\n- 5xx: Loadbalancer will attempt a retry if the backend service responds with\nany 5xx response code, or if the backend service does not respond at all,\nexample: disconnects, reset, read timeout, connection failure, and refused\nstreams.\n- gateway-error: Similar to 5xx, but only applies to response codes\n502, 503 or 504.\n- connect-failure: Loadbalancer will retry on failures\nconnecting to backend services, for example due to connection timeouts.\n- retriable-4xx: Loadbalancer will retry for retriable 4xx response codes.\nCurrently the only retriable error supported is 409.\n- refused-stream: Loadbalancer will retry if the backend service resets the stream with a\nREFUSED_STREAM error code. This reset type indicates that it is safe to retry.\n- cancelled: Loadbalancer will retry if the gRPC status code in the response\nheader is set to cancelled\n- deadline-exceeded: Loadbalancer will retry if the\ngRPC status code in the response header is set to deadline-exceeded\n- resource-exhausted: Loadbalancer will retry if the gRPC status code in the response\nheader is set to resource-exhausted\n- unavailable: Loadbalancer will retry if\nthe gRPC status code in the response header is set to unavailable","description_kind":"plain","optional":true}},"block_types":{"per_try_timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies a non-zero timeout per retry attempt.","description_kind":"plain"},"max_items":1}},"description":"Specifies the retry policy associated with this route.","description_kind":"plain"},"max_items":1},"timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies the timeout for the selected route. Timeout is computed from the time\nthe request is has been fully processed (i.e. end-of-stream) up until the\nresponse has been completely processed. Timeout includes all retries. If not\nspecified, the default value is 15 seconds.","description_kind":"plain"},"max_items":1},"url_rewrite":{"nesting_mode":"list","block":{"attributes":{"host_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected service, the request's host\nheader is replaced with contents of hostRewrite. The value must be between 1 and\n255 characters.","description_kind":"plain","optional":true},"path_prefix_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected backend service, the matching\nportion of the request's path is replaced by pathPrefixRewrite. The value must\nbe between 1 and 1024 characters.","description_kind":"plain","optional":true}},"description":"The spec to modify the URL of the request, prior to forwarding the request to\nthe matched service","description_kind":"plain"},"max_items":1},"weighted_backend_services":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The default RegionBackendService resource. Before\nforwarding the request to backendService, the loadbalancer applies any relevant\nheaderActions specified as part of this backendServiceWeight.","description_kind":"plain","required":true},"weight":{"type":"number","description":"Specifies the fraction of traffic sent to backendService, computed as weight /\n(sum of all weightedBackendService weights in routeAction) . The selection of a\nbackend service is determined only for new traffic. Once a user's request has\nbeen directed to a backendService, subsequent requests will be sent to the same\nbackendService as determined by the BackendService's session affinity policy.\nThe value must be between 0 and 1000","description_kind":"plain","required":true}},"block_types":{"header_action":{"nesting_mode":"list","block":{"attributes":{"request_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the request\nprior to forwarding the request to the backendService.","description_kind":"plain","optional":true},"response_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the response\nprior to sending the response back to the client.","description_kind":"plain","optional":true}},"block_types":{"request_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add to a matching request prior to forwarding the request to the\nbackendService.","description_kind":"plain"}},"response_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add the response prior to sending the response back to the client.","description_kind":"plain"}}},"description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService. headerAction specified here take effect before\nheaderAction in the enclosing HttpRouteRule, PathMatcher and UrlMap.","description_kind":"plain"},"max_items":1}},"description":"A list of weighted backend services to send traffic to when a route match\noccurs. The weights determine the fraction of traffic that flows to their\ncorresponding backend service. If all traffic needs to go to a single backend\nservice, there must be one weightedBackendService with weight set to a non 0\nnumber. Once a backendService is identified and before forwarding the request to\nthe backend service, advanced routing actions like Url rewrites and header\ntransformations are applied depending on additional settings specified in this\nHttpRouteAction.","description_kind":"plain"}}},"description":"In response to a matching path, the load balancer performs advanced routing\nactions like URL rewrites, header transformations, etc. prior to forwarding the\nrequest to the selected backend. If routeAction specifies any\nweightedBackendServices, service must not be set. Conversely if service is set,\nrouteAction cannot contain any weightedBackendServices. Only one of routeAction\nor urlRedirect must be set.","description_kind":"plain"},"max_items":1},"url_redirect":{"nesting_mode":"list","block":{"attributes":{"host_redirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one\nthat was supplied in the request. The value must be between 1 and 255\ncharacters.","description_kind":"plain","optional":true},"https_redirect":{"type":"bool","description":"If set to true, the URL scheme in the redirected request is set to https.\nIf set to false, the URL scheme of the redirected request will remain the\nsame as that of the request. This must only be set for UrlMaps used in\nTargetHttpProxys. Setting this true for TargetHttpsProxy is not\npermitted. The default is set to false.","description_kind":"plain","optional":true},"path_redirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one\nthat was supplied in the request. pathRedirect cannot be supplied\ntogether with prefixRedirect. Supply one alone or neither. If neither is\nsupplied, the path of the original request will be used for the redirect.\nThe value must be between 1 and 1024 characters.","description_kind":"plain","optional":true},"prefix_redirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the\nHttpRouteRuleMatch, retaining the remaining portion of the URL before\nredirecting the request. prefixRedirect cannot be supplied together with\npathRedirect. Supply one alone or neither. If neither is supplied, the\npath of the original request will be used for the redirect. The value\nmust be between 1 and 1024 characters.","description_kind":"plain","optional":true},"redirect_response_code":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n\n* FOUND, which corresponds to 302.\n\n* SEE_OTHER which corresponds to 303.\n\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method\nwill be retained.\n\n* PERMANENT_REDIRECT, which corresponds to 308. In this case,\nthe request method will be retained. Possible values: [\"FOUND\", \"MOVED_PERMANENTLY_DEFAULT\", \"PERMANENT_REDIRECT\", \"SEE_OTHER\", \"TEMPORARY_REDIRECT\"]","description_kind":"plain","optional":true},"strip_query":{"type":"bool","description":"If set to true, any accompanying query portion of the original URL is removed\nprior to redirecting the request. If set to false, the query portion of the\noriginal URL is retained.\n This field is required to ensure an empty block is not set. The normal default value is false.","description_kind":"plain","required":true}},"description":"When a path pattern is matched, the request is redirected to a URL specified\nby urlRedirect. If urlRedirect is specified, service or routeAction must not\nbe set.","description_kind":"plain"},"max_items":1}},"description":"The list of path rules. Use this list instead of routeRules when routing based\non simple path matching is all that's required. The order by which path rules\nare specified does not matter. Matches are always done on the longest-path-first\nbasis. For example: a pathRule with a path /a/b/c/* will match before /a/b/*\nirrespective of the order in which those paths appear in this list. Within a\ngiven pathMatcher, only one of pathRules or routeRules must be set.","description_kind":"plain"}},"route_rules":{"nesting_mode":"list","block":{"attributes":{"priority":{"type":"number","description":"For routeRules within a given pathMatcher, priority determines the order\nin which load balancer will interpret routeRules. RouteRules are evaluated\nin order of priority, from the lowest to highest number. The priority of\na rule decreases as its number increases (1, 2, 3, N+1). The first rule\nthat matches the request is applied.\n\nYou cannot configure two or more routeRules with the same priority.\nPriority for each rule must be set to a number between 0 and\n2147483647 inclusive.\n\nPriority numbers can have gaps, which enable you to add or remove rules\nin the future without affecting the rest of the rules. For example,\n1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which\nyou could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the\nfuture without any impact on existing rules.","description_kind":"plain","required":true},"service":{"type":"string","description":"The region backend service resource to which traffic is\ndirected if this rule is matched. If routeAction is additionally specified,\nadvanced routing actions like URL Rewrites, etc. take effect prior to sending\nthe request to the backend. However, if service is specified, routeAction cannot\ncontain any weightedBackendService s. Conversely, if routeAction specifies any\nweightedBackendServices, service must not be specified. Only one of urlRedirect,\nservice or routeAction.weightedBackendService must be set.","description_kind":"plain","optional":true}},"block_types":{"header_action":{"nesting_mode":"list","block":{"attributes":{"request_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the request\nprior to forwarding the request to the backendService.","description_kind":"plain","optional":true},"response_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the response\nprior to sending the response back to the client.","description_kind":"plain","optional":true}},"block_types":{"request_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add to a matching request prior to forwarding the request to the\nbackendService.","description_kind":"plain"}},"response_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add the response prior to sending the response back to the client.","description_kind":"plain"}}},"description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService. The headerAction specified here are applied before\nthe matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].r\nouteAction.weightedBackendService.backendServiceWeightAction[].headerAction","description_kind":"plain"},"max_items":1},"match_rules":{"nesting_mode":"list","block":{"attributes":{"full_path_match":{"type":"string","description":"For satisfying the matchRule condition, the path of the request must exactly\nmatch the value specified in fullPathMatch after removing any query parameters\nand anchor that may be part of the original URL. FullPathMatch must be between 1\nand 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must\nbe specified.","description_kind":"plain","optional":true},"ignore_case":{"type":"bool","description":"Specifies that prefixMatch and fullPathMatch matches are case sensitive.\nDefaults to false.","description_kind":"plain","optional":true},"prefix_match":{"type":"string","description":"For satisfying the matchRule condition, the request's path must begin with the\nspecified prefixMatch. prefixMatch must begin with a /. The value must be\nbetween 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or\nregexMatch must be specified.","description_kind":"plain","optional":true},"regex_match":{"type":"string","description":"For satisfying the matchRule condition, the path of the request must satisfy the\nregular expression specified in regexMatch after removing any query parameters\nand anchor supplied with the original URL. For regular expression grammar please\nsee en.cppreference.com/w/cpp/regex/ecmascript Only one of prefixMatch,\nfullPathMatch or regexMatch must be specified.","description_kind":"plain","optional":true}},"block_types":{"header_matches":{"nesting_mode":"list","block":{"attributes":{"exact_match":{"type":"string","description":"The value should exactly match contents of exactMatch. Only one of exactMatch,\nprefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.","description_kind":"plain","optional":true},"header_name":{"type":"string","description":"The name of the HTTP header to match. For matching against the HTTP request's\nauthority, use a headerMatch with the header name \":authority\". For matching a\nrequest's method, use the headerName \":method\".","description_kind":"plain","required":true},"invert_match":{"type":"bool","description":"If set to false, the headerMatch is considered a match if the match criteria\nabove are met. If set to true, the headerMatch is considered a match if the\nmatch criteria above are NOT met. Defaults to false.","description_kind":"plain","optional":true},"prefix_match":{"type":"string","description":"The value of the header must start with the contents of prefixMatch. Only one of\nexactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch\nmust be set.","description_kind":"plain","optional":true},"present_match":{"type":"bool","description":"A header with the contents of headerName must exist. The match takes place\nwhether or not the request's header has a value or not. Only one of exactMatch,\nprefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.","description_kind":"plain","optional":true},"regex_match":{"type":"string","description":"The value of the header must match the regular expression specified in\nregexMatch. For regular expression grammar, please see:\nen.cppreference.com/w/cpp/regex/ecmascript For matching against a port\nspecified in the HTTP request, use a headerMatch with headerName set to PORT and\na regular expression that satisfies the RFC2616 Host header's port specifier.\nOnly one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or\nrangeMatch must be set.","description_kind":"plain","optional":true},"suffix_match":{"type":"string","description":"The value of the header must end with the contents of suffixMatch. Only one of\nexactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch\nmust be set.","description_kind":"plain","optional":true}},"block_types":{"range_match":{"nesting_mode":"list","block":{"attributes":{"range_end":{"type":"number","description":"The end of the range (exclusive).","description_kind":"plain","required":true},"range_start":{"type":"number","description":"The start of the range (inclusive).","description_kind":"plain","required":true}},"description":"The header value must be an integer and its value must be in the range specified\nin rangeMatch. If the header does not contain an integer, number or is empty,\nthe match fails. For example for a range [-5, 0]\n\n* -3 will match\n* 0 will not match\n* 0.25 will not match\n* -3someString will not match.\n\nOnly one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or\nrangeMatch must be set.","description_kind":"plain"},"max_items":1}},"description":"Specifies a list of header match criteria, all of which must match corresponding\nheaders in the request.","description_kind":"plain"}},"metadata_filters":{"nesting_mode":"list","block":{"attributes":{"filter_match_criteria":{"type":"string","description":"Specifies how individual filterLabel matches within the list of filterLabels\ncontribute towards the overall metadataFilter match. Supported values are:\n\n* MATCH_ANY: At least one of the filterLabels must have a matching label in the\nprovided metadata.\n* MATCH_ALL: All filterLabels must have matching labels in\nthe provided metadata. Possible values: [\"MATCH_ALL\", \"MATCH_ANY\"]","description_kind":"plain","required":true}},"block_types":{"filter_labels":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of metadata label. The name can have a maximum length of 1024 characters\nand must be at least 1 character long.","description_kind":"plain","required":true},"value":{"type":"string","description":"The value of the label must match the specified value. value can have a maximum\nlength of 1024 characters.","description_kind":"plain","required":true}},"description":"The list of label value pairs that must match labels in the provided metadata\nbased on filterMatchCriteria This list must not be empty and can have at the\nmost 64 entries.","description_kind":"plain"},"min_items":1,"max_items":64}},"description":"Opaque filter criteria used by Loadbalancer to restrict routing configuration to\na limited set xDS compliant clients. In their xDS requests to Loadbalancer, xDS\nclients present node metadata. If a match takes place, the relevant routing\nconfiguration is made available to those proxies. For each metadataFilter in\nthis list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the\nfilterLabels must match the corresponding label provided in the metadata. If its\nfilterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match\nwith corresponding labels in the provided metadata. metadataFilters specified\nhere can be overrides those specified in ForwardingRule that refers to this\nUrlMap. metadataFilters only applies to Loadbalancers that have their\nloadBalancingScheme set to INTERNAL_SELF_MANAGED.","description_kind":"plain"}},"query_parameter_matches":{"nesting_mode":"list","block":{"attributes":{"exact_match":{"type":"string","description":"The queryParameterMatch matches if the value of the parameter exactly matches\nthe contents of exactMatch. Only one of presentMatch, exactMatch and regexMatch\nmust be set.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the query parameter to match. The query parameter must exist in the\nrequest, in the absence of which the request match fails.","description_kind":"plain","required":true},"present_match":{"type":"bool","description":"Specifies that the queryParameterMatch matches if the request contains the query\nparameter, irrespective of whether the parameter has a value or not. Only one of\npresentMatch, exactMatch and regexMatch must be set.","description_kind":"plain","optional":true},"regex_match":{"type":"string","description":"The queryParameterMatch matches if the value of the parameter matches the\nregular expression specified by regexMatch. For the regular expression grammar,\nplease see en.cppreference.com/w/cpp/regex/ecmascript Only one of presentMatch,\nexactMatch and regexMatch must be set.","description_kind":"plain","optional":true}},"description":"Specifies a list of query parameter match criteria, all of which must match\ncorresponding query parameters in the request.","description_kind":"plain"}}},"description":"The rules for determining a match.","description_kind":"plain"}},"route_action":{"nesting_mode":"list","block":{"block_types":{"cors_policy":{"nesting_mode":"list","block":{"attributes":{"allow_credentials":{"type":"bool","description":"In response to a preflight request, setting this to true indicates that the\nactual request can include user credentials. This translates to the Access-\nControl-Allow-Credentials header. Defaults to false.","description_kind":"plain","optional":true},"allow_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Headers header.","description_kind":"plain","optional":true},"allow_methods":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Methods header.","description_kind":"plain","optional":true},"allow_origin_regexes":{"type":["list","string"],"description":"Specifies the regular expression patterns that match allowed origins. For\nregular expression grammar please see en.cppreference.com/w/cpp/regex/ecmascript\nAn origin is allowed if it matches either allow_origins or allow_origin_regex.","description_kind":"plain","optional":true},"allow_origins":{"type":["list","string"],"description":"Specifies the list of origins that will be allowed to do CORS requests. An\norigin is allowed if it matches either allow_origins or allow_origin_regex.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If true, specifies the CORS policy is disabled.\nwhich indicates that the CORS policy is in effect. Defaults to false.","description_kind":"plain","optional":true},"expose_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Expose-Headers header.","description_kind":"plain","optional":true},"max_age":{"type":"number","description":"Specifies how long the results of a preflight request can be cached. This\ntranslates to the content for the Access-Control-Max-Age header.","description_kind":"plain","optional":true}},"description":"The specification for allowing client side cross-origin requests. Please see W3C\nRecommendation for Cross Origin Resource Sharing","description_kind":"plain"},"max_items":1},"fault_injection_policy":{"nesting_mode":"list","block":{"block_types":{"abort":{"nesting_mode":"list","block":{"attributes":{"http_status":{"type":"number","description":"The HTTP status code used to abort the request. The value must be between 200\nand 599 inclusive.","description_kind":"plain","optional":true},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) which will be\naborted as part of fault injection. The value must be between 0.0 and 100.0\ninclusive.","description_kind":"plain","optional":true}},"description":"The specification for how client requests are aborted as part of fault\ninjection.","description_kind":"plain"},"max_items":1},"delay":{"nesting_mode":"list","block":{"attributes":{"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) on which delay will\nbe introduced as part of fault injection. The value must be between 0.0 and\n100.0 inclusive.","description_kind":"plain","optional":true}},"block_types":{"fixed_delay":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies the value of the fixed delay interval.","description_kind":"plain"},"max_items":1}},"description":"The specification for how client requests are delayed as part of fault\ninjection, before being sent to a backend service.","description_kind":"plain"},"max_items":1}},"description":"The specification for fault injection introduced into traffic to test the\nresiliency of clients to backend service failure. As part of fault injection,\nwhen clients send requests to a backend service, delays can be introduced by\nLoadbalancer on a percentage of requests before sending those request to the\nbackend service. Similarly requests from clients can be aborted by the\nLoadbalancer for a percentage of requests. timeout and retry_policy will be\nignored by clients that are configured with a fault_injection_policy.","description_kind":"plain"},"max_items":1},"request_mirror_policy":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The RegionBackendService resource being mirrored to.","description_kind":"plain","required":true}},"description":"Specifies the policy on how requests intended for the route's backends are\nshadowed to a separate mirrored backend service. Loadbalancer does not wait for\nresponses from the shadow service. Prior to sending traffic to the shadow\nservice, the host / authority header is suffixed with -shadow.","description_kind":"plain"},"max_items":1},"retry_policy":{"nesting_mode":"list","block":{"attributes":{"num_retries":{"type":"number","description":"Specifies the allowed number retries. This number must be \u003e 0.","description_kind":"plain","required":true},"retry_conditions":{"type":["list","string"],"description":"Specifies one or more conditions when this retry rule applies. Valid values are:\n\n* 5xx: Loadbalancer will attempt a retry if the backend service responds with\n any 5xx response code, or if the backend service does not respond at all,\n example: disconnects, reset, read timeout, connection failure, and refused\n streams.\n* gateway-error: Similar to 5xx, but only applies to response codes\n 502, 503 or 504.\n* connect-failure: Loadbalancer will retry on failures\n connecting to backend services, for example due to connection timeouts.\n* retriable-4xx: Loadbalancer will retry for retriable 4xx response codes.\n Currently the only retriable error supported is 409.\n* refused-stream: Loadbalancer will retry if the backend service resets the stream with a\n REFUSED_STREAM error code. This reset type indicates that it is safe to retry.\n* cancelled: Loadbalancer will retry if the gRPC status code in the response\n header is set to cancelled\n* deadline-exceeded: Loadbalancer will retry if the\n gRPC status code in the response header is set to deadline-exceeded\n* resource-exhausted: Loadbalancer will retry if the gRPC status code in the response\n header is set to resource-exhausted\n* unavailable: Loadbalancer will retry if the gRPC status code in\n the response header is set to unavailable","description_kind":"plain","optional":true}},"block_types":{"per_try_timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies a non-zero timeout per retry attempt.","description_kind":"plain"},"max_items":1}},"description":"Specifies the retry policy associated with this route.","description_kind":"plain"},"max_items":1},"timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies the timeout for the selected route. Timeout is computed from the time\nthe request is has been fully processed (i.e. end-of-stream) up until the\nresponse has been completely processed. Timeout includes all retries. If not\nspecified, the default value is 15 seconds.","description_kind":"plain"},"max_items":1},"url_rewrite":{"nesting_mode":"list","block":{"attributes":{"host_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected service, the request's host\nheader is replaced with contents of hostRewrite. The value must be between 1 and\n255 characters.","description_kind":"plain","optional":true},"path_prefix_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected backend service, the matching\nportion of the request's path is replaced by pathPrefixRewrite. The value must\nbe between 1 and 1024 characters.","description_kind":"plain","optional":true}},"description":"The spec to modify the URL of the request, prior to forwarding the request to\nthe matched service","description_kind":"plain"},"max_items":1},"weighted_backend_services":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The default RegionBackendService resource. Before\nforwarding the request to backendService, the loadbalancer applies any relevant\nheaderActions specified as part of this backendServiceWeight.","description_kind":"plain","required":true},"weight":{"type":"number","description":"Specifies the fraction of traffic sent to backendService, computed as weight /\n(sum of all weightedBackendService weights in routeAction) . The selection of a\nbackend service is determined only for new traffic. Once a user's request has\nbeen directed to a backendService, subsequent requests will be sent to the same\nbackendService as determined by the BackendService's session affinity policy.\nThe value must be between 0 and 1000","description_kind":"plain","required":true}},"block_types":{"header_action":{"nesting_mode":"list","block":{"attributes":{"request_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the request\nprior to forwarding the request to the backendService.","description_kind":"plain","optional":true},"response_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the response\nprior to sending the response back to the client.","description_kind":"plain","optional":true}},"block_types":{"request_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add to a matching request prior to forwarding the request to the\nbackendService.","description_kind":"plain"}},"response_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add the response prior to sending the response back to the client.","description_kind":"plain"}}},"description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService. headerAction specified here take effect before\nheaderAction in the enclosing HttpRouteRule, PathMatcher and UrlMap.","description_kind":"plain"},"max_items":1}},"description":"A list of weighted backend services to send traffic to when a route match\noccurs. The weights determine the fraction of traffic that flows to their\ncorresponding backend service. If all traffic needs to go to a single backend\nservice, there must be one weightedBackendService with weight set to a non 0\nnumber. Once a backendService is identified and before forwarding the request to\nthe backend service, advanced routing actions like Url rewrites and header\ntransformations are applied depending on additional settings specified in this\nHttpRouteAction.","description_kind":"plain"}}},"description":"In response to a matching matchRule, the load balancer performs advanced routing\nactions like URL rewrites, header transformations, etc. prior to forwarding the\nrequest to the selected backend. If routeAction specifies any\nweightedBackendServices, service must not be set. Conversely if service is set,\nrouteAction cannot contain any weightedBackendServices. Only one of routeAction\nor urlRedirect must be set.","description_kind":"plain"},"max_items":1},"url_redirect":{"nesting_mode":"list","block":{"attributes":{"host_redirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one\nthat was supplied in the request. The value must be between 1 and 255\ncharacters.","description_kind":"plain","optional":true},"https_redirect":{"type":"bool","description":"If set to true, the URL scheme in the redirected request is set to https.\nIf set to false, the URL scheme of the redirected request will remain the\nsame as that of the request. This must only be set for UrlMaps used in\nTargetHttpProxys. Setting this true for TargetHttpsProxy is not\npermitted. The default is set to false.","description_kind":"plain","optional":true},"path_redirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one\nthat was supplied in the request. pathRedirect cannot be supplied\ntogether with prefixRedirect. Supply one alone or neither. If neither is\nsupplied, the path of the original request will be used for the redirect.\nThe value must be between 1 and 1024 characters.","description_kind":"plain","optional":true},"prefix_redirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the\nHttpRouteRuleMatch, retaining the remaining portion of the URL before\nredirecting the request. prefixRedirect cannot be supplied together with\npathRedirect. Supply one alone or neither. If neither is supplied, the\npath of the original request will be used for the redirect. The value\nmust be between 1 and 1024 characters.","description_kind":"plain","optional":true},"redirect_response_code":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n\n* FOUND, which corresponds to 302.\n\n* SEE_OTHER which corresponds to 303.\n\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method\nwill be retained.\n\n* PERMANENT_REDIRECT, which corresponds to 308. In this case,\nthe request method will be retained. Possible values: [\"FOUND\", \"MOVED_PERMANENTLY_DEFAULT\", \"PERMANENT_REDIRECT\", \"SEE_OTHER\", \"TEMPORARY_REDIRECT\"]","description_kind":"plain","optional":true},"strip_query":{"type":"bool","description":"If set to true, any accompanying query portion of the original URL is\nremoved prior to redirecting the request. If set to false, the query\nportion of the original URL is retained. The default value is false.","description_kind":"plain","optional":true}},"description":"When this rule is matched, the request is redirected to a URL specified by\nurlRedirect. If urlRedirect is specified, service or routeAction must not be\nset.","description_kind":"plain"},"max_items":1}},"description":"The list of ordered HTTP route rules. Use this list instead of pathRules when\nadvanced route matching and routing actions are desired. The order of specifying\nrouteRules matters: the first rule that matches will cause its specified routing\naction to take effect. Within a given pathMatcher, only one of pathRules or\nrouteRules must be set. routeRules are not supported in UrlMaps intended for\nExternal load balancers.","description_kind":"plain"}}},"description":"The list of named PathMatchers to use against the URL.","description_kind":"plain"}},"test":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Description of this test case.","description_kind":"plain","optional":true},"host":{"type":"string","description":"Host portion of the URL.","description_kind":"plain","required":true},"path":{"type":"string","description":"Path portion of the URL.","description_kind":"plain","required":true},"service":{"type":"string","description":"A reference to expected RegionBackendService resource the given URL should be mapped to.","description_kind":"plain","required":true}},"description":"The list of expected URL mappings. Requests to update this UrlMap will\nsucceed only if all of the test cases pass.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_reservation":{"version":0,"block":{"attributes":{"commitment":{"type":"string","description":"Full or partial URL to a parent commitment. This field displays for\nreservations that are tied to a commitment.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"specific_reservation_required":{"type":"bool","description":"When set to true, only VMs that target this reservation by name can\nconsume this reservation. Otherwise, it can be consumed by VMs with\naffinity for any reservation. Defaults to false.","description_kind":"plain","optional":true},"status":{"type":"string","description":"The status of the reservation.","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone where the reservation is made.","description_kind":"plain","required":true}},"block_types":{"share_settings":{"nesting_mode":"list","block":{"attributes":{"share_type":{"type":"string","description":"Type of sharing for this shared-reservation Possible values: [\"LOCAL\", \"SPECIFIC_PROJECTS\"]","description_kind":"plain","optional":true,"computed":true}},"block_types":{"project_map":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The project id/number, should be same as the key of this project config in the project map.","description_kind":"plain","optional":true}},"description":"A map of project number and project config. This is only valid when shareType's value is SPECIFIC_PROJECTS.","description_kind":"plain"}}},"description":"The share setting for reservations.","description_kind":"plain"},"max_items":1},"specific_reservation":{"nesting_mode":"list","block":{"attributes":{"count":{"type":"number","description":"The number of resources that are allocated.","description_kind":"plain","required":true},"in_use_count":{"type":"number","description":"How many instances are in use.","description_kind":"plain","computed":true}},"block_types":{"instance_properties":{"nesting_mode":"list","block":{"attributes":{"machine_type":{"type":"string","description":"The name of the machine type to reserve.","description_kind":"plain","required":true},"min_cpu_platform":{"type":"string","description":"The minimum CPU platform for the reservation. For example,\n'\"Intel Skylake\"'. See\nthe CPU platform availability reference](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform#availablezones)\nfor information on available CPU platforms.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"guest_accelerators":{"nesting_mode":"list","block":{"attributes":{"accelerator_count":{"type":"number","description":"The number of the guest accelerator cards exposed to\nthis instance.","description_kind":"plain","required":true},"accelerator_type":{"type":"string","description":"The full or partial URL of the accelerator type to\nattach to this instance. For example:\n'projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100'\n\nIf you are creating an instance template, specify only the accelerator name.","description_kind":"plain","required":true}},"description":"Guest accelerator type and count.","description_kind":"plain"}},"local_ssds":{"nesting_mode":"list","block":{"attributes":{"disk_size_gb":{"type":"number","description":"The size of the disk in base-2 GB.","description_kind":"plain","required":true},"interface":{"type":"string","description":"The disk interface to use for attaching this disk. Default value: \"SCSI\" Possible values: [\"SCSI\", \"NVME\"]","description_kind":"plain","optional":true}},"description":"The amount of local ssd to reserve with each instance. This\nreserves disks of type 'local-ssd'.","description_kind":"plain"}}},"description":"The instance properties for the reservation.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Reservation for instances with specific machine shapes.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_resource_policy":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the resource, provided by the client when initially creating\nthe resource. The resource name must be 1-63 characters long, and comply\nwith RFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])'? which means the\nfirst character must be a lowercase letter, and all following characters\nmust be a dash, lowercase letter, or digit, except the last character,\nwhich cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region where resource policy resides.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"group_placement_policy":{"nesting_mode":"list","block":{"attributes":{"availability_domain_count":{"type":"number","description":"The number of availability domains instances will be spread across. If two instances are in different\navailability domain, they will not be put in the same low latency network","description_kind":"plain","optional":true},"collocation":{"type":"string","description":"Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network.\nSpecify 'COLLOCATED' to enable collocation. Can only be specified with 'vm_count'. If compute instances are created\nwith a COLLOCATED policy, then exactly 'vm_count' instances must be created at the same time with the resource policy\nattached. Possible values: [\"COLLOCATED\"]","description_kind":"plain","optional":true},"vm_count":{"type":"number","description":"Number of vms in this placement group.","description_kind":"plain","optional":true}},"description":"Resource policy for instances used for placement configuration.","description_kind":"plain"},"max_items":1},"instance_schedule_policy":{"nesting_mode":"list","block":{"attributes":{"expiration_time":{"type":"string","description":"The expiration time of the schedule. The timestamp is an RFC3339 string.","description_kind":"plain","optional":true},"start_time":{"type":"string","description":"The start time of the schedule. The timestamp is an RFC3339 string.","description_kind":"plain","optional":true},"time_zone":{"type":"string","description":"Specifies the time zone to be used in interpreting the schedule. The value of this field must be a time zone name\nfrom the tz database: http://en.wikipedia.org/wiki/Tz_database.","description_kind":"plain","required":true}},"block_types":{"vm_start_schedule":{"nesting_mode":"list","block":{"attributes":{"schedule":{"type":"string","description":"Specifies the frequency for the operation, using the unix-cron format.","description_kind":"plain","required":true}},"description":"Specifies the schedule for starting instances.","description_kind":"plain"},"max_items":1},"vm_stop_schedule":{"nesting_mode":"list","block":{"attributes":{"schedule":{"type":"string","description":"Specifies the frequency for the operation, using the unix-cron format.","description_kind":"plain","required":true}},"description":"Specifies the schedule for stopping instances.","description_kind":"plain"},"max_items":1}},"description":"Resource policy for scheduling instance operations.","description_kind":"plain"},"max_items":1},"snapshot_schedule_policy":{"nesting_mode":"list","block":{"block_types":{"retention_policy":{"nesting_mode":"list","block":{"attributes":{"max_retention_days":{"type":"number","description":"Maximum age of the snapshot that is allowed to be kept.","description_kind":"plain","required":true},"on_source_disk_delete":{"type":"string","description":"Specifies the behavior to apply to scheduled snapshots when\nthe source disk is deleted. Default value: \"KEEP_AUTO_SNAPSHOTS\" Possible values: [\"KEEP_AUTO_SNAPSHOTS\", \"APPLY_RETENTION_POLICY\"]","description_kind":"plain","optional":true}},"description":"Retention policy applied to snapshots created by this resource policy.","description_kind":"plain"},"max_items":1},"schedule":{"nesting_mode":"list","block":{"block_types":{"daily_schedule":{"nesting_mode":"list","block":{"attributes":{"days_in_cycle":{"type":"number","description":"The number of days between snapshots.","description_kind":"plain","required":true},"start_time":{"type":"string","description":"This must be in UTC format that resolves to one of\n00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example,\nboth 13:00-5 and 08:00 are valid.","description_kind":"plain","required":true}},"description":"The policy will execute every nth day at the specified time.","description_kind":"plain"},"max_items":1},"hourly_schedule":{"nesting_mode":"list","block":{"attributes":{"hours_in_cycle":{"type":"number","description":"The number of hours between snapshots.","description_kind":"plain","required":true},"start_time":{"type":"string","description":"Time within the window to start the operations.\nIt must be in an hourly format \"HH:MM\",\nwhere HH : [00-23] and MM : [00] GMT.\neg: 21:00","description_kind":"plain","required":true}},"description":"The policy will execute every nth hour starting at the specified time.","description_kind":"plain"},"max_items":1},"weekly_schedule":{"nesting_mode":"list","block":{"block_types":{"day_of_weeks":{"nesting_mode":"set","block":{"attributes":{"day":{"type":"string","description":"The day of the week to create the snapshot. e.g. MONDAY Possible values: [\"MONDAY\", \"TUESDAY\", \"WEDNESDAY\", \"THURSDAY\", \"FRIDAY\", \"SATURDAY\", \"SUNDAY\"]","description_kind":"plain","required":true},"start_time":{"type":"string","description":"Time within the window to start the operations.\nIt must be in format \"HH:MM\", where HH : [00-23] and MM : [00-00] GMT.","description_kind":"plain","required":true}},"description":"May contain up to seven (one for each day of the week) snapshot times.","description_kind":"plain"},"min_items":1,"max_items":7}},"description":"Allows specifying a snapshot time for each day of the week.","description_kind":"plain"},"max_items":1}},"description":"Contains one of an 'hourlySchedule', 'dailySchedule', or 'weeklySchedule'.","description_kind":"plain"},"min_items":1,"max_items":1},"snapshot_properties":{"nesting_mode":"list","block":{"attributes":{"guest_flush":{"type":"bool","description":"Whether to perform a 'guest aware' snapshot.","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"A set of key-value pairs.","description_kind":"plain","optional":true},"storage_locations":{"type":["set","string"],"description":"Cloud Storage bucket location to store the auto snapshot\n(regional or multi-regional)","description_kind":"plain","optional":true}},"description":"Properties with which the snapshots are created, such as labels.","description_kind":"plain"},"max_items":1}},"description":"Policy for creating snapshots of persistent disks.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_route":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional description of this resource. Provide this property\nwhen you create the resource.","description_kind":"plain","optional":true},"dest_range":{"type":"string","description":"The destination range of outgoing packets that this route applies to.\nOnly IPv4 is supported.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the\nlast character, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"The network that this route applies to.","description_kind":"plain","required":true},"next_hop_gateway":{"type":"string","description":"URL to a gateway that should handle matching packets.\nCurrently, you can only specify the internet gateway, using a full or\npartial valid URL:\n* 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway'\n* 'projects/project/global/gateways/default-internet-gateway'\n* 'global/gateways/default-internet-gateway'\n* The string 'default-internet-gateway'.","description_kind":"plain","optional":true},"next_hop_ilb":{"type":"string","description":"The IP address or URL to a forwarding rule of type\nloadBalancingScheme=INTERNAL that should handle matching\npackets.\n\nWith the GA provider you can only specify the forwarding\nrule as a partial or full URL. For example, the following\nare all valid values:\n* 10.128.0.56\n* https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule\n* regions/region/forwardingRules/forwardingRule\n\nWhen the beta provider, you can also specify the IP address\nof a forwarding rule from the same VPC or any peered VPC.\n\nNote that this can only be used when the destinationRange is\na public (non-RFC 1918) IP CIDR range.","description_kind":"plain","optional":true},"next_hop_instance":{"type":"string","description":"URL to an instance that should handle matching packets.\nYou can specify this as a full or partial URL. For example:\n* 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance'\n* 'projects/project/zones/zone/instances/instance'\n* 'zones/zone/instances/instance'\n* Just the instance name, with the zone in 'next_hop_instance_zone'.","description_kind":"plain","optional":true},"next_hop_instance_zone":{"type":"string","description":"The zone of the instance specified in next_hop_instance. Omit if next_hop_instance is specified as a URL.","description_kind":"plain","optional":true,"computed":true},"next_hop_ip":{"type":"string","description":"Network IP address of an instance that should handle matching packets.","description_kind":"plain","optional":true,"computed":true},"next_hop_network":{"type":"string","description":"URL to a Network that should handle matching packets.","description_kind":"plain","computed":true},"next_hop_vpn_tunnel":{"type":"string","description":"URL to a VpnTunnel that should handle matching packets.","description_kind":"plain","optional":true},"priority":{"type":"number","description":"The priority of this route. Priority is used to break ties in cases\nwhere there is more than one matching route of equal prefix length.\n\nIn the case of two routes with equal prefix length, the one with the\nlowest-numbered priority value wins.\n\nDefault value is 1000. Valid range is 0 through 65535.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"A list of instance tags to which this route applies.","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_router":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"encrypted_interconnect_router":{"type":"bool","description":"Field to indicate if a router is dedicated to use with encrypted\nInterconnect Attachment (IPsec-encrypted Cloud Interconnect feature).\n\nNot currently available publicly.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. The name must be 1-63 characters long, and\ncomply with RFC1035. Specifically, the name must be 1-63 characters\nlong and match the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?'\nwhich means the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit,\nexcept the last character, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"A reference to the network to which this router belongs.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region where the router resides.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"bgp":{"nesting_mode":"list","block":{"attributes":{"advertise_mode":{"type":"string","description":"User-specified flag to indicate which mode to use for advertisement. Default value: \"DEFAULT\" Possible values: [\"DEFAULT\", \"CUSTOM\"]","description_kind":"plain","optional":true},"advertised_groups":{"type":["list","string"],"description":"User-specified list of prefix groups to advertise in custom mode.\nThis field can only be populated if advertiseMode is CUSTOM and\nis advertised to all peers of the router. These groups will be\nadvertised in addition to any specified prefixes. Leave this field\nblank to advertise no custom groups.\n\nThis enum field has the one valid value: ALL_SUBNETS","description_kind":"plain","optional":true},"asn":{"type":"number","description":"Local BGP Autonomous System Number (ASN). Must be an RFC6996\nprivate ASN, either 16-bit or 32-bit. The value will be fixed for\nthis router resource. All VPN tunnels that link to this router\nwill have the same local ASN.","description_kind":"plain","required":true},"keepalive_interval":{"type":"number","description":"The interval in seconds between BGP keepalive messages that are sent to the peer.\nHold time is three times the interval at which keepalive messages are sent, and the hold time is the\nmaximum number of seconds allowed to elapse between successive keepalive messages that BGP receives from a peer.\nBGP will use the smaller of either the local hold time value or the peer's hold time value as the hold time for\nthe BGP connection between the two peers. If set, this value must be between 20 and 60. The default is 20.","description_kind":"plain","optional":true}},"block_types":{"advertised_ip_ranges":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"User-specified description for the IP range.","description_kind":"plain","optional":true},"range":{"type":"string","description":"The IP range to advertise. The value must be a\nCIDR-formatted string.","description_kind":"plain","required":true}},"description":"User-specified list of individual IP ranges to advertise in\ncustom mode. This field can only be populated if advertiseMode\nis CUSTOM and is advertised to all peers of the router. These IP\nranges will be advertised in addition to any specified groups.\nLeave this field blank to advertise no custom IP ranges.","description_kind":"plain"}}},"description":"BGP information specific to this router.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_router_interface":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"interconnect_attachment":{"type":"string","description":"The name or resource link to the VLAN interconnect for this interface. Changing this forces a new interface to be created. Only one of vpn_tunnel and interconnect_attachment can be specified.","description_kind":"plain","optional":true},"ip_range":{"type":"string","description":"IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. Changing this forces a new interface to be created.","description_kind":"plain","optional":true},"name":{"type":"string","description":"A unique name for the interface, required by GCE. Changing this forces a new interface to be created.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which this interface's router belongs. If it is not provided, the provider project is used. Changing this forces a new interface to be created.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region this interface's router sits in. If not specified, the project region will be used. Changing this forces a new interface to be created.","description_kind":"plain","optional":true,"computed":true},"router":{"type":"string","description":"The name of the router this interface will be attached to. Changing this forces a new interface to be created.","description_kind":"plain","required":true},"vpn_tunnel":{"type":"string","description":"The name or resource link to the VPN tunnel this interface will be linked to. Changing this forces a new interface to be created. Only one of vpn_tunnel and interconnect_attachment can be specified.","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_router_nat":{"version":0,"block":{"attributes":{"drain_nat_ips":{"type":["set","string"],"description":"A list of URLs of the IP resources to be drained. These IPs must be\nvalid static external IPs that have been assigned to the NAT.","description_kind":"plain","optional":true},"enable_endpoint_independent_mapping":{"type":"bool","description":"Specifies if endpoint independent mapping is enabled. This is enabled by default. For more information\nsee the [official documentation](https://cloud.google.com/nat/docs/overview#specs-rfcs).","description_kind":"plain","optional":true},"icmp_idle_timeout_sec":{"type":"number","description":"Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"min_ports_per_vm":{"type":"number","description":"Minimum number of ports allocated to a VM from this NAT.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the NAT service. The name must be 1-63 characters long and\ncomply with RFC1035.","description_kind":"plain","required":true},"nat_ip_allocate_option":{"type":"string","description":"How external IPs should be allocated for this NAT. Valid values are\n'AUTO_ONLY' for only allowing NAT IPs allocated by Google Cloud\nPlatform, or 'MANUAL_ONLY' for only user-allocated NAT IP addresses. Possible values: [\"MANUAL_ONLY\", \"AUTO_ONLY\"]","description_kind":"plain","required":true},"nat_ips":{"type":["set","string"],"description":"Self-links of NAT IPs. Only valid if natIpAllocateOption\nis set to MANUAL_ONLY.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region where the router and NAT reside.","description_kind":"plain","optional":true,"computed":true},"router":{"type":"string","description":"The name of the Cloud Router in which this NAT will be configured.","description_kind":"plain","required":true},"source_subnetwork_ip_ranges_to_nat":{"type":"string","description":"How NAT should be configured per Subnetwork.\nIf 'ALL_SUBNETWORKS_ALL_IP_RANGES', all of the\nIP ranges in every Subnetwork are allowed to Nat.\nIf 'ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES', all of the primary IP\nranges in every Subnetwork are allowed to Nat.\n'LIST_OF_SUBNETWORKS': A list of Subnetworks are allowed to Nat\n(specified in the field subnetwork below). Note that if this field\ncontains ALL_SUBNETWORKS_ALL_IP_RANGES or\nALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any\nother RouterNat section in any Router for this network in this region. Possible values: [\"ALL_SUBNETWORKS_ALL_IP_RANGES\", \"ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES\", \"LIST_OF_SUBNETWORKS\"]","description_kind":"plain","required":true},"tcp_established_idle_timeout_sec":{"type":"number","description":"Timeout (in seconds) for TCP established connections.\nDefaults to 1200s if not set.","description_kind":"plain","optional":true},"tcp_transitory_idle_timeout_sec":{"type":"number","description":"Timeout (in seconds) for TCP transitory connections.\nDefaults to 30s if not set.","description_kind":"plain","optional":true},"udp_idle_timeout_sec":{"type":"number","description":"Timeout (in seconds) for UDP connections. Defaults to 30s if not set.","description_kind":"plain","optional":true}},"block_types":{"log_config":{"nesting_mode":"list","block":{"attributes":{"enable":{"type":"bool","description":"Indicates whether or not to export logs.","description_kind":"plain","required":true},"filter":{"type":"string","description":"Specifies the desired filtering of logs on this NAT. Possible values: [\"ERRORS_ONLY\", \"TRANSLATIONS_ONLY\", \"ALL\"]","description_kind":"plain","required":true}},"description":"Configuration for logging on NAT","description_kind":"plain"},"max_items":1},"subnetwork":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description":"Self-link of subnetwork to NAT","description_kind":"plain","required":true},"secondary_ip_range_names":{"type":["set","string"],"description":"List of the secondary ranges of the subnetwork that are allowed\nto use NAT. This can be populated only if\n'LIST_OF_SECONDARY_IP_RANGES' is one of the values in\nsourceIpRangesToNat","description_kind":"plain","optional":true},"source_ip_ranges_to_nat":{"type":["set","string"],"description":"List of options for which source IPs in the subnetwork\nshould have NAT enabled. Supported values include:\n'ALL_IP_RANGES', 'LIST_OF_SECONDARY_IP_RANGES',\n'PRIMARY_IP_RANGE'.","description_kind":"plain","required":true}},"description":"One or more subnetwork NAT configurations. Only used if\n'source_subnetwork_ip_ranges_to_nat' is set to 'LIST_OF_SUBNETWORKS'","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_router_peer":{"version":0,"block":{"attributes":{"advertise_mode":{"type":"string","description":"User-specified flag to indicate which mode to use for advertisement.\nValid values of this enum field are: 'DEFAULT', 'CUSTOM' Default value: \"DEFAULT\" Possible values: [\"DEFAULT\", \"CUSTOM\"]","description_kind":"plain","optional":true},"advertised_groups":{"type":["list","string"],"description":"User-specified list of prefix groups to advertise in custom\nmode, which can take one of the following options:\n\n* 'ALL_SUBNETS': Advertises all available subnets, including peer VPC subnets.\n* 'ALL_VPC_SUBNETS': Advertises the router's own VPC subnets.\n* 'ALL_PEER_VPC_SUBNETS': Advertises peer subnets of the router's VPC network.\n\n\nNote that this field can only be populated if advertiseMode is 'CUSTOM'\nand overrides the list defined for the router (in the \"bgp\" message).\nThese groups are advertised in addition to any specified prefixes.\nLeave this field blank to advertise no custom groups.","description_kind":"plain","optional":true},"advertised_route_priority":{"type":"number","description":"The priority of routes advertised to this BGP peer.\nWhere there is more than one matching route of maximum\nlength, the routes with the lowest priority value win.","description_kind":"plain","optional":true},"enable":{"type":"bool","description":"The status of the BGP peer connection. If set to false, any active session\nwith the peer is terminated and all associated routing information is removed.\nIf set to true, the peer connection can be established with routing information.\nThe default is true.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"interface":{"type":"string","description":"Name of the interface the BGP peer is associated with.","description_kind":"plain","required":true},"ip_address":{"type":"string","description":"IP address of the interface inside Google Cloud Platform.\nOnly IPv4 is supported.","description_kind":"plain","optional":true,"computed":true},"management_type":{"type":"string","description":"The resource that configures and manages this BGP peer.\n\n* 'MANAGED_BY_USER' is the default value and can be managed by\nyou or other users\n* 'MANAGED_BY_ATTACHMENT' is a BGP peer that is configured and\nmanaged by Cloud Interconnect, specifically by an\nInterconnectAttachment of type PARTNER. Google automatically\ncreates, updates, and deletes this type of BGP peer when the\nPARTNER InterconnectAttachment is created, updated,\nor deleted.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of this BGP peer. The name must be 1-63 characters long,\nand comply with RFC1035. Specifically, the name must be 1-63 characters\nlong and match the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which\nmeans the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit,\nexcept the last character, which cannot be a dash.","description_kind":"plain","required":true},"peer_asn":{"type":"number","description":"Peer BGP Autonomous System Number (ASN).\nEach BGP interface may use a different value.","description_kind":"plain","required":true},"peer_ip_address":{"type":"string","description":"IP address of the BGP interface outside Google Cloud Platform.\nOnly IPv4 is supported.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region where the router and BgpPeer reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"router":{"type":"string","description":"The name of the Cloud Router in which this BgpPeer will be configured.","description_kind":"plain","required":true}},"block_types":{"advertised_ip_ranges":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"User-specified description for the IP range.","description_kind":"plain","optional":true},"range":{"type":"string","description":"The IP range to advertise. The value must be a\nCIDR-formatted string.","description_kind":"plain","required":true}},"description":"User-specified list of individual IP ranges to advertise in\ncustom mode. This field can only be populated if advertiseMode\nis 'CUSTOM' and is advertised to all peers of the router. These IP\nranges will be advertised in addition to any specified groups.\nLeave this field blank to advertise no custom IP ranges.","description_kind":"plain"}},"bfd":{"nesting_mode":"list","block":{"attributes":{"min_receive_interval":{"type":"number","description":"The minimum interval, in milliseconds, between BFD control packets\nreceived from the peer router. The actual value is negotiated\nbetween the two routers and is equal to the greater of this value\nand the transmit interval of the other router. If set, this value\nmust be between 1000 and 30000.","description_kind":"plain","optional":true},"min_transmit_interval":{"type":"number","description":"The minimum interval, in milliseconds, between BFD control packets\ntransmitted to the peer router. The actual value is negotiated\nbetween the two routers and is equal to the greater of this value\nand the corresponding receive interval of the other router. If set,\nthis value must be between 1000 and 30000.","description_kind":"plain","optional":true},"multiplier":{"type":"number","description":"The number of consecutive BFD packets that must be missed before\nBFD declares that a peer is unavailable. If set, the value must\nbe a value between 5 and 16.","description_kind":"plain","optional":true},"session_initialization_mode":{"type":"string","description":"The BFD session initialization mode for this BGP peer.\nIf set to 'ACTIVE', the Cloud Router will initiate the BFD session\nfor this BGP peer. If set to 'PASSIVE', the Cloud Router will wait\nfor the peer router to initiate the BFD session for this BGP peer.\nIf set to 'DISABLED', BFD is disabled for this BGP peer. Possible values: [\"ACTIVE\", \"DISABLED\", \"PASSIVE\"]","description_kind":"plain","required":true}},"description":"BFD configuration for the BGP peering.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_security_policy":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional description of this security policy. Max size is 2048.","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the security policy.","description_kind":"plain","required":true},"project":{"type":"string","description":"The project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type indicates the intended use of the security policy. CLOUD_ARMOR - Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter requests before they hit the origin servers. CLOUD_ARMOR_EDGE - Cloud Armor edge security policies can be configured to filter incoming HTTP requests targeting backend services (including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They filter requests before the request is served from Google's cache.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"rule":{"nesting_mode":"set","block":{"attributes":{"action":{"type":"string","description":"Action to take when match matches the request.","description_kind":"plain","required":true},"description":{"type":"string","description":"An optional description of this rule. Max size is 64.","description_kind":"plain","optional":true},"preview":{"type":"bool","description":"When set to true, the action specified above is not enforced. Stackdriver logs for requests that trigger a preview action are annotated as such.","description_kind":"plain","optional":true,"computed":true},"priority":{"type":"number","description":"An unique positive integer indicating the priority of evaluation for a rule. Rules are evaluated from highest priority (lowest numerically) to lowest priority (highest numerically) in order.","description_kind":"plain","required":true}},"block_types":{"match":{"nesting_mode":"list","block":{"attributes":{"versioned_expr":{"type":"string","description":"Predefined rule expression. If this field is specified, config must also be specified. Available options: SRC_IPS_V1: Must specify the corresponding src_ip_ranges field in config.","description_kind":"plain","optional":true}},"block_types":{"config":{"nesting_mode":"list","block":{"attributes":{"src_ip_ranges":{"type":["set","string"],"description":"Set of IP addresses or ranges (IPV4 or IPV6) in CIDR notation to match against inbound traffic. There is a limit of 10 IP ranges per rule. A value of '*' matches all IPs (can be used to override the default behavior).","description_kind":"plain","required":true}},"description":"The configuration options available when specifying versioned_expr. This field must be specified if versioned_expr is specified and cannot be specified if versioned_expr is not specified.","description_kind":"plain"},"max_items":1},"expr":{"nesting_mode":"list","block":{"attributes":{"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported.","description_kind":"plain","required":true}},"description":"User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header.","description_kind":"plain"},"max_items":1}},"description":"A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding action is enforced.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match \"*\"). If no rules are provided when creating a security policy, a default rule with action \"allow\" will be added.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_service_attachment":{"version":0,"block":{"attributes":{"connected_endpoints":{"type":["list",["object",{"endpoint":"string","status":"string"}]],"description":"An array of the consumer forwarding rules connected to this service\nattachment.","description_kind":"plain","computed":true},"connection_preference":{"type":"string","description":"The connection preference to use for this service attachment. Valid\nvalues include \"ACCEPT_AUTOMATIC\", \"ACCEPT_MANUAL\".","description_kind":"plain","required":true},"consumer_reject_lists":{"type":["list","string"],"description":"An array of projects that are not allowed to connect to this service\nattachment.","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"enable_proxy_protocol":{"type":"bool","description":"If true, enable the proxy protocol which is for supplying client TCP/IP\naddress data in TCP connections that traverse proxies on their way to\ndestination servers.","description_kind":"plain","required":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource. This field is used internally during\nupdates of this resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. The name must be 1-63 characters long, and\ncomply with RFC1035. Specifically, the name must be 1-63 characters\nlong and match the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?'\nwhich means the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit,\nexcept the last character, which cannot be a dash.","description_kind":"plain","required":true},"nat_subnets":{"type":["list","string"],"description":"An array of subnets that is provided for NAT in this service attachment.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"URL of the region where the resource resides.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"target_service":{"type":"string","description":"The URL of a forwarding rule that represents the service identified by\nthis service attachment.","description_kind":"plain","required":true}},"block_types":{"consumer_accept_lists":{"nesting_mode":"list","block":{"attributes":{"connection_limit":{"type":"number","description":"The number of consumer forwarding rules the consumer project can\ncreate.","description_kind":"plain","required":true},"project_id_or_num":{"type":"string","description":"A project that is allowed to connect to this service attachment.","description_kind":"plain","required":true}},"description":"An array of projects that are allowed to connect to this service\nattachment.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_shared_vpc_host_project":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description":"The ID of the project that will serve as a Shared VPC host project","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_shared_vpc_service_project":{"version":0,"block":{"attributes":{"host_project":{"type":"string","description":"The ID of a host project to associate.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_project":{"type":"string","description":"The ID of the project that will serve as a Shared VPC service project.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_snapshot":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"disk_size_gb":{"type":"number","description":"Size of the snapshot, specified in GB.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label_fingerprint":{"type":"string","description":"The fingerprint used for optimistic locking of this resource. Used\ninternally during updates.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Labels to apply to this Snapshot.","description_kind":"plain","optional":true},"licenses":{"type":["list","string"],"description":"A list of public visible licenses that apply to this snapshot. This\ncan be because the original image had licenses attached (such as a\nWindows image). snapshotEncryptionKey nested object Encrypts the\nsnapshot using a customer-supplied encryption key.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"snapshot_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"source_disk":{"type":"string","description":"A reference to the disk used to create this snapshot.","description_kind":"plain","required":true},"storage_bytes":{"type":"number","description":"A size of the storage used by the snapshot. As snapshots share\nstorage, this number is expected to change with snapshot\ncreation/deletion.","description_kind":"plain","computed":true},"storage_locations":{"type":["list","string"],"description":"Cloud Storage bucket storage location of the snapshot (regional or multi-regional).","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"A reference to the zone where the disk is hosted.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"snapshot_encryption_key":{"nesting_mode":"list","block":{"attributes":{"kms_key_self_link":{"type":"string","description":"The name of the encryption key that is stored in Google Cloud KMS.","description_kind":"plain","optional":true},"kms_key_service_account":{"type":"string","description":"The service account used for the encryption request for the given KMS key.\nIf absent, the Compute Engine Service Agent service account is used.","description_kind":"plain","optional":true},"raw_key":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.","description_kind":"plain","optional":true,"sensitive":true},"sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.","description_kind":"plain","computed":true}},"description":"The customer-supplied encryption key of the snapshot. Required if the\nsource snapshot is protected by a customer-supplied encryption key.","description_kind":"plain"},"max_items":1},"source_disk_encryption_key":{"nesting_mode":"list","block":{"attributes":{"kms_key_service_account":{"type":"string","description":"The service account used for the encryption request for the given KMS key.\nIf absent, the Compute Engine Service Agent service account is used.","description_kind":"plain","optional":true},"raw_key":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.","description_kind":"plain","optional":true,"sensitive":true}},"description":"The customer-supplied encryption key of the source snapshot. Required\nif the source snapshot is protected by a customer-supplied encryption\nkey.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_ssl_certificate":{"version":0,"block":{"attributes":{"certificate":{"type":"string","description":"The certificate in PEM format.\nThe certificate chain must be no greater than 5 certs long.\nThe chain must include at least one intermediate cert.","description_kind":"plain","required":true,"sensitive":true},"certificate_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.\n\n\nThese are in the same namespace as the managed SSL certificates.","description_kind":"plain","optional":true,"computed":true},"name_prefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with name.","description_kind":"plain","optional":true,"computed":true},"private_key":{"type":"string","description":"The write-only private key in PEM format.","description_kind":"plain","required":true,"sensitive":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_ssl_policy":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"custom_features":{"type":["set","string"],"description":"Profile specifies the set of SSL features that can be used by the\nload balancer when negotiating SSL with clients. This can be one of\n'COMPATIBLE', 'MODERN', 'RESTRICTED', or 'CUSTOM'. If using 'CUSTOM',\nthe set of SSL features to enable must be specified in the\n'customFeatures' field.\n\nSee the [official documentation](https://cloud.google.com/compute/docs/load-balancing/ssl-policies#profilefeaturesupport)\nfor which ciphers are available to use. **Note**: this argument\n*must* be present when using the 'CUSTOM' profile. This argument\n*must not* be present when using any other profile.","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"enabled_features":{"type":["set","string"],"description":"The list of features enabled in the SSL policy.","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource. A hash of the contents stored in this\nobject. This field is used in optimistic locking.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"min_tls_version":{"type":"string","description":"The minimum version of SSL protocol that can be used by the clients\nto establish a connection with the load balancer. Default value: \"TLS_1_0\" Possible values: [\"TLS_1_0\", \"TLS_1_1\", \"TLS_1_2\"]","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"profile":{"type":"string","description":"Profile specifies the set of SSL features that can be used by the\nload balancer when negotiating SSL with clients. If using 'CUSTOM',\nthe set of SSL features to enable must be specified in the\n'customFeatures' field.\n\nSee the [official documentation](https://cloud.google.com/compute/docs/load-balancing/ssl-policies#profilefeaturesupport)\nfor information on what cipher suites each profile provides. If\n'CUSTOM' is used, the 'custom_features' attribute **must be set**. Default value: \"COMPATIBLE\" Possible values: [\"COMPATIBLE\", \"MODERN\", \"RESTRICTED\", \"CUSTOM\"]","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_subnetwork":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource. This field can be set only at resource\ncreation time.","description_kind":"plain","optional":true},"external_ipv6_prefix":{"type":"string","description":"The range of external IPv6 addresses that are owned by this subnetwork.","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource. This field is used internally during updates of this resource.","description_kind":"plain","deprecated":true,"computed":true},"gateway_address":{"type":"string","description":"The gateway address for default routes to reach destination addresses\noutside this subnetwork.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_cidr_range":{"type":"string","description":"The range of internal addresses that are owned by this subnetwork.\nProvide this property when you create the subnetwork. For example,\n10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and\nnon-overlapping within a network. Only IPv4 is supported.","description_kind":"plain","required":true},"ipv6_access_type":{"type":"string","description":"The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation\nor the first time the subnet is updated into IPV4_IPV6 dual stack. If the ipv6_type is EXTERNAL then this subnet\ncannot enable direct path. Possible values: [\"EXTERNAL\"]","description_kind":"plain","optional":true},"ipv6_cidr_range":{"type":"string","description":"The range of internal IPv6 addresses that are owned by this subnetwork.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the resource, provided by the client when initially\ncreating the resource. The name must be 1-63 characters long, and\ncomply with RFC1035. Specifically, the name must be 1-63 characters\nlong and match the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which\nmeans the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit,\nexcept the last character, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"The network this subnet belongs to.\nOnly networks that are in the distributed mode can have subnetworks.","description_kind":"plain","required":true},"private_ip_google_access":{"type":"bool","description":"When enabled, VMs in this subnetwork without external IP addresses can\naccess Google APIs and services by using Private Google Access.","description_kind":"plain","optional":true},"private_ipv6_google_access":{"type":"string","description":"The private IPv6 google access type for the VMs in this subnet.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"purpose":{"type":"string","description":"The purpose of the resource. A subnetwork with purpose set to\nINTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is\nreserved for Internal HTTP(S) Load Balancing.\n\nIf set to INTERNAL_HTTPS_LOAD_BALANCER you must also set the 'role' field.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The GCP region for this subnetwork.","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description":"The role of subnetwork. Currently, this field is only used when\npurpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE\nor BACKUP. An ACTIVE subnetwork is one that is currently being used\nfor Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one that\nis ready to be promoted to ACTIVE or is currently draining. Possible values: [\"ACTIVE\", \"BACKUP\"]","description_kind":"plain","optional":true},"secondary_ip_range":{"type":["list",["object",{"ip_cidr_range":"string","range_name":"string"}]],"description":"An array of configurations for secondary IP ranges for VM instances\ncontained in this subnetwork. The primary IP of such VM must belong\nto the primary ipCidrRange of the subnetwork. The alias IPs may belong\nto either primary or secondary ranges.\n\n**Note**: This field uses [attr-as-block mode](https://www.terraform.io/docs/configuration/attr-as-blocks.html) to avoid\nbreaking users during the 0.12 upgrade. To explicitly send a list\nof zero objects you must use the following syntax:\n'example=[]'\nFor more details about this behavior, see [this section](https://www.terraform.io/docs/configuration/attr-as-blocks.html#defining-a-fixed-object-collection-value).","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"stack_type":{"type":"string","description":"The stack type for this subnet to identify whether the IPv6 feature is enabled or not.\nIf not specified IPV4_ONLY will be used. Possible values: [\"IPV4_ONLY\", \"IPV4_IPV6\"]","description_kind":"plain","optional":true,"computed":true}},"block_types":{"log_config":{"nesting_mode":"list","block":{"attributes":{"aggregation_interval":{"type":"string","description":"Can only be specified if VPC flow logging for this subnetwork is enabled.\nToggles the aggregation interval for collecting flow logs. Increasing the\ninterval time will reduce the amount of generated flow logs for long\nlasting connections. Default is an interval of 5 seconds per connection. Default value: \"INTERVAL_5_SEC\" Possible values: [\"INTERVAL_5_SEC\", \"INTERVAL_30_SEC\", \"INTERVAL_1_MIN\", \"INTERVAL_5_MIN\", \"INTERVAL_10_MIN\", \"INTERVAL_15_MIN\"]","description_kind":"plain","optional":true},"filter_expr":{"type":"string","description":"Export filter used to define which VPC flow logs should be logged, as as CEL expression. See\nhttps://cloud.google.com/vpc/docs/flow-logs#filtering for details on how to format this field.\nThe default value is 'true', which evaluates to include everything.","description_kind":"plain","optional":true},"flow_sampling":{"type":"number","description":"Can only be specified if VPC flow logging for this subnetwork is enabled.\nThe value of the field must be in [0, 1]. Set the sampling rate of VPC\nflow logs within the subnetwork where 1.0 means all collected logs are\nreported and 0.0 means no logs are reported. Default is 0.5 which means\nhalf of all collected logs are reported.","description_kind":"plain","optional":true},"metadata":{"type":"string","description":"Can only be specified if VPC flow logging for this subnetwork is enabled.\nConfigures whether metadata fields should be added to the reported VPC\nflow logs. Default value: \"INCLUDE_ALL_METADATA\" Possible values: [\"EXCLUDE_ALL_METADATA\", \"INCLUDE_ALL_METADATA\", \"CUSTOM_METADATA\"]","description_kind":"plain","optional":true},"metadata_fields":{"type":["set","string"],"description":"List of metadata fields that should be added to reported logs.\nCan only be specified if VPC flow logs for this subnetwork is enabled and \"metadata\" is set to CUSTOM_METADATA.","description_kind":"plain","optional":true}},"description":"Denotes the logging options for the subnetwork flow logs. If logging is enabled\nlogs will be exported to Stackdriver. This field cannot be set if the 'purpose' of this\nsubnetwork is 'INTERNAL_HTTPS_LOAD_BALANCER'","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_subnetwork_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"subnetwork":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_compute_subnetwork_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"subnetwork":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_compute_subnetwork_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"subnetwork":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_compute_target_grpc_proxy":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource. A hash of the contents stored in\nthis object. This field is used in optimistic locking. This field\nwill be ignored when inserting a TargetGrpcProxy. An up-to-date\nfingerprint must be provided in order to patch/update the\nTargetGrpcProxy; otherwise, the request will fail with error\n412 conditionNotMet. To see the latest fingerprint, make a get()\nrequest to retrieve the TargetGrpcProxy. A base64-encoded string.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource\nis created. The name must be 1-63 characters long, and comply\nwith RFC1035. Specifically, the name must be 1-63 characters long\nand match the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which\nmeans the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit,\nexcept the last character, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"self_link_with_id":{"type":"string","description":"Server-defined URL with id for the resource.","description_kind":"plain","computed":true},"url_map":{"type":"string","description":"URL to the UrlMap resource that defines the mapping from URL to\nthe BackendService. The protocol field in the BackendService\nmust be set to GRPC.","description_kind":"plain","optional":true},"validate_for_proxyless":{"type":"bool","description":"If true, indicates that the BackendServices referenced by\nthe urlMap may be accessed by gRPC applications without using\na sidecar proxy. This will enable configuration checks on urlMap\nand its referenced BackendServices to not allow unsupported features.\nA gRPC application must use \"xds:///\" scheme in the target URI\nof the service it is connecting to. If false, indicates that the\nBackendServices referenced by the urlMap will be accessed by gRPC\napplications via a sidecar proxy. In this case, a gRPC application\nmust not use \"xds:///\" scheme in the target URI of the service\nit is connecting to","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_target_http_proxy":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"proxy_bind":{"type":"bool","description":"This field only applies when the forwarding rule that references\nthis target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED.","description_kind":"plain","optional":true,"computed":true},"proxy_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"url_map":{"type":"string","description":"A reference to the UrlMap resource that defines the mapping from URL\nto the BackendService.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_target_https_proxy":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"proxy_bind":{"type":"bool","description":"This field only applies when the forwarding rule that references\nthis target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED.","description_kind":"plain","optional":true,"computed":true},"proxy_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"quic_override":{"type":"string","description":"Specifies the QUIC override policy for this resource. This determines\nwhether the load balancer will attempt to negotiate QUIC with clients\nor not. Can specify one of NONE, ENABLE, or DISABLE. If NONE is\nspecified, uses the QUIC policy with no user overrides, which is\nequivalent to DISABLE. Default value: \"NONE\" Possible values: [\"NONE\", \"ENABLE\", \"DISABLE\"]","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"ssl_certificates":{"type":["list","string"],"description":"A list of SslCertificate resources that are used to authenticate\nconnections between users and the load balancer. At least one SSL\ncertificate must be specified.","description_kind":"plain","required":true},"ssl_policy":{"type":"string","description":"A reference to the SslPolicy resource that will be associated with\nthe TargetHttpsProxy resource. If not set, the TargetHttpsProxy\nresource will not have any SSL policy configured.","description_kind":"plain","optional":true},"url_map":{"type":"string","description":"A reference to the UrlMap resource that defines the mapping from URL\nto the BackendService.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_target_instance":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description":"The Compute instance VM handling traffic for this target instance.\nAccepts the instance self-link, relative path\n(e.g. 'projects/project/zones/zone/instances/instance') or name. If\nname is given, the zone will default to the given zone or\nthe provider-default zone and the project will default to the\nprovider-level project.","description_kind":"plain","required":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"nat_policy":{"type":"string","description":"NAT option controlling how IPs are NAT'ed to the instance.\nCurrently only NO_NAT (default value) is supported. Default value: \"NO_NAT\" Possible values: [\"NO_NAT\"]","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"zone":{"type":"string","description":"URL of the zone where the target instance resides.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_target_pool":{"version":0,"block":{"attributes":{"backup_pool":{"type":"string","description":"URL to the backup target pool. Must also set failover_ratio.","description_kind":"plain","optional":true},"description":{"type":"string","description":"Textual description field.","description_kind":"plain","optional":true},"failover_ratio":{"type":"number","description":"Ratio (0 to 1) of failed nodes before using the backup pool (which must also be set).","description_kind":"plain","optional":true},"health_checks":{"type":["list","string"],"description":"List of zero or one health check name or self_link. Only legacy google_compute_http_health_check is supported.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instances":{"type":["set","string"],"description":"List of instances in the pool. They can be given as URLs, or in the form of \"zone/name\". Note that the instances need not exist at the time of target pool creation, so there is no need to use the Terraform interpolators to create a dependency on the instances from the target pool.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"A unique name for the resource, required by GCE. Changing this forces a new resource to be created.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Where the target pool resides. Defaults to project region.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"session_affinity":{"type":"string","description":"How to distribute load. Options are \"NONE\" (no affinity). \"CLIENT_IP\" (hash of the source/dest addresses / ports), and \"CLIENT_IP_PROTO\" also includes the protocol (default \"NONE\").","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_target_ssl_proxy":{"version":0,"block":{"attributes":{"backend_service":{"type":"string","description":"A reference to the BackendService resource.","description_kind":"plain","required":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to\nthe backend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"proxy_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"ssl_certificates":{"type":["list","string"],"description":"A list of SslCertificate resources that are used to authenticate\nconnections between users and the load balancer. At least one\nSSL certificate must be specified.","description_kind":"plain","required":true},"ssl_policy":{"type":"string","description":"A reference to the SslPolicy resource that will be associated with\nthe TargetSslProxy resource. If not set, the TargetSslProxy\nresource will not have any SSL policy configured.","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_target_tcp_proxy":{"version":0,"block":{"attributes":{"backend_service":{"type":"string","description":"A reference to the BackendService resource.","description_kind":"plain","required":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"proxy_bind":{"type":"bool","description":"This field only applies when the forwarding rule that references\nthis target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED.","description_kind":"plain","optional":true,"computed":true},"proxy_header":{"type":"string","description":"Specifies the type of proxy header to append before sending data to\nthe backend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]","description_kind":"plain","optional":true},"proxy_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_url_map":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"default_service":{"type":"string","description":"The backend service or backend bucket to use when none of the given rules match.","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create\nthe resource.","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource. A hash of the contents stored in this object. This\nfield is used in optimistic locking.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"map_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is created. The\nname must be 1-63 characters long, and comply with RFC1035. Specifically, the\nname must be 1-63 characters long and match the regular expression\n'[a-z]([-a-z0-9]*[a-z0-9])?' which means the first character must be a lowercase\nletter, and all following characters must be a dash, lowercase letter, or digit,\nexcept the last character, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"default_route_action":{"nesting_mode":"list","block":{"block_types":{"cors_policy":{"nesting_mode":"list","block":{"attributes":{"allow_credentials":{"type":"bool","description":"In response to a preflight request, setting this to true indicates that the actual request can include user credentials.\nThis translates to the Access-Control-Allow-Credentials header.","description_kind":"plain","optional":true},"allow_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Headers header.","description_kind":"plain","optional":true},"allow_methods":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Methods header.","description_kind":"plain","optional":true},"allow_origin_regexes":{"type":["list","string"],"description":"Specifies the regular expression patterns that match allowed origins. For regular expression grammar\nplease see en.cppreference.com/w/cpp/regex/ecmascript\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.","description_kind":"plain","optional":true},"allow_origins":{"type":["list","string"],"description":"Specifies the list of origins that will be allowed to do CORS requests.\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect.","description_kind":"plain","optional":true},"expose_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Expose-Headers header.","description_kind":"plain","optional":true},"max_age":{"type":"number","description":"Specifies how long results of a preflight request can be cached in seconds.\nThis translates to the Access-Control-Max-Age header.","description_kind":"plain","optional":true}},"description":"The specification for allowing client side cross-origin requests. Please see\n[W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/)","description_kind":"plain"},"max_items":1},"fault_injection_policy":{"nesting_mode":"list","block":{"block_types":{"abort":{"nesting_mode":"list","block":{"attributes":{"http_status":{"type":"number","description":"The HTTP status code used to abort the request.\nThe value must be between 200 and 599 inclusive.","description_kind":"plain","optional":true},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.","description_kind":"plain","optional":true}},"description":"The specification for how client requests are aborted as part of fault injection.","description_kind":"plain"},"max_items":1},"delay":{"nesting_mode":"list","block":{"attributes":{"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.","description_kind":"plain","optional":true}},"block_types":{"fixed_delay":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years","description_kind":"plain","optional":true}},"description":"Specifies the value of the fixed delay interval.","description_kind":"plain"},"max_items":1}},"description":"The specification for how client requests are delayed as part of fault injection, before being sent to a backend service.","description_kind":"plain"},"max_items":1}},"description":"The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure.\nAs part of fault injection, when clients send requests to a backend service, delays can be introduced by Loadbalancer on a\npercentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted\nby the Loadbalancer for a percentage of requests.\n\ntimeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy.","description_kind":"plain"},"max_items":1},"request_mirror_policy":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The full or partial URL to the BackendService resource being mirrored to.","description_kind":"plain","required":true}},"description":"Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service.\nLoadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service,\nthe host / authority header is suffixed with -shadow.","description_kind":"plain"},"max_items":1},"retry_policy":{"nesting_mode":"list","block":{"attributes":{"num_retries":{"type":"number","description":"Specifies the allowed number retries. This number must be \u003e 0. If not specified, defaults to 1.","description_kind":"plain","optional":true},"retry_conditions":{"type":["list","string"],"description":"Specfies one or more conditions when this retry rule applies. Valid values are:\n\n* 5xx: Loadbalancer will attempt a retry if the backend service responds with any 5xx response code,\n or if the backend service does not respond at all, example: disconnects, reset, read timeout,\n* connection failure, and refused streams.\n* gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504.\n* connect-failure: Loadbalancer will retry on failures connecting to backend services,\n for example due to connection timeouts.\n* retriable-4xx: Loadbalancer will retry for retriable 4xx response codes.\n Currently the only retriable error supported is 409.\n* refused-stream:Loadbalancer will retry if the backend service resets the stream with a REFUSED_STREAM error code.\n This reset type indicates that it is safe to retry.\n* cancelled: Loadbalancer will retry if the gRPC status code in the response header is set to cancelled\n* deadline-exceeded: Loadbalancer will retry if the gRPC status code in the response header is set to deadline-exceeded\n* resource-exhausted: Loadbalancer will retry if the gRPC status code in the response header is set to resource-exhausted\n* unavailable: Loadbalancer will retry if the gRPC status code in the response header is set to unavailable","description_kind":"plain","optional":true}},"block_types":{"per_try_timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years","description_kind":"plain","optional":true}},"description":"Specifies a non-zero timeout per retry attempt.\n\nIf not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set,\nwill use the largest timeout among all backend services associated with the route.","description_kind":"plain"},"max_items":1}},"description":"Specifies the retry policy associated with this route.","description_kind":"plain"},"max_items":1},"timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years","description_kind":"plain","optional":true}},"description":"Specifies the timeout for the selected route. Timeout is computed from the time the request has been\nfully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries.\n\nIf not specified, will use the largest timeout among all backend services associated with the route.","description_kind":"plain"},"max_items":1},"url_rewrite":{"nesting_mode":"list","block":{"attributes":{"host_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected service, the request's host header is replaced\nwith contents of hostRewrite.\n\nThe value must be between 1 and 255 characters.","description_kind":"plain","optional":true},"path_prefix_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected backend service, the matching portion of the\nrequest's path is replaced by pathPrefixRewrite.\n\nThe value must be between 1 and 1024 characters.","description_kind":"plain","optional":true}},"description":"The spec to modify the URL of the request, prior to forwarding the request to the matched service.","description_kind":"plain"},"max_items":1},"weighted_backend_services":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The full or partial URL to the default BackendService resource. Before forwarding the\nrequest to backendService, the loadbalancer applies any relevant headerActions\nspecified as part of this backendServiceWeight.","description_kind":"plain","optional":true},"weight":{"type":"number","description":"Specifies the fraction of traffic sent to backendService, computed as\nweight / (sum of all weightedBackendService weights in routeAction) .\n\nThe selection of a backend service is determined only for new traffic. Once a user's request\nhas been directed to a backendService, subsequent requests will be sent to the same backendService\nas determined by the BackendService's session affinity policy.\n\nThe value must be between 0 and 1000","description_kind":"plain","optional":true}},"block_types":{"header_action":{"nesting_mode":"list","block":{"attributes":{"request_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the request prior to\nforwarding the request to the backendService.","description_kind":"plain","optional":true},"response_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the response prior to sending the\nresponse back to the client.","description_kind":"plain","optional":true}},"block_types":{"request_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header to add.","description_kind":"plain","optional":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","optional":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.","description_kind":"plain","optional":true}},"description":"Headers to add to a matching request prior to forwarding the request to the backendService.","description_kind":"plain"}},"response_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header to add.","description_kind":"plain","optional":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","optional":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.","description_kind":"plain","optional":true}},"description":"Headers to add the response prior to sending the response back to the client.","description_kind":"plain"}}},"description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService.\n\nheaderAction specified here take effect before headerAction in the enclosing\nHttpRouteRule, PathMatcher and UrlMap.","description_kind":"plain"},"max_items":1}},"description":"A list of weighted backend services to send traffic to when a route match occurs.\nThe weights determine the fraction of traffic that flows to their corresponding backend service.\nIf all traffic needs to go to a single backend service, there must be one weightedBackendService\nwith weight set to a non 0 number.\n\nOnce a backendService is identified and before forwarding the request to the backend service,\nadvanced routing actions like Url rewrites and header transformations are applied depending on\nadditional settings specified in this HttpRouteAction.","description_kind":"plain"}}},"description":"defaultRouteAction takes effect when none of the hostRules match. The load balancer performs advanced routing actions\nlike URL rewrites, header transformations, etc. prior to forwarding the request to the selected backend.\nIf defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService\nis set, defaultRouteAction cannot contain any weightedBackendServices.\n\nOnly one of defaultRouteAction or defaultUrlRedirect must be set.","description_kind":"plain"},"max_items":1},"default_url_redirect":{"nesting_mode":"list","block":{"attributes":{"host_redirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one that was\nsupplied in the request. The value must be between 1 and 255 characters.","description_kind":"plain","optional":true},"https_redirect":{"type":"bool","description":"If set to true, the URL scheme in the redirected request is set to https. If set to\nfalse, the URL scheme of the redirected request will remain the same as that of the\nrequest. This must only be set for UrlMaps used in TargetHttpProxys. Setting this\ntrue for TargetHttpsProxy is not permitted. The default is set to false.","description_kind":"plain","optional":true},"path_redirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one that was\nsupplied in the request. pathRedirect cannot be supplied together with\nprefixRedirect. Supply one alone or neither. If neither is supplied, the path of the\noriginal request will be used for the redirect. The value must be between 1 and 1024\ncharacters.","description_kind":"plain","optional":true},"prefix_redirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,\nretaining the remaining portion of the URL before redirecting the request.\nprefixRedirect cannot be supplied together with pathRedirect. Supply one alone or\nneither. If neither is supplied, the path of the original request will be used for\nthe redirect. The value must be between 1 and 1024 characters.","description_kind":"plain","optional":true},"redirect_response_code":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n\n* FOUND, which corresponds to 302.\n\n* SEE_OTHER which corresponds to 303.\n\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method\nwill be retained.\n\n* PERMANENT_REDIRECT, which corresponds to 308. In this case,\nthe request method will be retained. Possible values: [\"FOUND\", \"MOVED_PERMANENTLY_DEFAULT\", \"PERMANENT_REDIRECT\", \"SEE_OTHER\", \"TEMPORARY_REDIRECT\"]","description_kind":"plain","optional":true},"strip_query":{"type":"bool","description":"If set to true, any accompanying query portion of the original URL is removed prior\nto redirecting the request. If set to false, the query portion of the original URL is\nretained. The default is set to false.\n This field is required to ensure an empty block is not set. The normal default value is false.","description_kind":"plain","required":true}},"description":"When none of the specified hostRules match, the request is redirected to a URL specified\nby defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or\ndefaultRouteAction must not be set.","description_kind":"plain"},"max_items":1},"header_action":{"nesting_mode":"list","block":{"attributes":{"request_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the request\nprior to forwarding the request to the backendService.","description_kind":"plain","optional":true},"response_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the response\nprior to sending the response back to the client.","description_kind":"plain","optional":true}},"block_types":{"request_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add to a matching request prior to forwarding the request to the\nbackendService.","description_kind":"plain"}},"response_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add the response prior to sending the response back to the client.","description_kind":"plain"}}},"description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService. The headerAction specified here take effect after\nheaderAction specified under pathMatcher.","description_kind":"plain"},"max_items":1},"host_rule":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create\nthe resource.","description_kind":"plain","optional":true},"hosts":{"type":["set","string"],"description":"The list of host patterns to match. They must be valid hostnames, except * will\nmatch any string of ([a-z0-9-.]*). In that case, * must be the first character\nand must be followed in the pattern by either - or ..","description_kind":"plain","required":true},"path_matcher":{"type":"string","description":"The name of the PathMatcher to use to match the path portion of the URL if the\nhostRule matches the URL's host portion.","description_kind":"plain","required":true}},"description":"The list of HostRules to use against the URL.","description_kind":"plain"}},"path_matcher":{"nesting_mode":"list","block":{"attributes":{"default_service":{"type":"string","description":"The backend service or backend bucket to use when none of the given paths match.","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create\nthe resource.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name to which this PathMatcher is referred by the HostRule.","description_kind":"plain","required":true}},"block_types":{"default_route_action":{"nesting_mode":"list","block":{"block_types":{"cors_policy":{"nesting_mode":"list","block":{"attributes":{"allow_credentials":{"type":"bool","description":"In response to a preflight request, setting this to true indicates that the actual request can include user credentials.\nThis translates to the Access-Control-Allow-Credentials header.","description_kind":"plain","optional":true},"allow_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Headers header.","description_kind":"plain","optional":true},"allow_methods":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Methods header.","description_kind":"plain","optional":true},"allow_origin_regexes":{"type":["list","string"],"description":"Specifies the regular expression patterns that match allowed origins. For regular expression grammar\nplease see en.cppreference.com/w/cpp/regex/ecmascript\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.","description_kind":"plain","optional":true},"allow_origins":{"type":["list","string"],"description":"Specifies the list of origins that will be allowed to do CORS requests.\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect.","description_kind":"plain","optional":true},"expose_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Expose-Headers header.","description_kind":"plain","optional":true},"max_age":{"type":"number","description":"Specifies how long results of a preflight request can be cached in seconds.\nThis translates to the Access-Control-Max-Age header.","description_kind":"plain","optional":true}},"description":"The specification for allowing client side cross-origin requests. Please see\n[W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/)","description_kind":"plain"},"max_items":1},"fault_injection_policy":{"nesting_mode":"list","block":{"block_types":{"abort":{"nesting_mode":"list","block":{"attributes":{"http_status":{"type":"number","description":"The HTTP status code used to abort the request.\nThe value must be between 200 and 599 inclusive.","description_kind":"plain","optional":true},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.","description_kind":"plain","optional":true}},"description":"The specification for how client requests are aborted as part of fault injection.","description_kind":"plain"},"max_items":1},"delay":{"nesting_mode":"list","block":{"attributes":{"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.","description_kind":"plain","optional":true}},"block_types":{"fixed_delay":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years","description_kind":"plain","optional":true}},"description":"Specifies the value of the fixed delay interval.","description_kind":"plain"},"max_items":1}},"description":"The specification for how client requests are delayed as part of fault injection, before being sent to a backend service.","description_kind":"plain"},"max_items":1}},"description":"The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure.\nAs part of fault injection, when clients send requests to a backend service, delays can be introduced by Loadbalancer on a\npercentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted\nby the Loadbalancer for a percentage of requests.\n\ntimeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy.","description_kind":"plain"},"max_items":1},"request_mirror_policy":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The full or partial URL to the BackendService resource being mirrored to.","description_kind":"plain","required":true}},"description":"Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service.\nLoadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service,\nthe host / authority header is suffixed with -shadow.","description_kind":"plain"},"max_items":1},"retry_policy":{"nesting_mode":"list","block":{"attributes":{"num_retries":{"type":"number","description":"Specifies the allowed number retries. This number must be \u003e 0. If not specified, defaults to 1.","description_kind":"plain","optional":true},"retry_conditions":{"type":["list","string"],"description":"Specfies one or more conditions when this retry rule applies. Valid values are:\n\n* 5xx: Loadbalancer will attempt a retry if the backend service responds with any 5xx response code,\n or if the backend service does not respond at all, example: disconnects, reset, read timeout,\n* connection failure, and refused streams.\n* gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504.\n* connect-failure: Loadbalancer will retry on failures connecting to backend services,\n for example due to connection timeouts.\n* retriable-4xx: Loadbalancer will retry for retriable 4xx response codes.\n Currently the only retriable error supported is 409.\n* refused-stream:Loadbalancer will retry if the backend service resets the stream with a REFUSED_STREAM error code.\n This reset type indicates that it is safe to retry.\n* cancelled: Loadbalancer will retry if the gRPC status code in the response header is set to cancelled\n* deadline-exceeded: Loadbalancer will retry if the gRPC status code in the response header is set to deadline-exceeded\n* resource-exhausted: Loadbalancer will retry if the gRPC status code in the response header is set to resource-exhausted\n* unavailable: Loadbalancer will retry if the gRPC status code in the response header is set to unavailable","description_kind":"plain","optional":true}},"block_types":{"per_try_timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years","description_kind":"plain","optional":true}},"description":"Specifies a non-zero timeout per retry attempt.\n\nIf not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set,\nwill use the largest timeout among all backend services associated with the route.","description_kind":"plain"},"max_items":1}},"description":"Specifies the retry policy associated with this route.","description_kind":"plain"},"max_items":1},"timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years","description_kind":"plain","optional":true}},"description":"Specifies the timeout for the selected route. Timeout is computed from the time the request has been\nfully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries.\n\nIf not specified, will use the largest timeout among all backend services associated with the route.","description_kind":"plain"},"max_items":1},"url_rewrite":{"nesting_mode":"list","block":{"attributes":{"host_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected service, the request's host header is replaced\nwith contents of hostRewrite.\n\nThe value must be between 1 and 255 characters.","description_kind":"plain","optional":true},"path_prefix_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected backend service, the matching portion of the\nrequest's path is replaced by pathPrefixRewrite.\n\nThe value must be between 1 and 1024 characters.","description_kind":"plain","optional":true}},"description":"The spec to modify the URL of the request, prior to forwarding the request to the matched service.","description_kind":"plain"},"max_items":1},"weighted_backend_services":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The full or partial URL to the default BackendService resource. Before forwarding the\nrequest to backendService, the loadbalancer applies any relevant headerActions\nspecified as part of this backendServiceWeight.","description_kind":"plain","optional":true},"weight":{"type":"number","description":"Specifies the fraction of traffic sent to backendService, computed as\nweight / (sum of all weightedBackendService weights in routeAction) .\n\nThe selection of a backend service is determined only for new traffic. Once a user's request\nhas been directed to a backendService, subsequent requests will be sent to the same backendService\nas determined by the BackendService's session affinity policy.\n\nThe value must be between 0 and 1000","description_kind":"plain","optional":true}},"block_types":{"header_action":{"nesting_mode":"list","block":{"attributes":{"request_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the request prior to\nforwarding the request to the backendService.","description_kind":"plain","optional":true},"response_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the response prior to sending the\nresponse back to the client.","description_kind":"plain","optional":true}},"block_types":{"request_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header to add.","description_kind":"plain","optional":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","optional":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.","description_kind":"plain","optional":true}},"description":"Headers to add to a matching request prior to forwarding the request to the backendService.","description_kind":"plain"}},"response_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header to add.","description_kind":"plain","optional":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","optional":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.","description_kind":"plain","optional":true}},"description":"Headers to add the response prior to sending the response back to the client.","description_kind":"plain"}}},"description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService.\n\nheaderAction specified here take effect before headerAction in the enclosing\nHttpRouteRule, PathMatcher and UrlMap.","description_kind":"plain"},"max_items":1}},"description":"A list of weighted backend services to send traffic to when a route match occurs.\nThe weights determine the fraction of traffic that flows to their corresponding backend service.\nIf all traffic needs to go to a single backend service, there must be one weightedBackendService\nwith weight set to a non 0 number.\n\nOnce a backendService is identified and before forwarding the request to the backend service,\nadvanced routing actions like Url rewrites and header transformations are applied depending on\nadditional settings specified in this HttpRouteAction.","description_kind":"plain"}}},"description":"defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs\nadvanced routing actions like URL rewrites, header transformations, etc. prior to forwarding the request\nto the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set.\nConversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices.\n\nOnly one of defaultRouteAction or defaultUrlRedirect must be set.","description_kind":"plain"},"max_items":1},"default_url_redirect":{"nesting_mode":"list","block":{"attributes":{"host_redirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one that was\nsupplied in the request. The value must be between 1 and 255 characters.","description_kind":"plain","optional":true},"https_redirect":{"type":"bool","description":"If set to true, the URL scheme in the redirected request is set to https. If set to\nfalse, the URL scheme of the redirected request will remain the same as that of the\nrequest. This must only be set for UrlMaps used in TargetHttpProxys. Setting this\ntrue for TargetHttpsProxy is not permitted. The default is set to false.","description_kind":"plain","optional":true},"path_redirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one that was\nsupplied in the request. pathRedirect cannot be supplied together with\nprefixRedirect. Supply one alone or neither. If neither is supplied, the path of the\noriginal request will be used for the redirect. The value must be between 1 and 1024\ncharacters.","description_kind":"plain","optional":true},"prefix_redirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,\nretaining the remaining portion of the URL before redirecting the request.\nprefixRedirect cannot be supplied together with pathRedirect. Supply one alone or\nneither. If neither is supplied, the path of the original request will be used for\nthe redirect. The value must be between 1 and 1024 characters.","description_kind":"plain","optional":true},"redirect_response_code":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n\n* FOUND, which corresponds to 302.\n\n* SEE_OTHER which corresponds to 303.\n\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method\nwill be retained.\n\n* PERMANENT_REDIRECT, which corresponds to 308. In this case,\nthe request method will be retained. Possible values: [\"FOUND\", \"MOVED_PERMANENTLY_DEFAULT\", \"PERMANENT_REDIRECT\", \"SEE_OTHER\", \"TEMPORARY_REDIRECT\"]","description_kind":"plain","optional":true},"strip_query":{"type":"bool","description":"If set to true, any accompanying query portion of the original URL is removed prior\nto redirecting the request. If set to false, the query portion of the original URL is\nretained.\n This field is required to ensure an empty block is not set. The normal default value is false.","description_kind":"plain","required":true}},"description":"When none of the specified hostRules match, the request is redirected to a URL specified\nby defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or\ndefaultRouteAction must not be set.","description_kind":"plain"},"max_items":1},"header_action":{"nesting_mode":"list","block":{"attributes":{"request_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the request\nprior to forwarding the request to the backendService.","description_kind":"plain","optional":true},"response_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the response\nprior to sending the response back to the client.","description_kind":"plain","optional":true}},"block_types":{"request_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add to a matching request prior to forwarding the request to the\nbackendService.","description_kind":"plain"}},"response_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add the response prior to sending the response back to the client.","description_kind":"plain"}}},"description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService. HeaderAction specified here are applied after the\nmatching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap","description_kind":"plain"},"max_items":1},"path_rule":{"nesting_mode":"list","block":{"attributes":{"paths":{"type":["set","string"],"description":"The list of path patterns to match. Each must start with / and the only place a\n\\* is allowed is at the end following a /. The string fed to the path matcher\ndoes not include any text after the first ? or #, and those chars are not\nallowed here.","description_kind":"plain","required":true},"service":{"type":"string","description":"The backend service or backend bucket to use if any of the given paths match.","description_kind":"plain","optional":true}},"block_types":{"route_action":{"nesting_mode":"list","block":{"block_types":{"cors_policy":{"nesting_mode":"list","block":{"attributes":{"allow_credentials":{"type":"bool","description":"In response to a preflight request, setting this to true indicates that the\nactual request can include user credentials. This translates to the Access-\nControl-Allow-Credentials header. Defaults to false.","description_kind":"plain","optional":true},"allow_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Headers header.","description_kind":"plain","optional":true},"allow_methods":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Methods header.","description_kind":"plain","optional":true},"allow_origin_regexes":{"type":["list","string"],"description":"Specifies the regular expression patterns that match allowed origins. For\nregular expression grammar please see en.cppreference.com/w/cpp/regex/ecmascript\nAn origin is allowed if it matches either allow_origins or allow_origin_regex.","description_kind":"plain","optional":true},"allow_origins":{"type":["list","string"],"description":"Specifies the list of origins that will be allowed to do CORS requests. An\norigin is allowed if it matches either allow_origins or allow_origin_regex.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If true, specifies the CORS policy is disabled.","description_kind":"plain","required":true},"expose_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Expose-Headers header.","description_kind":"plain","optional":true},"max_age":{"type":"number","description":"Specifies how long the results of a preflight request can be cached. This\ntranslates to the content for the Access-Control-Max-Age header.","description_kind":"plain","optional":true}},"description":"The specification for allowing client side cross-origin requests. Please see W3C\nRecommendation for Cross Origin Resource Sharing","description_kind":"plain"},"max_items":1},"fault_injection_policy":{"nesting_mode":"list","block":{"block_types":{"abort":{"nesting_mode":"list","block":{"attributes":{"http_status":{"type":"number","description":"The HTTP status code used to abort the request. The value must be between 200\nand 599 inclusive.","description_kind":"plain","required":true},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) which will be\naborted as part of fault injection. The value must be between 0.0 and 100.0\ninclusive.","description_kind":"plain","required":true}},"description":"The specification for how client requests are aborted as part of fault\ninjection.","description_kind":"plain"},"max_items":1},"delay":{"nesting_mode":"list","block":{"attributes":{"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) on which delay will\nbe introduced as part of fault injection. The value must be between 0.0 and\n100.0 inclusive.","description_kind":"plain","required":true}},"block_types":{"fixed_delay":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies the value of the fixed delay interval.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"The specification for how client requests are delayed as part of fault\ninjection, before being sent to a backend service.","description_kind":"plain"},"max_items":1}},"description":"The specification for fault injection introduced into traffic to test the\nresiliency of clients to backend service failure. As part of fault injection,\nwhen clients send requests to a backend service, delays can be introduced by\nLoadbalancer on a percentage of requests before sending those request to the\nbackend service. Similarly requests from clients can be aborted by the\nLoadbalancer for a percentage of requests. timeout and retry_policy will be\nignored by clients that are configured with a fault_injection_policy.","description_kind":"plain"},"max_items":1},"request_mirror_policy":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The BackendService resource being mirrored to.","description_kind":"plain","required":true}},"description":"Specifies the policy on how requests intended for the route's backends are\nshadowed to a separate mirrored backend service. Loadbalancer does not wait for\nresponses from the shadow service. Prior to sending traffic to the shadow\nservice, the host / authority header is suffixed with -shadow.","description_kind":"plain"},"max_items":1},"retry_policy":{"nesting_mode":"list","block":{"attributes":{"num_retries":{"type":"number","description":"Specifies the allowed number retries. This number must be \u003e 0.","description_kind":"plain","optional":true},"retry_conditions":{"type":["list","string"],"description":"Specifies one or more conditions when this retry rule applies. Valid values are:\n\n* 5xx: Loadbalancer will attempt a retry if the backend service responds with\nany 5xx response code, or if the backend service does not respond at all,\nexample: disconnects, reset, read timeout, connection failure, and refused\nstreams.\n* gateway-error: Similar to 5xx, but only applies to response codes\n502, 503 or 504.\n* connect-failure: Loadbalancer will retry on failures\nconnecting to backend services, for example due to connection timeouts.\n* retriable-4xx: Loadbalancer will retry for retriable 4xx response codes.\nCurrently the only retriable error supported is 409.\n* refused-stream: Loadbalancer will retry if the backend service resets the stream with a\nREFUSED_STREAM error code. This reset type indicates that it is safe to retry.\n* cancelled: Loadbalancer will retry if the gRPC status code in the response\nheader is set to cancelled\n* deadline-exceeded: Loadbalancer will retry if the\ngRPC status code in the response header is set to deadline-exceeded\n* resource-exhausted: Loadbalancer will retry if the gRPC status code in the response\nheader is set to resource-exhausted\n* unavailable: Loadbalancer will retry if\nthe gRPC status code in the response header is set to unavailable","description_kind":"plain","optional":true}},"block_types":{"per_try_timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies a non-zero timeout per retry attempt.","description_kind":"plain"},"max_items":1}},"description":"Specifies the retry policy associated with this route.","description_kind":"plain"},"max_items":1},"timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies the timeout for the selected route. Timeout is computed from the time\nthe request is has been fully processed (i.e. end-of-stream) up until the\nresponse has been completely processed. Timeout includes all retries. If not\nspecified, the default value is 15 seconds.","description_kind":"plain"},"max_items":1},"url_rewrite":{"nesting_mode":"list","block":{"attributes":{"host_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected service, the request's host\nheader is replaced with contents of hostRewrite. The value must be between 1 and\n255 characters.","description_kind":"plain","optional":true},"path_prefix_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected backend service, the matching\nportion of the request's path is replaced by pathPrefixRewrite. The value must\nbe between 1 and 1024 characters.","description_kind":"plain","optional":true}},"description":"The spec to modify the URL of the request, prior to forwarding the request to\nthe matched service","description_kind":"plain"},"max_items":1},"weighted_backend_services":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The default BackendService resource. Before\nforwarding the request to backendService, the loadbalancer applies any relevant\nheaderActions specified as part of this backendServiceWeight.","description_kind":"plain","required":true},"weight":{"type":"number","description":"Specifies the fraction of traffic sent to backendService, computed as weight /\n(sum of all weightedBackendService weights in routeAction) . The selection of a\nbackend service is determined only for new traffic. Once a user's request has\nbeen directed to a backendService, subsequent requests will be sent to the same\nbackendService as determined by the BackendService's session affinity policy.\nThe value must be between 0 and 1000","description_kind":"plain","required":true}},"block_types":{"header_action":{"nesting_mode":"list","block":{"attributes":{"request_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the request\nprior to forwarding the request to the backendService.","description_kind":"plain","optional":true},"response_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the response\nprior to sending the response back to the client.","description_kind":"plain","optional":true}},"block_types":{"request_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add to a matching request prior to forwarding the request to the\nbackendService.","description_kind":"plain"}},"response_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add the response prior to sending the response back to the client.","description_kind":"plain"}}},"description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService. headerAction specified here take effect before\nheaderAction in the enclosing HttpRouteRule, PathMatcher and UrlMap.","description_kind":"plain"},"max_items":1}},"description":"A list of weighted backend services to send traffic to when a route match\noccurs. The weights determine the fraction of traffic that flows to their\ncorresponding backend service. If all traffic needs to go to a single backend\nservice, there must be one weightedBackendService with weight set to a non 0\nnumber. Once a backendService is identified and before forwarding the request to\nthe backend service, advanced routing actions like Url rewrites and header\ntransformations are applied depending on additional settings specified in this\nHttpRouteAction.","description_kind":"plain"}}},"description":"In response to a matching path, the load balancer performs advanced routing\nactions like URL rewrites, header transformations, etc. prior to forwarding the\nrequest to the selected backend. If routeAction specifies any\nweightedBackendServices, service must not be set. Conversely if service is set,\nrouteAction cannot contain any weightedBackendServices. Only one of routeAction\nor urlRedirect must be set.","description_kind":"plain"},"max_items":1},"url_redirect":{"nesting_mode":"list","block":{"attributes":{"host_redirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one\nthat was supplied in the request. The value must be between 1 and 255\ncharacters.","description_kind":"plain","optional":true},"https_redirect":{"type":"bool","description":"If set to true, the URL scheme in the redirected request is set to https.\nIf set to false, the URL scheme of the redirected request will remain the\nsame as that of the request. This must only be set for UrlMaps used in\nTargetHttpProxys. Setting this true for TargetHttpsProxy is not\npermitted. The default is set to false.","description_kind":"plain","optional":true},"path_redirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one\nthat was supplied in the request. pathRedirect cannot be supplied\ntogether with prefixRedirect. Supply one alone or neither. If neither is\nsupplied, the path of the original request will be used for the redirect.\nThe value must be between 1 and 1024 characters.","description_kind":"plain","optional":true},"prefix_redirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the\nHttpRouteRuleMatch, retaining the remaining portion of the URL before\nredirecting the request. prefixRedirect cannot be supplied together with\npathRedirect. Supply one alone or neither. If neither is supplied, the\npath of the original request will be used for the redirect. The value\nmust be between 1 and 1024 characters.","description_kind":"plain","optional":true},"redirect_response_code":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n\n* FOUND, which corresponds to 302.\n\n* SEE_OTHER which corresponds to 303.\n\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method\nwill be retained.\n\n* PERMANENT_REDIRECT, which corresponds to 308. In this case,\nthe request method will be retained. Possible values: [\"FOUND\", \"MOVED_PERMANENTLY_DEFAULT\", \"PERMANENT_REDIRECT\", \"SEE_OTHER\", \"TEMPORARY_REDIRECT\"]","description_kind":"plain","optional":true},"strip_query":{"type":"bool","description":"If set to true, any accompanying query portion of the original URL is\nremoved prior to redirecting the request. If set to false, the query\nportion of the original URL is retained.\n This field is required to ensure an empty block is not set. The normal default value is false.","description_kind":"plain","required":true}},"description":"When a path pattern is matched, the request is redirected to a URL specified\nby urlRedirect. If urlRedirect is specified, service or routeAction must not\nbe set.","description_kind":"plain"},"max_items":1}},"description":"The list of path rules. Use this list instead of routeRules when routing based\non simple path matching is all that's required. The order by which path rules\nare specified does not matter. Matches are always done on the longest-path-first\nbasis. For example: a pathRule with a path /a/b/c/* will match before /a/b/*\nirrespective of the order in which those paths appear in this list. Within a\ngiven pathMatcher, only one of pathRules or routeRules must be set.","description_kind":"plain"}},"route_rules":{"nesting_mode":"list","block":{"attributes":{"priority":{"type":"number","description":"For routeRules within a given pathMatcher, priority determines the order\nin which load balancer will interpret routeRules. RouteRules are evaluated\nin order of priority, from the lowest to highest number. The priority of\na rule decreases as its number increases (1, 2, 3, N+1). The first rule\nthat matches the request is applied.\n\nYou cannot configure two or more routeRules with the same priority.\nPriority for each rule must be set to a number between 0 and\n2147483647 inclusive.\n\nPriority numbers can have gaps, which enable you to add or remove rules\nin the future without affecting the rest of the rules. For example,\n1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which\nyou could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the\nfuture without any impact on existing rules.","description_kind":"plain","required":true},"service":{"type":"string","description":"The backend service resource to which traffic is\ndirected if this rule is matched. If routeAction is additionally specified,\nadvanced routing actions like URL Rewrites, etc. take effect prior to sending\nthe request to the backend. However, if service is specified, routeAction cannot\ncontain any weightedBackendService s. Conversely, if routeAction specifies any\nweightedBackendServices, service must not be specified. Only one of urlRedirect,\nservice or routeAction.weightedBackendService must be set.","description_kind":"plain","optional":true}},"block_types":{"header_action":{"nesting_mode":"list","block":{"attributes":{"request_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the request\nprior to forwarding the request to the backendService.","description_kind":"plain","optional":true},"response_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the response\nprior to sending the response back to the client.","description_kind":"plain","optional":true}},"block_types":{"request_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add to a matching request prior to forwarding the request to the\nbackendService.","description_kind":"plain"}},"response_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add the response prior to sending the response back to the client.","description_kind":"plain"}}},"description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService. The headerAction specified here are applied before\nthe matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].r\nouteAction.weightedBackendService.backendServiceWeightAction[].headerAction","description_kind":"plain"},"max_items":1},"match_rules":{"nesting_mode":"list","block":{"attributes":{"full_path_match":{"type":"string","description":"For satisfying the matchRule condition, the path of the request must exactly\nmatch the value specified in fullPathMatch after removing any query parameters\nand anchor that may be part of the original URL. FullPathMatch must be between 1\nand 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must\nbe specified.","description_kind":"plain","optional":true},"ignore_case":{"type":"bool","description":"Specifies that prefixMatch and fullPathMatch matches are case sensitive.\nDefaults to false.","description_kind":"plain","optional":true},"prefix_match":{"type":"string","description":"For satisfying the matchRule condition, the request's path must begin with the\nspecified prefixMatch. prefixMatch must begin with a /. The value must be\nbetween 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or\nregexMatch must be specified.","description_kind":"plain","optional":true},"regex_match":{"type":"string","description":"For satisfying the matchRule condition, the path of the request must satisfy the\nregular expression specified in regexMatch after removing any query parameters\nand anchor supplied with the original URL. For regular expression grammar please\nsee en.cppreference.com/w/cpp/regex/ecmascript Only one of prefixMatch,\nfullPathMatch or regexMatch must be specified.","description_kind":"plain","optional":true}},"block_types":{"header_matches":{"nesting_mode":"list","block":{"attributes":{"exact_match":{"type":"string","description":"The value should exactly match contents of exactMatch. Only one of exactMatch,\nprefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.","description_kind":"plain","optional":true},"header_name":{"type":"string","description":"The name of the HTTP header to match. For matching against the HTTP request's\nauthority, use a headerMatch with the header name \":authority\". For matching a\nrequest's method, use the headerName \":method\".","description_kind":"plain","required":true},"invert_match":{"type":"bool","description":"If set to false, the headerMatch is considered a match if the match criteria\nabove are met. If set to true, the headerMatch is considered a match if the\nmatch criteria above are NOT met. Defaults to false.","description_kind":"plain","optional":true},"prefix_match":{"type":"string","description":"The value of the header must start with the contents of prefixMatch. Only one of\nexactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch\nmust be set.","description_kind":"plain","optional":true},"present_match":{"type":"bool","description":"A header with the contents of headerName must exist. The match takes place\nwhether or not the request's header has a value or not. Only one of exactMatch,\nprefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.","description_kind":"plain","optional":true},"regex_match":{"type":"string","description":"The value of the header must match the regular expression specified in\nregexMatch. For regular expression grammar, please see:\nen.cppreference.com/w/cpp/regex/ecmascript For matching against a port\nspecified in the HTTP request, use a headerMatch with headerName set to PORT and\na regular expression that satisfies the RFC2616 Host header's port specifier.\nOnly one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or\nrangeMatch must be set.","description_kind":"plain","optional":true},"suffix_match":{"type":"string","description":"The value of the header must end with the contents of suffixMatch. Only one of\nexactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch\nmust be set.","description_kind":"plain","optional":true}},"block_types":{"range_match":{"nesting_mode":"list","block":{"attributes":{"range_end":{"type":"number","description":"The end of the range (exclusive).","description_kind":"plain","required":true},"range_start":{"type":"number","description":"The start of the range (inclusive).","description_kind":"plain","required":true}},"description":"The header value must be an integer and its value must be in the range specified\nin rangeMatch. If the header does not contain an integer, number or is empty,\nthe match fails. For example for a range [-5, 0] - -3 will match. - 0 will\nnot match. - 0.25 will not match. - -3someString will not match. Only one of\nexactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch\nmust be set.","description_kind":"plain"},"max_items":1}},"description":"Specifies a list of header match criteria, all of which must match corresponding\nheaders in the request.","description_kind":"plain"}},"metadata_filters":{"nesting_mode":"list","block":{"attributes":{"filter_match_criteria":{"type":"string","description":"Specifies how individual filterLabel matches within the list of filterLabels\ncontribute towards the overall metadataFilter match. Supported values are:\n - MATCH_ANY: At least one of the filterLabels must have a matching label in the\nprovided metadata.\n - MATCH_ALL: All filterLabels must have matching labels in\nthe provided metadata. Possible values: [\"MATCH_ALL\", \"MATCH_ANY\"]","description_kind":"plain","required":true}},"block_types":{"filter_labels":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of metadata label. The name can have a maximum length of 1024 characters\nand must be at least 1 character long.","description_kind":"plain","required":true},"value":{"type":"string","description":"The value of the label must match the specified value. value can have a maximum\nlength of 1024 characters.","description_kind":"plain","required":true}},"description":"The list of label value pairs that must match labels in the provided metadata\nbased on filterMatchCriteria This list must not be empty and can have at the\nmost 64 entries.","description_kind":"plain"},"min_items":1,"max_items":64}},"description":"Opaque filter criteria used by Loadbalancer to restrict routing configuration to\na limited set xDS compliant clients. In their xDS requests to Loadbalancer, xDS\nclients present node metadata. If a match takes place, the relevant routing\nconfiguration is made available to those proxies. For each metadataFilter in\nthis list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the\nfilterLabels must match the corresponding label provided in the metadata. If its\nfilterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match\nwith corresponding labels in the provided metadata. metadataFilters specified\nhere can be overrides those specified in ForwardingRule that refers to this\nUrlMap. metadataFilters only applies to Loadbalancers that have their\nloadBalancingScheme set to INTERNAL_SELF_MANAGED.","description_kind":"plain"}},"query_parameter_matches":{"nesting_mode":"list","block":{"attributes":{"exact_match":{"type":"string","description":"The queryParameterMatch matches if the value of the parameter exactly matches\nthe contents of exactMatch. Only one of presentMatch, exactMatch and regexMatch\nmust be set.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the query parameter to match. The query parameter must exist in the\nrequest, in the absence of which the request match fails.","description_kind":"plain","required":true},"present_match":{"type":"bool","description":"Specifies that the queryParameterMatch matches if the request contains the query\nparameter, irrespective of whether the parameter has a value or not. Only one of\npresentMatch, exactMatch and regexMatch must be set.","description_kind":"plain","optional":true},"regex_match":{"type":"string","description":"The queryParameterMatch matches if the value of the parameter matches the\nregular expression specified by regexMatch. For the regular expression grammar,\nplease see en.cppreference.com/w/cpp/regex/ecmascript Only one of presentMatch,\nexactMatch and regexMatch must be set.","description_kind":"plain","optional":true}},"description":"Specifies a list of query parameter match criteria, all of which must match\ncorresponding query parameters in the request.","description_kind":"plain"}}},"description":"The rules for determining a match.","description_kind":"plain"}},"route_action":{"nesting_mode":"list","block":{"block_types":{"cors_policy":{"nesting_mode":"list","block":{"attributes":{"allow_credentials":{"type":"bool","description":"In response to a preflight request, setting this to true indicates that the\nactual request can include user credentials. This translates to the Access-\nControl-Allow-Credentials header. Defaults to false.","description_kind":"plain","optional":true},"allow_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Headers header.","description_kind":"plain","optional":true},"allow_methods":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Methods header.","description_kind":"plain","optional":true},"allow_origin_regexes":{"type":["list","string"],"description":"Specifies the regular expression patterns that match allowed origins. For\nregular expression grammar please see en.cppreference.com/w/cpp/regex/ecmascript\nAn origin is allowed if it matches either allow_origins or allow_origin_regex.","description_kind":"plain","optional":true},"allow_origins":{"type":["list","string"],"description":"Specifies the list of origins that will be allowed to do CORS requests. An\norigin is allowed if it matches either allow_origins or allow_origin_regex.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If true, specifies the CORS policy is disabled.\nwhich indicates that the CORS policy is in effect. Defaults to false.","description_kind":"plain","optional":true},"expose_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Expose-Headers header.","description_kind":"plain","optional":true},"max_age":{"type":"number","description":"Specifies how long the results of a preflight request can be cached. This\ntranslates to the content for the Access-Control-Max-Age header.","description_kind":"plain","optional":true}},"description":"The specification for allowing client side cross-origin requests. Please see W3C\nRecommendation for Cross Origin Resource Sharing","description_kind":"plain"},"max_items":1},"fault_injection_policy":{"nesting_mode":"list","block":{"block_types":{"abort":{"nesting_mode":"list","block":{"attributes":{"http_status":{"type":"number","description":"The HTTP status code used to abort the request. The value must be between 200\nand 599 inclusive.","description_kind":"plain","optional":true},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) which will be\naborted as part of fault injection. The value must be between 0.0 and 100.0\ninclusive.","description_kind":"plain","optional":true}},"description":"The specification for how client requests are aborted as part of fault\ninjection.","description_kind":"plain"},"max_items":1},"delay":{"nesting_mode":"list","block":{"attributes":{"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) on which delay will\nbe introduced as part of fault injection. The value must be between 0.0 and\n100.0 inclusive.","description_kind":"plain","optional":true}},"block_types":{"fixed_delay":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies the value of the fixed delay interval.","description_kind":"plain"},"max_items":1}},"description":"The specification for how client requests are delayed as part of fault\ninjection, before being sent to a backend service.","description_kind":"plain"},"max_items":1}},"description":"The specification for fault injection introduced into traffic to test the\nresiliency of clients to backend service failure. As part of fault injection,\nwhen clients send requests to a backend service, delays can be introduced by\nLoadbalancer on a percentage of requests before sending those request to the\nbackend service. Similarly requests from clients can be aborted by the\nLoadbalancer for a percentage of requests. timeout and retry_policy will be\nignored by clients that are configured with a fault_injection_policy.","description_kind":"plain"},"max_items":1},"request_mirror_policy":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The BackendService resource being mirrored to.","description_kind":"plain","required":true}},"description":"Specifies the policy on how requests intended for the route's backends are\nshadowed to a separate mirrored backend service. Loadbalancer does not wait for\nresponses from the shadow service. Prior to sending traffic to the shadow\nservice, the host / authority header is suffixed with -shadow.","description_kind":"plain"},"max_items":1},"retry_policy":{"nesting_mode":"list","block":{"attributes":{"num_retries":{"type":"number","description":"Specifies the allowed number retries. This number must be \u003e 0.","description_kind":"plain","required":true},"retry_conditions":{"type":["list","string"],"description":"Specfies one or more conditions when this retry rule applies. Valid values are:\n\n* 5xx: Loadbalancer will attempt a retry if the backend service responds with\n any 5xx response code, or if the backend service does not respond at all,\n example: disconnects, reset, read timeout, connection failure, and refused\n streams.\n* gateway-error: Similar to 5xx, but only applies to response codes\n 502, 503 or 504.\n* connect-failure: Loadbalancer will retry on failures\n connecting to backend services, for example due to connection timeouts.\n* retriable-4xx: Loadbalancer will retry for retriable 4xx response codes.\n Currently the only retriable error supported is 409.\n* refused-stream: Loadbalancer will retry if the backend service resets the stream with a\n REFUSED_STREAM error code. This reset type indicates that it is safe to retry.\n* cancelled: Loadbalancer will retry if the gRPC status code in the response\n header is set to cancelled\n* deadline-exceeded: Loadbalancer will retry if the\n gRPC status code in the response header is set to deadline-exceeded\n* resource-exhausted: Loadbalancer will retry if the gRPC status code in the response\n header is set to resource-exhausted\n* unavailable: Loadbalancer will retry if the gRPC status code in\n the response header is set to unavailable","description_kind":"plain","optional":true}},"block_types":{"per_try_timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies a non-zero timeout per retry attempt.\nIf not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction\nis not set, will use the largest timeout among all backend services associated with the route.","description_kind":"plain"},"max_items":1}},"description":"Specifies the retry policy associated with this route.","description_kind":"plain"},"max_items":1},"timeout":{"nesting_mode":"list","block":{"attributes":{"nanos":{"type":"number","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.","description_kind":"plain","optional":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.","description_kind":"plain","required":true}},"description":"Specifies the timeout for the selected route. Timeout is computed from the time\nthe request is has been fully processed (i.e. end-of-stream) up until the\nresponse has been completely processed. Timeout includes all retries. If not\nspecified, the default value is 15 seconds.","description_kind":"plain"},"max_items":1},"url_rewrite":{"nesting_mode":"list","block":{"attributes":{"host_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected service, the request's host\nheader is replaced with contents of hostRewrite. The value must be between 1 and\n255 characters.","description_kind":"plain","optional":true},"path_prefix_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected backend service, the matching\nportion of the request's path is replaced by pathPrefixRewrite. The value must\nbe between 1 and 1024 characters.","description_kind":"plain","optional":true}},"description":"The spec to modify the URL of the request, prior to forwarding the request to\nthe matched service","description_kind":"plain"},"max_items":1},"weighted_backend_services":{"nesting_mode":"list","block":{"attributes":{"backend_service":{"type":"string","description":"The default BackendService resource. Before\nforwarding the request to backendService, the loadbalancer applies any relevant\nheaderActions specified as part of this backendServiceWeight.","description_kind":"plain","required":true},"weight":{"type":"number","description":"Specifies the fraction of traffic sent to backendService, computed as weight /\n(sum of all weightedBackendService weights in routeAction) . The selection of a\nbackend service is determined only for new traffic. Once a user's request has\nbeen directed to a backendService, subsequent requests will be sent to the same\nbackendService as determined by the BackendService's session affinity policy.\nThe value must be between 0 and 1000","description_kind":"plain","required":true}},"block_types":{"header_action":{"nesting_mode":"list","block":{"attributes":{"request_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the request\nprior to forwarding the request to the backendService.","description_kind":"plain","optional":true},"response_headers_to_remove":{"type":["list","string"],"description":"A list of header names for headers that need to be removed from the response\nprior to sending the response back to the client.","description_kind":"plain","optional":true}},"block_types":{"request_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add to a matching request prior to forwarding the request to the\nbackendService.","description_kind":"plain"}},"response_headers_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"If false, headerValue is appended to any values that already exist for the\nheader. If true, headerValue is set for the header, discarding any values that\nwere set for that header.","description_kind":"plain","required":true}},"description":"Headers to add the response prior to sending the response back to the client.","description_kind":"plain"}}},"description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService. headerAction specified here take effect before\nheaderAction in the enclosing HttpRouteRule, PathMatcher and UrlMap.","description_kind":"plain"},"max_items":1}},"description":"A list of weighted backend services to send traffic to when a route match\noccurs. The weights determine the fraction of traffic that flows to their\ncorresponding backend service. If all traffic needs to go to a single backend\nservice, there must be one weightedBackendService with weight set to a non 0\nnumber. Once a backendService is identified and before forwarding the request to\nthe backend service, advanced routing actions like Url rewrites and header\ntransformations are applied depending on additional settings specified in this\nHttpRouteAction.","description_kind":"plain"}}},"description":"In response to a matching matchRule, the load balancer performs advanced routing\nactions like URL rewrites, header transformations, etc. prior to forwarding the\nrequest to the selected backend. If routeAction specifies any\nweightedBackendServices, service must not be set. Conversely if service is set,\nrouteAction cannot contain any weightedBackendServices. Only one of routeAction\nor urlRedirect must be set.","description_kind":"plain"},"max_items":1},"url_redirect":{"nesting_mode":"list","block":{"attributes":{"host_redirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one that was\nsupplied in the request. The value must be between 1 and 255 characters.","description_kind":"plain","optional":true},"https_redirect":{"type":"bool","description":"If set to true, the URL scheme in the redirected request is set to https. If set\nto false, the URL scheme of the redirected request will remain the same as that\nof the request. This must only be set for UrlMaps used in TargetHttpProxys.\nSetting this true for TargetHttpsProxy is not permitted. Defaults to false.","description_kind":"plain","optional":true},"path_redirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one that was\nsupplied in the request. Only one of pathRedirect or prefixRedirect must be\nspecified. The value must be between 1 and 1024 characters.","description_kind":"plain","optional":true},"prefix_redirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,\nretaining the remaining portion of the URL before redirecting the request.","description_kind":"plain","optional":true},"redirect_response_code":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n\n* FOUND, which corresponds to 302.\n\n* SEE_OTHER which corresponds to 303.\n\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method will be retained.\n\n* PERMANENT_REDIRECT, which corresponds to 308. In this case, the request method will be retained. Possible values: [\"FOUND\", \"MOVED_PERMANENTLY_DEFAULT\", \"PERMANENT_REDIRECT\", \"SEE_OTHER\", \"TEMPORARY_REDIRECT\"]","description_kind":"plain","optional":true},"strip_query":{"type":"bool","description":"If set to true, any accompanying query portion of the original URL is removed\nprior to redirecting the request. If set to false, the query portion of the\noriginal URL is retained. Defaults to false.","description_kind":"plain","optional":true}},"description":"When this rule is matched, the request is redirected to a URL specified by\nurlRedirect. If urlRedirect is specified, service or routeAction must not be\nset.","description_kind":"plain"},"max_items":1}},"description":"The list of ordered HTTP route rules. Use this list instead of pathRules when\nadvanced route matching and routing actions are desired. The order of specifying\nrouteRules matters: the first rule that matches will cause its specified routing\naction to take effect. Within a given pathMatcher, only one of pathRules or\nrouteRules must be set. routeRules are not supported in UrlMaps intended for\nExternal load balancers.","description_kind":"plain"}}},"description":"The list of named PathMatchers to use against the URL.","description_kind":"plain"}},"test":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Description of this test case.","description_kind":"plain","optional":true},"host":{"type":"string","description":"Host portion of the URL.","description_kind":"plain","required":true},"path":{"type":"string","description":"Path portion of the URL.","description_kind":"plain","required":true},"service":{"type":"string","description":"The backend service or backend bucket link that should be matched by this test.","description_kind":"plain","required":true}},"description":"The list of expected URL mapping tests. Request to update this UrlMap will\nsucceed only if all of the test cases pass. You can specify a maximum of 100\ntests per UrlMap.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_vpn_gateway":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"gateway_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"The network this VPN gateway is accepting traffic for.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region this gateway should sit in.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_compute_vpn_tunnel":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","optional":true},"detailed_status":{"type":"string","description":"Detailed status message for the VPN tunnel.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ike_version":{"type":"number","description":"IKE protocol version to use when establishing the VPN tunnel with\npeer VPN gateway.\nAcceptable IKE versions are 1 or 2. Default version is 2.","description_kind":"plain","optional":true},"local_traffic_selector":{"type":["set","string"],"description":"Local traffic selector to use when establishing the VPN tunnel with\npeer VPN gateway. The value should be a CIDR formatted string,\nfor example '192.168.0.0/16'. The ranges should be disjoint.\nOnly IPv4 is supported.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. The name must be 1-63 characters long, and\ncomply with RFC1035. Specifically, the name must be 1-63\ncharacters long and match the regular expression\n'[a-z]([-a-z0-9]*[a-z0-9])?' which means the first character\nmust be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit,\nexcept the last character, which cannot be a dash.","description_kind":"plain","required":true},"peer_external_gateway":{"type":"string","description":"URL of the peer side external VPN gateway to which this VPN tunnel is connected.","description_kind":"plain","optional":true},"peer_external_gateway_interface":{"type":"number","description":"The interface ID of the external VPN gateway to which this VPN tunnel is connected.","description_kind":"plain","optional":true},"peer_gcp_gateway":{"type":"string","description":"URL of the peer side HA GCP VPN gateway to which this VPN tunnel is connected.\nIf provided, the VPN tunnel will automatically use the same vpn_gateway_interface\nID in the peer GCP VPN gateway.\nThis field must reference a 'google_compute_ha_vpn_gateway' resource.","description_kind":"plain","optional":true},"peer_ip":{"type":"string","description":"IP address of the peer VPN gateway. Only IPv4 is supported.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region where the tunnel is located. If unset, is set to the region of 'target_vpn_gateway'.","description_kind":"plain","optional":true,"computed":true},"remote_traffic_selector":{"type":["set","string"],"description":"Remote traffic selector to use when establishing the VPN tunnel with\npeer VPN gateway. The value should be a CIDR formatted string,\nfor example '192.168.0.0/16'. The ranges should be disjoint.\nOnly IPv4 is supported.","description_kind":"plain","optional":true,"computed":true},"router":{"type":"string","description":"URL of router resource to be used for dynamic routing.","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"shared_secret":{"type":"string","description":"Shared secret used to set the secure session between the Cloud VPN\ngateway and the peer VPN gateway.","description_kind":"plain","required":true,"sensitive":true},"shared_secret_hash":{"type":"string","description":"Hash of the shared secret.","description_kind":"plain","computed":true},"target_vpn_gateway":{"type":"string","description":"URL of the Target VPN gateway with which this VPN tunnel is\nassociated.","description_kind":"plain","optional":true},"tunnel_id":{"type":"string","description":"The unique identifier for the resource. This identifier is defined by the server.","description_kind":"plain","computed":true},"vpn_gateway":{"type":"string","description":"URL of the VPN gateway with which this VPN tunnel is associated.\nThis must be used if a High Availability VPN gateway resource is created.\nThis field must reference a 'google_compute_ha_vpn_gateway' resource.","description_kind":"plain","optional":true},"vpn_gateway_interface":{"type":"number","description":"The interface ID of the VPN gateway with which this VPN tunnel is associated.","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_container_analysis_note":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"The time this note was created.","description_kind":"plain","computed":true},"expiration_time":{"type":"string","description":"Time of expiration for this note. Leave empty if note does not expire.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kind":{"type":"string","description":"The type of analysis this note describes","description_kind":"plain","computed":true},"long_description":{"type":"string","description":"A detailed description of the note","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the note.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"related_note_names":{"type":["set","string"],"description":"Names of other notes related to this note.","description_kind":"plain","optional":true},"short_description":{"type":"string","description":"A one sentence description of the note.","description_kind":"plain","optional":true},"update_time":{"type":"string","description":"The time this note was last updated.","description_kind":"plain","computed":true}},"block_types":{"attestation_authority":{"nesting_mode":"list","block":{"block_types":{"hint":{"nesting_mode":"list","block":{"attributes":{"human_readable_name":{"type":"string","description":"The human readable name of this Attestation Authority, for\nexample \"qa\".","description_kind":"plain","required":true}},"description":"This submessage provides human-readable hints about the purpose of\nthe AttestationAuthority. Because the name of a Note acts as its\nresource reference, it is important to disambiguate the canonical\nname of the Note (which might be a UUID for security purposes)\nfrom \"readable\" names more suitable for debug output. Note that\nthese hints should NOT be used to look up AttestationAuthorities\nin security sensitive contexts, such as when looking up\nAttestations to verify.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Note kind that represents a logical attestation \"role\" or \"authority\".\nFor example, an organization might have one AttestationAuthority for\n\"QA\" and one for \"build\". This Note is intended to act strictly as a\ngrouping mechanism for the attached Occurrences (Attestations). This\ngrouping mechanism also provides a security boundary, since IAM ACLs\ngate the ability for a principle to attach an Occurrence to a given\nNote. It also provides a single point of lookup to find all attached\nAttestation Occurrences, even if they don't all live in the same\nproject.","description_kind":"plain"},"min_items":1,"max_items":1},"related_url":{"nesting_mode":"set","block":{"attributes":{"label":{"type":"string","description":"Label to describe usage of the URL","description_kind":"plain","optional":true},"url":{"type":"string","description":"Specific URL associated with the resource.","description_kind":"plain","required":true}},"description":"URLs associated with this note and related metadata.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_container_analysis_occurrence":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"The time when the repository was created.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kind":{"type":"string","description":"The note kind which explicitly denotes which of the occurrence\ndetails are specified. This field can be used as a filter in list\nrequests.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the occurrence.","description_kind":"plain","computed":true},"note_name":{"type":"string","description":"The analysis note associated with this occurrence, in the form of\nprojects/[PROJECT]/notes/[NOTE_ID]. This field can be used as a\nfilter in list requests.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"remediation":{"type":"string","description":"A description of actions that can be taken to remedy the note.","description_kind":"plain","optional":true},"resource_uri":{"type":"string","description":"Required. Immutable. A URI that represents the resource for which\nthe occurrence applies. For example,\nhttps://gcr.io/project/image@sha256:123abc for a Docker image.","description_kind":"plain","required":true},"update_time":{"type":"string","description":"The time when the repository was last updated.","description_kind":"plain","computed":true}},"block_types":{"attestation":{"nesting_mode":"list","block":{"attributes":{"serialized_payload":{"type":"string","description":"The serialized payload that is verified by one or\nmore signatures. A base64-encoded string.","description_kind":"plain","required":true}},"block_types":{"signatures":{"nesting_mode":"set","block":{"attributes":{"public_key_id":{"type":"string","description":"The identifier for the public key that verifies this\nsignature. MUST be an RFC3986 conformant\nURI. * When possible, the key id should be an\nimmutable reference, such as a cryptographic digest.\nExamples of valid values:\n\n* OpenPGP V4 public key fingerprint. See https://www.iana.org/assignments/uri-schemes/prov/openpgp4fpr\n for more details on this scheme.\n * 'openpgp4fpr:74FAF3B861BDA0870C7B6DEF607E48D2A663AEEA'\n* RFC6920 digest-named SubjectPublicKeyInfo (digest of the DER serialization):\n * \"ni:///sha-256;cD9o9Cq6LG3jD0iKXqEi_vdjJGecm_iXkbqVoScViaU\"","description_kind":"plain","required":true},"signature":{"type":"string","description":"The content of the signature, an opaque bytestring.\nThe payload that this signature verifies MUST be\nunambiguously provided with the Signature during\nverification. A wrapper message might provide the\npayload explicitly. Alternatively, a message might\nhave a canonical serialization that can always be\nunambiguously computed to derive the payload.","description_kind":"plain","optional":true}},"description":"One or more signatures over serializedPayload.\nVerifier implementations should consider this attestation\nmessage verified if at least one signature verifies\nserializedPayload. See Signature in common.proto for more\ndetails on signature structure and verification.","description_kind":"plain"},"min_items":1}},"description":"Occurrence that represents a single \"attestation\". The authenticity\nof an attestation can be verified using the attached signature.\nIf the verifier trusts the public key of the signer, then verifying\nthe signature is sufficient to establish trust. In this circumstance,\nthe authority to which this attestation is attached is primarily\nuseful for lookup (how to find this attestation if you already\nknow the authority and artifact to be verified) and intent (for\nwhich authority this attestation was intended to sign.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_container_aws_cluster":{"version":0,"block":{"attributes":{"annotations":{"type":["map","string"],"description":"Optional. Annotations on the cluster. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between.","description_kind":"plain","optional":true},"aws_region":{"type":"string","description":"The AWS region where the cluster runs. Each Google Cloud region supports a subset of nearby AWS regions. You can call to list all supported AWS regions within a given Google Cloud region.","description_kind":"plain","required":true},"create_time":{"type":"string","description":"Output only. The time at which this cluster was created.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Optional. A human readable description of this cluster. Cannot be longer than 255 UTF-8 encoded bytes.","description_kind":"plain","optional":true},"endpoint":{"type":"string","description":"Output only. The endpoint of the cluster's API server.","description_kind":"plain","computed":true},"etag":{"type":"string","description":"Allows clients to perform consistent read-modify-writes through optimistic concurrency control. May be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location for the resource","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of this resource.","description_kind":"plain","required":true},"project":{"type":"string","description":"The project for the resource","description_kind":"plain","optional":true,"computed":true},"reconciling":{"type":"bool","description":"Output only. If set, there are currently changes in flight to the cluster.","description_kind":"plain","computed":true},"state":{"type":"string","description":"Output only. The current state of the cluster. Possible values: STATE_UNSPECIFIED, PROVISIONING, RUNNING, RECONCILING, STOPPING, ERROR, DEGRADED","description_kind":"plain","computed":true},"uid":{"type":"string","description":"Output only. A globally unique identifier for the cluster.","description_kind":"plain","computed":true},"update_time":{"type":"string","description":"Output only. The time at which this cluster was last updated.","description_kind":"plain","computed":true},"workload_identity_config":{"type":["list",["object",{"identity_provider":"string","issuer_uri":"string","workload_pool":"string"}]],"description":"Output only. Workload Identity settings.","description_kind":"plain","computed":true}},"block_types":{"authorization":{"nesting_mode":"list","block":{"block_types":{"admin_users":{"nesting_mode":"list","block":{"attributes":{"username":{"type":"string","description":"The name of the user, e.g. `my-gcp-id@gmail.com`.","description_kind":"plain","required":true}},"description":"Users to perform operations as a cluster admin. A managed ClusterRoleBinding will be created to grant the `cluster-admin` ClusterRole to the users. At most one user can be specified. For more info on RBAC, see https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles","description_kind":"plain"},"min_items":1}},"description":"Configuration related to the cluster RBAC settings.","description_kind":"plain"},"min_items":1,"max_items":1},"control_plane":{"nesting_mode":"list","block":{"attributes":{"iam_instance_profile":{"type":"string","description":"The name of the AWS IAM instance pofile to assign to each control plane replica.","description_kind":"plain","required":true},"instance_type":{"type":"string","description":"Optional. The AWS instance type. When unspecified, it defaults to `m5.large`.","description_kind":"plain","optional":true,"computed":true},"security_group_ids":{"type":["list","string"],"description":"Optional. The IDs of additional security groups to add to control plane replicas. The Anthos Multi-Cloud API will automatically create and manage security groups with the minimum rules needed for a functioning cluster.","description_kind":"plain","optional":true},"subnet_ids":{"type":["list","string"],"description":"The list of subnets where control plane replicas will run. A replica will be provisioned on each subnet and up to three values can be provided. Each subnet must be in a different AWS Availability Zone (AZ).","description_kind":"plain","required":true},"tags":{"type":["map","string"],"description":"Optional. A set of AWS resource tags to propagate to all underlying managed AWS resources. Specify at most 50 pairs containing alphanumerics, spaces, and symbols (.+-=_:@/). Keys can be up to 127 Unicode characters. Values can be up to 255 Unicode characters.","description_kind":"plain","optional":true},"version":{"type":"string","description":"The Kubernetes version to run on control plane replicas (e.g. `1.19.10-gke.1000`). You can list all supported versions on a given Google Cloud region by calling .","description_kind":"plain","required":true}},"block_types":{"aws_services_authentication":{"nesting_mode":"list","block":{"attributes":{"role_arn":{"type":"string","description":"The Amazon Resource Name (ARN) of the role that the Anthos Multi-Cloud API will assume when managing AWS resources on your account.","description_kind":"plain","required":true},"role_session_name":{"type":"string","description":"Optional. An identifier for the assumed role session. When unspecified, it defaults to `multicloud-service-agent`.","description_kind":"plain","optional":true,"computed":true}},"description":"Authentication configuration for management of AWS resources.","description_kind":"plain"},"min_items":1,"max_items":1},"config_encryption":{"nesting_mode":"list","block":{"attributes":{"kms_key_arn":{"type":"string","description":"The ARN of the AWS KMS key used to encrypt cluster configuration.","description_kind":"plain","required":true}},"description":"The ARN of the AWS KMS key used to encrypt cluster configuration.","description_kind":"plain"},"min_items":1,"max_items":1},"database_encryption":{"nesting_mode":"list","block":{"attributes":{"kms_key_arn":{"type":"string","description":"The ARN of the AWS KMS key used to encrypt cluster secrets.","description_kind":"plain","required":true}},"description":"The ARN of the AWS KMS key used to encrypt cluster secrets.","description_kind":"plain"},"min_items":1,"max_items":1},"main_volume":{"nesting_mode":"list","block":{"attributes":{"iops":{"type":"number","description":"Optional. The number of I/O operations per second (IOPS) to provision for GP3 volume.","description_kind":"plain","optional":true,"computed":true},"kms_key_arn":{"type":"string","description":"Optional. The Amazon Resource Name (ARN) of the Customer Managed Key (CMK) used to encrypt AWS EBS volumes. If not specified, the default Amazon managed key associated to the AWS region where this cluster runs will be used.","description_kind":"plain","optional":true},"size_gib":{"type":"number","description":"Optional. The size of the volume, in GiBs. When unspecified, a default value is provided. See the specific reference in the parent resource.","description_kind":"plain","optional":true,"computed":true},"volume_type":{"type":"string","description":"Optional. Type of the EBS volume. When unspecified, it defaults to GP2 volume. Possible values: VOLUME_TYPE_UNSPECIFIED, GP2, GP3","description_kind":"plain","optional":true,"computed":true}},"description":"Optional. Configuration related to the main volume provisioned for each control plane replica. The main volume is in charge of storing all of the cluster's etcd state. Volumes will be provisioned in the availability zone associated with the corresponding subnet. When unspecified, it defaults to 8 GiB with the GP2 volume type.","description_kind":"plain"},"max_items":1},"proxy_config":{"nesting_mode":"list","block":{"attributes":{"secret_arn":{"type":"string","description":"The ARN of the AWS Secret Manager secret that contains the HTTP(S) proxy configuration.","description_kind":"plain","required":true},"secret_version":{"type":"string","description":"The version string of the AWS Secret Manager secret that contains the HTTP(S) proxy configuration.","description_kind":"plain","required":true}},"description":"Proxy configuration for outbound HTTP(S) traffic.","description_kind":"plain"},"max_items":1},"root_volume":{"nesting_mode":"list","block":{"attributes":{"iops":{"type":"number","description":"Optional. The number of I/O operations per second (IOPS) to provision for GP3 volume.","description_kind":"plain","optional":true,"computed":true},"kms_key_arn":{"type":"string","description":"Optional. The Amazon Resource Name (ARN) of the Customer Managed Key (CMK) used to encrypt AWS EBS volumes. If not specified, the default Amazon managed key associated to the AWS region where this cluster runs will be used.","description_kind":"plain","optional":true},"size_gib":{"type":"number","description":"Optional. The size of the volume, in GiBs. When unspecified, a default value is provided. See the specific reference in the parent resource.","description_kind":"plain","optional":true,"computed":true},"volume_type":{"type":"string","description":"Optional. Type of the EBS volume. When unspecified, it defaults to GP2 volume. Possible values: VOLUME_TYPE_UNSPECIFIED, GP2, GP3","description_kind":"plain","optional":true,"computed":true}},"description":"Optional. Configuration related to the root volume provisioned for each control plane replica. Volumes will be provisioned in the availability zone associated with the corresponding subnet. When unspecified, it defaults to 32 GiB with the GP2 volume type.","description_kind":"plain"},"max_items":1},"ssh_config":{"nesting_mode":"list","block":{"attributes":{"ec2_key_pair":{"type":"string","description":"The name of the EC2 key pair used to login into cluster machines.","description_kind":"plain","required":true}},"description":"Optional. SSH configuration for how to access the underlying control plane machines.","description_kind":"plain"},"max_items":1}},"description":"Configuration related to the cluster control plane.","description_kind":"plain"},"min_items":1,"max_items":1},"fleet":{"nesting_mode":"list","block":{"attributes":{"membership":{"type":"string","description":"The name of the managed Hub Membership resource associated to this cluster. Membership names are formatted as projects/\u003cproject-number\u003e/locations/global/membership/\u003ccluster-id\u003e.","description_kind":"plain","computed":true},"project":{"type":"string","description":"The number of the Fleet host project where this cluster will be registered.","description_kind":"plain","optional":true,"computed":true}},"description":"Fleet configuration.","description_kind":"plain"},"min_items":1,"max_items":1},"networking":{"nesting_mode":"list","block":{"attributes":{"pod_address_cidr_blocks":{"type":["list","string"],"description":"All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges. Only a single range is supported. This field cannot be changed after creation.","description_kind":"plain","required":true},"service_address_cidr_blocks":{"type":["list","string"],"description":"All services in the cluster are assigned an RFC1918 IPv4 address from these ranges. Only a single range is supported. This field cannot be changed after creation.","description_kind":"plain","required":true},"vpc_id":{"type":"string","description":"The VPC associated with the cluster. All component clusters (i.e. control plane and node pools) run on a single VPC. This field cannot be changed after creation.","description_kind":"plain","required":true}},"description":"Cluster-wide networking configuration.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_container_aws_node_pool":{"version":0,"block":{"attributes":{"annotations":{"type":["map","string"],"description":"Optional. Annotations on the node pool. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between.","description_kind":"plain","optional":true},"cluster":{"type":"string","description":"The awsCluster for the resource","description_kind":"plain","required":true},"create_time":{"type":"string","description":"Output only. The time at which this node pool was created.","description_kind":"plain","computed":true},"etag":{"type":"string","description":"Allows clients to perform consistent read-modify-writes through optimistic concurrency control. May be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location for the resource","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of this resource.","description_kind":"plain","required":true},"project":{"type":"string","description":"The project for the resource","description_kind":"plain","optional":true,"computed":true},"reconciling":{"type":"bool","description":"Output only. If set, there are currently changes in flight to the node pool.","description_kind":"plain","computed":true},"state":{"type":"string","description":"Output only. The lifecycle state of the node pool. Possible values: STATE_UNSPECIFIED, PROVISIONING, RUNNING, RECONCILING, STOPPING, ERROR, DEGRADED","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description":"The subnet where the node pool node run.","description_kind":"plain","required":true},"uid":{"type":"string","description":"Output only. A globally unique identifier for the node pool.","description_kind":"plain","computed":true},"update_time":{"type":"string","description":"Output only. The time at which this node pool was last updated.","description_kind":"plain","computed":true},"version":{"type":"string","description":"The Kubernetes version to run on this node pool (e.g. `1.19.10-gke.1000`). You can list all supported versions on a given Google Cloud region by calling GetAwsServerConfig.","description_kind":"plain","required":true}},"block_types":{"autoscaling":{"nesting_mode":"list","block":{"attributes":{"max_node_count":{"type":"number","description":"Maximum number of nodes in the NodePool. Must be \u003e= min_node_count.","description_kind":"plain","required":true},"min_node_count":{"type":"number","description":"Minimum number of nodes in the NodePool. Must be \u003e= 1 and \u003c= max_node_count.","description_kind":"plain","required":true}},"description":"Autoscaler configuration for this node pool.","description_kind":"plain"},"min_items":1,"max_items":1},"config":{"nesting_mode":"list","block":{"attributes":{"iam_instance_profile":{"type":"string","description":"The name of the AWS IAM role assigned to nodes in the pool.","description_kind":"plain","required":true},"instance_type":{"type":"string","description":"Optional. The AWS instance type. When unspecified, it defaults to `m5.large`.","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Optional. The initial labels assigned to nodes of this node pool. An object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true},"security_group_ids":{"type":["list","string"],"description":"Optional. The IDs of additional security groups to add to nodes in this pool. The manager will automatically create security groups with minimum rules needed for a functioning cluster.","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description":"Optional. Key/value metadata to assign to each underlying AWS resource. Specify at most 50 pairs containing alphanumerics, spaces, and symbols (.+-=_:@/). Keys can be up to 127 Unicode characters. Values can be up to 255 Unicode characters.","description_kind":"plain","optional":true}},"block_types":{"config_encryption":{"nesting_mode":"list","block":{"attributes":{"kms_key_arn":{"type":"string","description":"The ARN of the AWS KMS key used to encrypt node pool configuration.","description_kind":"plain","required":true}},"description":"The ARN of the AWS KMS key used to encrypt node pool configuration.","description_kind":"plain"},"min_items":1,"max_items":1},"root_volume":{"nesting_mode":"list","block":{"attributes":{"iops":{"type":"number","description":"Optional. The number of I/O operations per second (IOPS) to provision for GP3 volume.","description_kind":"plain","optional":true,"computed":true},"kms_key_arn":{"type":"string","description":"Optional. The Amazon Resource Name (ARN) of the Customer Managed Key (CMK) used to encrypt AWS EBS volumes. If not specified, the default Amazon managed key associated to the AWS region where this cluster runs will be used.","description_kind":"plain","optional":true},"size_gib":{"type":"number","description":"Optional. The size of the volume, in GiBs. When unspecified, a default value is provided. See the specific reference in the parent resource.","description_kind":"plain","optional":true,"computed":true},"volume_type":{"type":"string","description":"Optional. Type of the EBS volume. When unspecified, it defaults to GP2 volume. Possible values: VOLUME_TYPE_UNSPECIFIED, GP2, GP3","description_kind":"plain","optional":true,"computed":true}},"description":"Optional. Template for the root volume provisioned for node pool nodes. Volumes will be provisioned in the availability zone assigned to the node pool subnet. When unspecified, it defaults to 32 GiB with the GP2 volume type.","description_kind":"plain"},"max_items":1},"ssh_config":{"nesting_mode":"list","block":{"attributes":{"ec2_key_pair":{"type":"string","description":"The name of the EC2 key pair used to login into cluster machines.","description_kind":"plain","required":true}},"description":"Optional. The SSH configuration.","description_kind":"plain"},"max_items":1},"taints":{"nesting_mode":"list","block":{"attributes":{"effect":{"type":"string","description":"The taint effect. Possible values: EFFECT_UNSPECIFIED, NO_SCHEDULE, PREFER_NO_SCHEDULE, NO_EXECUTE","description_kind":"plain","required":true},"key":{"type":"string","description":"Key for the taint.","description_kind":"plain","required":true},"value":{"type":"string","description":"Value for the taint.","description_kind":"plain","required":true}},"description":"Optional. The initial taints assigned to nodes of this node pool.","description_kind":"plain"}}},"description":"The configuration of the node pool.","description_kind":"plain"},"min_items":1,"max_items":1},"max_pods_constraint":{"nesting_mode":"list","block":{"attributes":{"max_pods_per_node":{"type":"number","description":"The maximum number of pods to schedule on a single node.","description_kind":"plain","required":true}},"description":"The constraint on the maximum number of pods that can be run simultaneously on a node in the node pool.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_container_azure_client":{"version":0,"block":{"attributes":{"application_id":{"type":"string","description":"The Azure Active Directory Application ID.","description_kind":"plain","required":true},"certificate":{"type":"string","description":"Output only. The PEM encoded x509 certificate.","description_kind":"plain","computed":true},"create_time":{"type":"string","description":"Output only. The time at which this resource was created.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location for the resource","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of this resource.","description_kind":"plain","required":true},"project":{"type":"string","description":"The project for the resource","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description":"The Azure Active Directory Tenant ID.","description_kind":"plain","required":true},"uid":{"type":"string","description":"Output only. A globally unique identifier for the client.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_container_azure_cluster":{"version":0,"block":{"attributes":{"annotations":{"type":["map","string"],"description":"Optional. Annotations on the cluster. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Keys can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between.","description_kind":"plain","optional":true},"azure_region":{"type":"string","description":"The Azure region where the cluster runs. Each Google Cloud region supports a subset of nearby Azure regions. You can call to list all supported Azure regions within a given Google Cloud region.","description_kind":"plain","required":true},"client":{"type":"string","description":"Name of the AzureClient. The `AzureClient` resource must reside on the same GCP project and region as the `AzureCluster`. `AzureClient` names are formatted as `projects/\u003cproject-number\u003e/locations/\u003cregion\u003e/azureClients/\u003cclient-id\u003e`. See Resource Names (https:cloud.google.com/apis/design/resource_names) for more details on Google Cloud resource names.","description_kind":"plain","required":true},"create_time":{"type":"string","description":"Output only. The time at which this cluster was created.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Optional. A human readable description of this cluster. Cannot be longer than 255 UTF-8 encoded bytes.","description_kind":"plain","optional":true},"endpoint":{"type":"string","description":"Output only. The endpoint of the cluster's API server.","description_kind":"plain","computed":true},"etag":{"type":"string","description":"Allows clients to perform consistent read-modify-writes through optimistic concurrency control. May be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location for the resource","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of this resource.","description_kind":"plain","required":true},"project":{"type":"string","description":"The project for the resource","description_kind":"plain","optional":true,"computed":true},"reconciling":{"type":"bool","description":"Output only. If set, there are currently changes in flight to the cluster.","description_kind":"plain","computed":true},"resource_group_id":{"type":"string","description":"The ARM ID of the resource group where the cluster resources are deployed. For example: `/subscriptions/*/resourceGroups/*`","description_kind":"plain","required":true},"state":{"type":"string","description":"Output only. The current state of the cluster. Possible values: STATE_UNSPECIFIED, PROVISIONING, RUNNING, RECONCILING, STOPPING, ERROR, DEGRADED","description_kind":"plain","computed":true},"uid":{"type":"string","description":"Output only. A globally unique identifier for the cluster.","description_kind":"plain","computed":true},"update_time":{"type":"string","description":"Output only. The time at which this cluster was last updated.","description_kind":"plain","computed":true},"workload_identity_config":{"type":["list",["object",{"identity_provider":"string","issuer_uri":"string","workload_pool":"string"}]],"description":"Output only. Workload Identity settings.","description_kind":"plain","computed":true}},"block_types":{"authorization":{"nesting_mode":"list","block":{"block_types":{"admin_users":{"nesting_mode":"list","block":{"attributes":{"username":{"type":"string","description":"The name of the user, e.g. `my-gcp-id@gmail.com`.","description_kind":"plain","required":true}},"description":"Users that can perform operations as a cluster admin. A new ClusterRoleBinding will be created to grant the cluster-admin ClusterRole to the users. At most one user can be specified. For more info on RBAC, see https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles","description_kind":"plain"},"min_items":1}},"description":"Configuration related to the cluster RBAC settings.","description_kind":"plain"},"min_items":1,"max_items":1},"control_plane":{"nesting_mode":"list","block":{"attributes":{"subnet_id":{"type":"string","description":"The ARM ID of the subnet where the control plane VMs are deployed. Example: `/subscriptions//resourceGroups//providers/Microsoft.Network/virtualNetworks//subnets/default`.","description_kind":"plain","required":true},"tags":{"type":["map","string"],"description":"Optional. A set of tags to apply to all underlying control plane Azure resources.","description_kind":"plain","optional":true},"version":{"type":"string","description":"The Kubernetes version to run on control plane replicas (e.g. `1.19.10-gke.1000`). You can list all supported versions on a given Google Cloud region by calling GetAzureServerConfig.","description_kind":"plain","required":true},"vm_size":{"type":"string","description":"Optional. The Azure VM size name. Example: `Standard_DS2_v2`. For available VM sizes, see https://docs.microsoft.com/en-us/azure/virtual-machines/vm-naming-conventions. When unspecified, it defaults to `Standard_DS2_v2`.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"database_encryption":{"nesting_mode":"list","block":{"attributes":{"key_id":{"type":"string","description":"The ARM ID of the Azure Key Vault key to encrypt / decrypt data. For example: `/subscriptions/\u003csubscription-id\u003e/resourceGroups/\u003cresource-group-id\u003e/providers/Microsoft.KeyVault/vaults/\u003ckey-vault-id\u003e/keys/\u003ckey-name\u003e` Encryption will always take the latest version of the key and hence specific version is not supported.","description_kind":"plain","required":true}},"description":"Optional. Configuration related to application-layer secrets encryption.","description_kind":"plain"},"max_items":1},"main_volume":{"nesting_mode":"list","block":{"attributes":{"size_gib":{"type":"number","description":"Optional. The size of the disk, in GiBs. When unspecified, a default value is provided. See the specific reference in the parent resource.","description_kind":"plain","optional":true,"computed":true}},"description":"Optional. Configuration related to the main volume provisioned for each control plane replica. The main volume is in charge of storing all of the cluster's etcd state. When unspecified, it defaults to a 8-GiB Azure Disk.","description_kind":"plain"},"max_items":1},"proxy_config":{"nesting_mode":"list","block":{"attributes":{"resource_group_id":{"type":"string","description":"The ARM ID the of the resource group containing proxy keyvault. Resource group ids are formatted as `/subscriptions/\u003csubscription-id\u003e/resourceGroups/\u003cresource-group-name\u003e`","description_kind":"plain","required":true},"secret_id":{"type":"string","description":"The URL the of the proxy setting secret with its version. Secret ids are formatted as `https:\u003ckey-vault-name\u003e.vault.azure.net/secrets/\u003csecret-name\u003e/\u003csecret-version\u003e`.","description_kind":"plain","required":true}},"description":"Proxy configuration for outbound HTTP(S) traffic.","description_kind":"plain"},"max_items":1},"replica_placements":{"nesting_mode":"list","block":{"attributes":{"azure_availability_zone":{"type":"string","description":"For a given replica, the Azure availability zone where to provision the control plane VM and the ETCD disk.","description_kind":"plain","required":true},"subnet_id":{"type":"string","description":"For a given replica, the ARM ID of the subnet where the control plane VM is deployed. Make sure it's a subnet under the virtual network in the cluster configuration.","description_kind":"plain","required":true}},"description":"Configuration for where to place the control plane replicas. Up to three replica placement instances can be specified. If replica_placements is set, the replica placement instances will be applied to the three control plane replicas as evenly as possible.","description_kind":"plain"}},"root_volume":{"nesting_mode":"list","block":{"attributes":{"size_gib":{"type":"number","description":"Optional. The size of the disk, in GiBs. When unspecified, a default value is provided. See the specific reference in the parent resource.","description_kind":"plain","optional":true,"computed":true}},"description":"Optional. Configuration related to the root volume provisioned for each control plane replica. When unspecified, it defaults to 32-GiB Azure Disk.","description_kind":"plain"},"max_items":1},"ssh_config":{"nesting_mode":"list","block":{"attributes":{"authorized_key":{"type":"string","description":"The SSH public key data for VMs managed by Anthos. This accepts the authorized_keys file format used in OpenSSH according to the sshd(8) manual page.","description_kind":"plain","required":true}},"description":"SSH configuration for how to access the underlying control plane machines.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Configuration related to the cluster control plane.","description_kind":"plain"},"min_items":1,"max_items":1},"fleet":{"nesting_mode":"list","block":{"attributes":{"membership":{"type":"string","description":"The name of the managed Hub Membership resource associated to this cluster. Membership names are formatted as projects/\u003cproject-number\u003e/locations/global/membership/\u003ccluster-id\u003e.","description_kind":"plain","computed":true},"project":{"type":"string","description":"The number of the Fleet host project where this cluster will be registered.","description_kind":"plain","optional":true,"computed":true}},"description":"Fleet configuration.","description_kind":"plain"},"min_items":1,"max_items":1},"networking":{"nesting_mode":"list","block":{"attributes":{"pod_address_cidr_blocks":{"type":["list","string"],"description":"The IP address range of the pods in this cluster, in CIDR notation (e.g. `10.96.0.0/14`). All pods in the cluster get assigned a unique RFC1918 IPv4 address from these ranges. Only a single range is supported. This field cannot be changed after creation.","description_kind":"plain","required":true},"service_address_cidr_blocks":{"type":["list","string"],"description":"The IP address range for services in this cluster, in CIDR notation (e.g. `10.96.0.0/14`). All services in the cluster get assigned a unique RFC1918 IPv4 address from these ranges. Only a single range is supported. This field cannot be changed after creating a cluster.","description_kind":"plain","required":true},"virtual_network_id":{"type":"string","description":"The Azure Resource Manager (ARM) ID of the VNet associated with your cluster. All components in the cluster (i.e. control plane and node pools) run on a single VNet. Example: `/subscriptions/*/resourceGroups/*/providers/Microsoft.Network/virtualNetworks/*` This field cannot be changed after creation.","description_kind":"plain","required":true}},"description":"Cluster-wide networking configuration.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_container_azure_node_pool":{"version":0,"block":{"attributes":{"annotations":{"type":["map","string"],"description":"Optional. Annotations on the node pool. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Keys can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between.","description_kind":"plain","optional":true},"azure_availability_zone":{"type":"string","description":"Optional. The Azure availability zone of the nodes in this nodepool. When unspecified, it defaults to `1`.","description_kind":"plain","optional":true,"computed":true},"cluster":{"type":"string","description":"The azureCluster for the resource","description_kind":"plain","required":true},"create_time":{"type":"string","description":"Output only. The time at which this node pool was created.","description_kind":"plain","computed":true},"etag":{"type":"string","description":"Allows clients to perform consistent read-modify-writes through optimistic concurrency control. May be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location for the resource","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of this resource.","description_kind":"plain","required":true},"project":{"type":"string","description":"The project for the resource","description_kind":"plain","optional":true,"computed":true},"reconciling":{"type":"bool","description":"Output only. If set, there are currently pending changes to the node pool.","description_kind":"plain","computed":true},"state":{"type":"string","description":"Output only. The current state of the node pool. Possible values: STATE_UNSPECIFIED, PROVISIONING, RUNNING, RECONCILING, STOPPING, ERROR, DEGRADED","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description":"The ARM ID of the subnet where the node pool VMs run. Make sure it's a subnet under the virtual network in the cluster configuration.","description_kind":"plain","required":true},"uid":{"type":"string","description":"Output only. A globally unique identifier for the node pool.","description_kind":"plain","computed":true},"update_time":{"type":"string","description":"Output only. The time at which this node pool was last updated.","description_kind":"plain","computed":true},"version":{"type":"string","description":"The Kubernetes version (e.g. `1.19.10-gke.1000`) running on this node pool.","description_kind":"plain","required":true}},"block_types":{"autoscaling":{"nesting_mode":"list","block":{"attributes":{"max_node_count":{"type":"number","description":"Maximum number of nodes in the node pool. Must be \u003e= min_node_count.","description_kind":"plain","required":true},"min_node_count":{"type":"number","description":"Minimum number of nodes in the node pool. Must be \u003e= 1 and \u003c= max_node_count.","description_kind":"plain","required":true}},"description":"Autoscaler configuration for this node pool.","description_kind":"plain"},"min_items":1,"max_items":1},"config":{"nesting_mode":"list","block":{"attributes":{"tags":{"type":["map","string"],"description":"Optional. A set of tags to apply to all underlying Azure resources for this node pool. This currently only includes Virtual Machine Scale Sets. Specify at most 50 pairs containing alphanumerics, spaces, and symbols (.+-=_:@/). Keys can be up to 127 Unicode characters. Values can be up to 255 Unicode characters.","description_kind":"plain","optional":true},"vm_size":{"type":"string","description":"Optional. The Azure VM size name. Example: `Standard_DS2_v2`. See (/anthos/clusters/docs/azure/reference/supported-vms) for options. When unspecified, it defaults to `Standard_DS2_v2`.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"root_volume":{"nesting_mode":"list","block":{"attributes":{"size_gib":{"type":"number","description":"Optional. The size of the disk, in GiBs. When unspecified, a default value is provided. See the specific reference in the parent resource.","description_kind":"plain","optional":true,"computed":true}},"description":"Optional. Configuration related to the root volume provisioned for each node pool machine. When unspecified, it defaults to a 32-GiB Azure Disk.","description_kind":"plain"},"max_items":1},"ssh_config":{"nesting_mode":"list","block":{"attributes":{"authorized_key":{"type":"string","description":"The SSH public key data for VMs managed by Anthos. This accepts the authorized_keys file format used in OpenSSH according to the sshd(8) manual page.","description_kind":"plain","required":true}},"description":"SSH configuration for how to access the node pool machines.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"The node configuration of the node pool.","description_kind":"plain"},"min_items":1,"max_items":1},"max_pods_constraint":{"nesting_mode":"list","block":{"attributes":{"max_pods_per_node":{"type":"number","description":"The maximum number of pods to schedule on a single node.","description_kind":"plain","required":true}},"description":"The constraint on the maximum number of pods that can be run simultaneously on a node in the node pool.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_container_cluster":{"version":1,"block":{"attributes":{"cluster_ipv4_cidr":{"type":"string","description":"The IP address range of the Kubernetes pods in this cluster in CIDR notation (e.g. 10.96.0.0/14). Leave blank to have one automatically chosen or specify a /14 block in 10.0.0.0/8. This field will only work for routes-based clusters, where ip_allocation_policy is not defined.","description_kind":"plain","optional":true,"computed":true},"datapath_provider":{"type":"string","description":"The desired datapath provider for this cluster. By default, uses the IPTables-based kube-proxy implementation.","description_kind":"plain","optional":true,"computed":true},"default_max_pods_per_node":{"type":"number","description":"The default maximum number of pods per node in this cluster. This doesn't work on \"routes-based\" clusters, clusters that don't have IP Aliasing enabled.","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description":" Description of the cluster.","description_kind":"plain","optional":true},"enable_autopilot":{"type":"bool","description":"Enable Autopilot for this cluster.","description_kind":"plain","optional":true},"enable_binary_authorization":{"type":"bool","description":"Enable Binary Authorization for this cluster. If enabled, all container images will be validated by Google Binary Authorization.","description_kind":"plain","optional":true},"enable_intranode_visibility":{"type":"bool","description":"Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network.","description_kind":"plain","optional":true,"computed":true},"enable_kubernetes_alpha":{"type":"bool","description":"Whether to enable Kubernetes Alpha features for this cluster. Note that when this option is enabled, the cluster cannot be upgraded and will be automatically deleted after 30 days.","description_kind":"plain","optional":true},"enable_legacy_abac":{"type":"bool","description":"Whether the ABAC authorizer is enabled for this cluster. When enabled, identities in the system, including service accounts, nodes, and controllers, will have statically granted permissions beyond those provided by the RBAC configuration or IAM. Defaults to false.","description_kind":"plain","optional":true},"enable_shielded_nodes":{"type":"bool","description":"Enable Shielded Nodes features on all nodes in this cluster. Defaults to true.","description_kind":"plain","optional":true},"enable_tpu":{"type":"bool","description":"Whether to enable Cloud TPU resources in this cluster.","description_kind":"plain","optional":true},"endpoint":{"type":"string","description":"The IP address of this cluster's Kubernetes master.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"initial_node_count":{"type":"number","description":"The number of nodes to create in this cluster's default node pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Must be set if node_pool is not set. If you're using google_container_node_pool objects with no default node pool, you'll need to set this to a value of at least 1, alongside setting remove_default_node_pool to true.","description_kind":"plain","optional":true},"label_fingerprint":{"type":"string","description":"The fingerprint of the set of labels for this cluster.","description_kind":"plain","computed":true},"location":{"type":"string","description":"The location (region or zone) in which the cluster master will be created, as well as the default node location. If you specify a zone (such as us-central1-a), the cluster will be a zonal cluster with a single cluster master. If you specify a region (such as us-west1), the cluster will be a regional cluster with multiple masters spread across zones in the region, and with default node locations in those zones as well.","description_kind":"plain","optional":true,"computed":true},"logging_service":{"type":"string","description":"The logging service that the cluster should write logs to. Available options include logging.googleapis.com(Legacy Stackdriver), logging.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Logging), and none. Defaults to logging.googleapis.com/kubernetes.","description_kind":"plain","optional":true,"computed":true},"master_version":{"type":"string","description":"The current version of the master in the cluster. This may be different than the min_master_version set in the config if the master has been updated by GKE.","description_kind":"plain","computed":true},"min_master_version":{"type":"string","description":"The minimum version of the master. GKE will auto-update the master to new versions, so this does not guarantee the current master version--use the read-only master_version field to obtain that. If unset, the cluster's version will be set by GKE to the version of the most recent official release (which is not necessarily the latest version).","description_kind":"plain","optional":true},"monitoring_service":{"type":"string","description":"The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com(Legacy Stackdriver), monitoring.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Monitoring), and none. Defaults to monitoring.googleapis.com/kubernetes.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the cluster, unique within the project and location.","description_kind":"plain","required":true},"network":{"type":"string","description":"The name or self_link of the Google Compute Engine network to which the cluster is connected. For Shared VPC, set this to the self link of the shared network.","description_kind":"plain","optional":true},"networking_mode":{"type":"string","description":"Determines whether alias IPs or routes will be used for pod IPs in the cluster.","description_kind":"plain","optional":true,"computed":true},"node_locations":{"type":["set","string"],"description":"The list of zones in which the cluster's nodes are located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If this is specified for a zonal cluster, omit the cluster's zone.","description_kind":"plain","optional":true,"computed":true},"node_version":{"type":"string","description":"The Kubernetes version on the nodes. Must either be unset or set to the same value as min_master_version on create. Defaults to the default version set by GKE which is not necessarily the latest version. This only affects nodes in the default node pool. While a fuzzy version can be specified, it's recommended that you specify explicit versions as Terraform will see spurious diffs when fuzzy versions are used. See the google_container_engine_versions data source's version_prefix field to approximate fuzzy versions in a Terraform-compatible way. To update nodes in other node pools, use the version attribute on the node pool.","description_kind":"plain","optional":true,"computed":true},"operation":{"type":"string","description_kind":"plain","computed":true},"private_ipv6_google_access":{"type":"string","description":"The desired state of IPv6 connectivity to Google Services. By default, no private IPv6 access to or from Google Services (all access will be via IPv4).","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"remove_default_node_pool":{"type":"bool","description":"If true, deletes the default node pool upon cluster creation. If you're using google_container_node_pool resources with no default node pool, this should be set to true, alongside setting initial_node_count to at least 1.","description_kind":"plain","optional":true},"resource_labels":{"type":["map","string"],"description":"The GCE resource labels (a map of key/value pairs) to be applied to the cluster.","description_kind":"plain","optional":true},"self_link":{"type":"string","description":"Server-defined URL for the resource.","description_kind":"plain","computed":true},"services_ipv4_cidr":{"type":"string","description":"The IP address range of the Kubernetes services in this cluster, in CIDR notation (e.g. 1.2.3.4/29). Service addresses are typically put in the last /16 from the container CIDR.","description_kind":"plain","computed":true},"subnetwork":{"type":"string","description":"The name or self_link of the Google Compute Engine subnetwork in which the cluster's instances are launched.","description_kind":"plain","optional":true,"computed":true},"tpu_ipv4_cidr_block":{"type":"string","description":"The IP address range of the Cloud TPUs in this cluster, in CIDR notation (e.g. 1.2.3.4/29).","description_kind":"plain","computed":true}},"block_types":{"addons_config":{"nesting_mode":"list","block":{"block_types":{"cloudrun_config":{"nesting_mode":"list","block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","required":true},"load_balancer_type":{"type":"string","description_kind":"plain","optional":true}},"description":"The status of the CloudRun addon. It is disabled by default. Set disabled = false to enable.","description_kind":"plain"},"max_items":1},"gcp_filestore_csi_driver_config":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description_kind":"plain","required":true}},"description":"The status of the Filestore CSI driver addon, which allows the usage of filestore instance as volumes. Defaults to disabled; set enabled = true to enable.","description_kind":"plain"},"max_items":1},"horizontal_pod_autoscaling":{"nesting_mode":"list","block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","required":true}},"description":"The status of the Horizontal Pod Autoscaling addon, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods. It ensures that a Heapster pod is running in the cluster, which is also used by the Cloud Monitoring service. It is enabled by default; set disabled = true to disable.","description_kind":"plain"},"max_items":1},"http_load_balancing":{"nesting_mode":"list","block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","required":true}},"description":"The status of the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster. It is enabled by default; set disabled = true to disable.","description_kind":"plain"},"max_items":1},"network_policy_config":{"nesting_mode":"list","block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","required":true}},"description":"Whether we should enable the network policy addon for the master. This must be enabled in order to enable network policy for the nodes. To enable this, you must also define a network_policy block, otherwise nothing will happen. It can only be disabled if the nodes already do not have network policies enabled. Defaults to disabled; set disabled = false to enable.","description_kind":"plain"},"max_items":1}},"description":"The configuration for addons supported by GKE.","description_kind":"plain"},"max_items":1},"authenticator_groups_config":{"nesting_mode":"list","block":{"attributes":{"security_group":{"type":"string","description":"The name of the RBAC security group for use with Google security groups in Kubernetes RBAC. Group name must be in format gke-security-groups@yourdomain.com.","description_kind":"plain","required":true}},"description":"Configuration for the Google Groups for GKE feature.","description_kind":"plain"},"max_items":1},"cluster_autoscaling":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Whether node auto-provisioning is enabled. Resource limits for cpu and memory must be defined to enable node auto-provisioning.","description_kind":"plain","required":true}},"block_types":{"auto_provisioning_defaults":{"nesting_mode":"list","block":{"attributes":{"image_type":{"type":"string","description":"The default image type used by NAP once a new node pool is being created.","description_kind":"plain","optional":true},"oauth_scopes":{"type":["list","string"],"description":"Scopes that are used by NAP when creating node pools.","description_kind":"plain","optional":true,"computed":true},"service_account":{"type":"string","description":"The Google Cloud Platform Service Account to be used by the node VMs.","description_kind":"plain","optional":true}},"description":"Contains defaults for a node pool created by NAP.","description_kind":"plain"},"max_items":1},"resource_limits":{"nesting_mode":"list","block":{"attributes":{"maximum":{"type":"number","description":"Maximum amount of the resource in the cluster.","description_kind":"plain","optional":true},"minimum":{"type":"number","description":"Minimum amount of the resource in the cluster.","description_kind":"plain","optional":true},"resource_type":{"type":"string","description":"The type of the resource. For example, cpu and memory. See the guide to using Node Auto-Provisioning for a list of types.","description_kind":"plain","required":true}},"description":"Global constraints for machine resources in the cluster. Configuring the cpu and memory types is required if node auto-provisioning is enabled. These limits will apply to node pool autoscaling in addition to node auto-provisioning.","description_kind":"plain"}}},"description":"Per-cluster configuration of Node Auto-Provisioning with Cluster Autoscaler to automatically adjust the size of the cluster and create/delete node pools based on the current needs of the cluster's workload. See the guide to using Node Auto-Provisioning for more details.","description_kind":"plain"},"max_items":1},"confidential_nodes":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Whether Confidential Nodes feature is enabled for all nodes in this cluster.","description_kind":"plain","required":true}},"description":"Configuration for the confidential nodes feature, which makes nodes run on confidential VMs. Warning: This configuration can't be changed (or added/removed) after cluster creation without deleting and recreating the entire cluster.","description_kind":"plain"},"max_items":1},"database_encryption":{"nesting_mode":"list","block":{"attributes":{"key_name":{"type":"string","description":"The key to use to encrypt/decrypt secrets.","description_kind":"plain","optional":true},"state":{"type":"string","description":"ENCRYPTED or DECRYPTED.","description_kind":"plain","required":true}},"description":"Application-layer Secrets Encryption settings. The object format is {state = string, key_name = string}. Valid values of state are: \"ENCRYPTED\"; \"DECRYPTED\". key_name is the name of a CloudKMS key.","description_kind":"plain"},"max_items":1},"default_snat_status":{"nesting_mode":"list","block":{"attributes":{"disabled":{"type":"bool","description":"When disabled is set to false, default IP masquerade rules will be applied to the nodes to prevent sNAT on cluster internal traffic.","description_kind":"plain","required":true}},"description":"Whether the cluster disables default in-node sNAT rules. In-node sNAT rules will be disabled when defaultSnatStatus is disabled.","description_kind":"plain"},"max_items":1},"dns_config":{"nesting_mode":"list","block":{"attributes":{"cluster_dns":{"type":"string","description":"Which in-cluster DNS provider should be used.","description_kind":"plain","optional":true},"cluster_dns_domain":{"type":"string","description":"The suffix used for all cluster service records.","description_kind":"plain","optional":true},"cluster_dns_scope":{"type":"string","description":"The scope of access to cluster DNS records.","description_kind":"plain","optional":true}},"description":"Configuration for Cloud DNS for Kubernetes Engine.","description_kind":"plain"},"max_items":1},"ip_allocation_policy":{"nesting_mode":"list","block":{"attributes":{"cluster_ipv4_cidr_block":{"type":"string","description":"The IP address range for the cluster pod IPs. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use.","description_kind":"plain","optional":true,"computed":true},"cluster_secondary_range_name":{"type":"string","description":"The name of the existing secondary range in the cluster's subnetwork to use for pod IP addresses. Alternatively, cluster_ipv4_cidr_block can be used to automatically create a GKE-managed one.","description_kind":"plain","optional":true,"computed":true},"services_ipv4_cidr_block":{"type":"string","description":"The IP address range of the services IPs in this cluster. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use.","description_kind":"plain","optional":true,"computed":true},"services_secondary_range_name":{"type":"string","description":"The name of the existing secondary range in the cluster's subnetwork to use for service ClusterIPs. Alternatively, services_ipv4_cidr_block can be used to automatically create a GKE-managed one.","description_kind":"plain","optional":true,"computed":true}},"description":"Configuration of cluster IP allocation for VPC-native clusters. Adding this block enables IP aliasing, making the cluster VPC-native instead of routes-based.","description_kind":"plain"},"max_items":1},"logging_config":{"nesting_mode":"list","block":{"attributes":{"enable_components":{"type":["list","string"],"description":"GKE components exposing logs. Valid values include SYSTEM_COMPONENTS and WORKLOADS.","description_kind":"plain","required":true}},"description":"Logging configuration for the cluster.","description_kind":"plain"},"max_items":1},"maintenance_policy":{"nesting_mode":"list","block":{"block_types":{"daily_maintenance_window":{"nesting_mode":"list","block":{"attributes":{"duration":{"type":"string","description_kind":"plain","computed":true},"start_time":{"type":"string","description_kind":"plain","required":true}},"description":"Time window specified for daily maintenance operations. Specify start_time in RFC3339 format \"HH:MM”, where HH : [00-23] and MM : [00-59] GMT.","description_kind":"plain"},"max_items":1},"maintenance_exclusion":{"nesting_mode":"set","block":{"attributes":{"end_time":{"type":"string","description_kind":"plain","required":true},"exclusion_name":{"type":"string","description_kind":"plain","required":true},"start_time":{"type":"string","description_kind":"plain","required":true}},"description":"Exceptions to maintenance window. Non-emergency maintenance should not occur in these windows.","description_kind":"plain"},"max_items":3},"recurring_window":{"nesting_mode":"list","block":{"attributes":{"end_time":{"type":"string","description_kind":"plain","required":true},"recurrence":{"type":"string","description_kind":"plain","required":true},"start_time":{"type":"string","description_kind":"plain","required":true}},"description":"Time window for recurring maintenance operations.","description_kind":"plain"},"max_items":1}},"description":"The maintenance policy to use for the cluster.","description_kind":"plain"},"max_items":1},"master_auth":{"nesting_mode":"list","block":{"attributes":{"client_certificate":{"type":"string","description":"Base64 encoded public certificate used by clients to authenticate to the cluster endpoint.","description_kind":"plain","computed":true},"client_key":{"type":"string","description":"Base64 encoded private key used by clients to authenticate to the cluster endpoint.","description_kind":"plain","computed":true,"sensitive":true},"cluster_ca_certificate":{"type":"string","description":"Base64 encoded public certificate that is the root of trust for the cluster.","description_kind":"plain","computed":true}},"block_types":{"client_certificate_config":{"nesting_mode":"list","block":{"attributes":{"issue_client_certificate":{"type":"bool","description":"Whether client certificate authorization is enabled for this cluster.","description_kind":"plain","required":true}},"description":"Whether client certificate authorization is enabled for this cluster.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"The authentication information for accessing the Kubernetes master. Some values in this block are only returned by the API if your service account has permission to get credentials for your GKE cluster. If you see an unexpected diff unsetting your client cert, ensure you have the container.clusters.getCredentials permission.","description_kind":"plain"},"max_items":1},"master_authorized_networks_config":{"nesting_mode":"list","block":{"block_types":{"cidr_blocks":{"nesting_mode":"set","block":{"attributes":{"cidr_block":{"type":"string","description":"External network that can access Kubernetes master through HTTPS. Must be specified in CIDR notation.","description_kind":"plain","required":true},"display_name":{"type":"string","description":"Field for users to identify CIDR blocks.","description_kind":"plain","optional":true}},"description":"External networks that can access the Kubernetes cluster master through HTTPS.","description_kind":"plain"}}},"description":"The desired configuration options for master authorized networks. Omit the nested cidr_blocks attribute to disallow external access (except the cluster node IPs, which GKE automatically whitelists).","description_kind":"plain"},"max_items":1},"monitoring_config":{"nesting_mode":"list","block":{"attributes":{"enable_components":{"type":["list","string"],"description":"GKE components exposing metrics. Valid values include SYSTEM_COMPONENTS.","description_kind":"plain","required":true}},"description":"Monitoring configuration for the cluster.","description_kind":"plain"},"max_items":1},"network_policy":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Whether network policy is enabled on the cluster.","description_kind":"plain","required":true},"provider":{"type":"string","description":"The selected network policy provider. Defaults to PROVIDER_UNSPECIFIED.","description_kind":"plain","optional":true}},"description":"Configuration options for the NetworkPolicy feature.","description_kind":"plain"},"max_items":1},"node_config":{"nesting_mode":"list","block":{"attributes":{"boot_disk_kms_key":{"type":"string","description":"The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool.","description_kind":"plain","optional":true},"disk_size_gb":{"type":"number","description":"Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.","description_kind":"plain","optional":true,"computed":true},"disk_type":{"type":"string","description":"Type of the disk attached to each node.","description_kind":"plain","optional":true,"computed":true},"guest_accelerator":{"type":["list",["object",{"count":"number","gpu_partition_size":"string","type":"string"}]],"description":"List of the type and count of accelerator cards attached to the instance.","description_kind":"plain","optional":true,"computed":true},"image_type":{"type":"string","description":"The image type to use for this node. Note that for a given image type, the latest version of it will be used.","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node.","description_kind":"plain","optional":true,"computed":true},"local_ssd_count":{"type":"number","description":"The number of local SSD disks to be attached to the node.","description_kind":"plain","optional":true,"computed":true},"machine_type":{"type":"string","description":"The name of a Google Compute Engine machine type.","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":["map","string"],"description":"The metadata key/value pairs assigned to instances in the cluster.","description_kind":"plain","optional":true,"computed":true},"min_cpu_platform":{"type":"string","description":"Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform.","description_kind":"plain","optional":true},"node_group":{"type":"string","description":"Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on sole tenant nodes.","description_kind":"plain","optional":true},"oauth_scopes":{"type":["set","string"],"description":"The set of Google API scopes to be made available on all of the node VMs.","description_kind":"plain","optional":true,"computed":true},"preemptible":{"type":"bool","description":"Whether the nodes are created as preemptible VM instances.","description_kind":"plain","optional":true},"service_account":{"type":"string","description":"The Google Cloud Platform Service Account to be used by the node VMs.","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The list of instance tags applied to all nodes.","description_kind":"plain","optional":true},"taint":{"type":["list",["object",{"effect":"string","key":"string","value":"string"}]],"description":"List of Kubernetes taints to be applied to each node.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"gcfs_config":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Whether or not GCFS is enabled","description_kind":"plain","required":true}},"description":"GCFS configuration for this node.","description_kind":"plain"},"max_items":1},"gvnic":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Whether or not gvnic is enabled","description_kind":"plain","required":true}},"description":"Enable or disable gvnic in the node pool.","description_kind":"plain"},"max_items":1},"shielded_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description":"Defines whether the instance has integrity monitoring enabled.","description_kind":"plain","optional":true},"enable_secure_boot":{"type":"bool","description":"Defines whether the instance has Secure Boot enabled.","description_kind":"plain","optional":true}},"description":"Shielded Instance options.","description_kind":"plain"},"max_items":1},"workload_metadata_config":{"nesting_mode":"list","block":{"attributes":{"mode":{"type":"string","description":"Mode is the configuration for how to expose metadata to workloads running on the node.","description_kind":"plain","required":true}},"description":"The workload metadata configuration for this node.","description_kind":"plain"},"max_items":1}},"description":"The configuration of the nodepool","description_kind":"plain"},"max_items":1},"node_pool":{"nesting_mode":"list","block":{"attributes":{"initial_node_count":{"type":"number","description":"The initial number of nodes for the pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Changing this will force recreation of the resource.","description_kind":"plain","optional":true,"computed":true},"instance_group_urls":{"type":["list","string"],"description":"The resource URLs of the managed instance groups associated with this node pool.","description_kind":"plain","computed":true},"managed_instance_group_urls":{"type":["list","string"],"description":"List of instance group URLs which have been assigned to this node pool.","description_kind":"plain","computed":true},"max_pods_per_node":{"type":"number","description":"The maximum number of pods per node in this node pool. Note that this does not work on node pools which are \"route-based\" - that is, node pools belonging to clusters that do not have IP Aliasing enabled.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the node pool. If left blank, Terraform will auto-generate a unique name.","description_kind":"plain","optional":true,"computed":true},"name_prefix":{"type":"string","description":"Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.","description_kind":"plain","optional":true,"computed":true},"node_count":{"type":"number","description":"The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.","description_kind":"plain","optional":true,"computed":true},"node_locations":{"type":["set","string"],"description":"The list of zones in which the node pool's nodes should be located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If unspecified, the cluster-level node_locations will be used.","description_kind":"plain","optional":true,"computed":true},"version":{"type":"string","description":"The Kubernetes version for the nodes in this pool. Note that if this field and auto_upgrade are both specified, they will fight each other for what the node version should be, so setting both is highly discouraged. While a fuzzy version can be specified, it's recommended that you specify explicit versions as Terraform will see spurious diffs when fuzzy versions are used. See the google_container_engine_versions data source's version_prefix field to approximate fuzzy versions in a Terraform-compatible way.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"autoscaling":{"nesting_mode":"list","block":{"attributes":{"max_node_count":{"type":"number","description":"Maximum number of nodes in the NodePool. Must be \u003e= min_node_count.","description_kind":"plain","required":true},"min_node_count":{"type":"number","description":"Minimum number of nodes in the NodePool. Must be \u003e=0 and \u003c= max_node_count.","description_kind":"plain","required":true}},"description":"Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage.","description_kind":"plain"},"max_items":1},"management":{"nesting_mode":"list","block":{"attributes":{"auto_repair":{"type":"bool","description":"Whether the nodes will be automatically repaired.","description_kind":"plain","optional":true},"auto_upgrade":{"type":"bool","description":"Whether the nodes will be automatically upgraded.","description_kind":"plain","optional":true}},"description":"Node management configuration, wherein auto-repair and auto-upgrade is configured.","description_kind":"plain"},"max_items":1},"node_config":{"nesting_mode":"list","block":{"attributes":{"boot_disk_kms_key":{"type":"string","description":"The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool.","description_kind":"plain","optional":true},"disk_size_gb":{"type":"number","description":"Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.","description_kind":"plain","optional":true,"computed":true},"disk_type":{"type":"string","description":"Type of the disk attached to each node.","description_kind":"plain","optional":true,"computed":true},"guest_accelerator":{"type":["list",["object",{"count":"number","gpu_partition_size":"string","type":"string"}]],"description":"List of the type and count of accelerator cards attached to the instance.","description_kind":"plain","optional":true,"computed":true},"image_type":{"type":"string","description":"The image type to use for this node. Note that for a given image type, the latest version of it will be used.","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node.","description_kind":"plain","optional":true,"computed":true},"local_ssd_count":{"type":"number","description":"The number of local SSD disks to be attached to the node.","description_kind":"plain","optional":true,"computed":true},"machine_type":{"type":"string","description":"The name of a Google Compute Engine machine type.","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":["map","string"],"description":"The metadata key/value pairs assigned to instances in the cluster.","description_kind":"plain","optional":true,"computed":true},"min_cpu_platform":{"type":"string","description":"Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform.","description_kind":"plain","optional":true},"node_group":{"type":"string","description":"Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on sole tenant nodes.","description_kind":"plain","optional":true},"oauth_scopes":{"type":["set","string"],"description":"The set of Google API scopes to be made available on all of the node VMs.","description_kind":"plain","optional":true,"computed":true},"preemptible":{"type":"bool","description":"Whether the nodes are created as preemptible VM instances.","description_kind":"plain","optional":true},"service_account":{"type":"string","description":"The Google Cloud Platform Service Account to be used by the node VMs.","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The list of instance tags applied to all nodes.","description_kind":"plain","optional":true},"taint":{"type":["list",["object",{"effect":"string","key":"string","value":"string"}]],"description":"List of Kubernetes taints to be applied to each node.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"gcfs_config":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Whether or not GCFS is enabled","description_kind":"plain","required":true}},"description":"GCFS configuration for this node.","description_kind":"plain"},"max_items":1},"gvnic":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Whether or not gvnic is enabled","description_kind":"plain","required":true}},"description":"Enable or disable gvnic in the node pool.","description_kind":"plain"},"max_items":1},"shielded_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description":"Defines whether the instance has integrity monitoring enabled.","description_kind":"plain","optional":true},"enable_secure_boot":{"type":"bool","description":"Defines whether the instance has Secure Boot enabled.","description_kind":"plain","optional":true}},"description":"Shielded Instance options.","description_kind":"plain"},"max_items":1},"workload_metadata_config":{"nesting_mode":"list","block":{"attributes":{"mode":{"type":"string","description":"Mode is the configuration for how to expose metadata to workloads running on the node.","description_kind":"plain","required":true}},"description":"The workload metadata configuration for this node.","description_kind":"plain"},"max_items":1}},"description":"The configuration of the nodepool","description_kind":"plain"},"max_items":1},"upgrade_settings":{"nesting_mode":"list","block":{"attributes":{"max_surge":{"type":"number","description":"The number of additional nodes that can be added to the node pool during an upgrade. Increasing max_surge raises the number of nodes that can be upgraded simultaneously. Can be set to 0 or greater.","description_kind":"plain","required":true},"max_unavailable":{"type":"number","description":"The number of nodes that can be simultaneously unavailable during an upgrade. Increasing max_unavailable raises the number of nodes that can be upgraded in parallel. Can be set to 0 or greater.","description_kind":"plain","required":true}},"description":"Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of max_surge and max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20.","description_kind":"plain"},"max_items":1}},"description":"List of node pools associated with this cluster. See google_container_node_pool for schema. Warning: node pools defined inside a cluster can't be changed (or added/removed) after cluster creation without deleting and recreating the entire cluster. Unless you absolutely need the ability to say \"these are the only node pools associated with this cluster\", use the google_container_node_pool resource instead of this property.","description_kind":"plain"}},"private_cluster_config":{"nesting_mode":"list","block":{"attributes":{"enable_private_endpoint":{"type":"bool","description":"Enables the private cluster feature, creating a private endpoint on the cluster. In a private cluster, nodes only have RFC 1918 private addresses and communicate with the master's private endpoint via private networking.","description_kind":"plain","required":true},"enable_private_nodes":{"type":"bool","description":"When true, the cluster's private endpoint is used as the cluster endpoint and access through the public endpoint is disabled. When false, either endpoint can be used. This field only applies to private clusters, when enable_private_nodes is true.","description_kind":"plain","optional":true},"master_ipv4_cidr_block":{"type":"string","description":"The IP range in CIDR notation to use for the hosted master network. This range will be used for assigning private IP addresses to the cluster master(s) and the ILB VIP. This range must not overlap with any other ranges in use within the cluster's network, and it must be a /28 subnet. See Private Cluster Limitations for more details. This field only applies to private clusters, when enable_private_nodes is true.","description_kind":"plain","optional":true},"peering_name":{"type":"string","description":"The name of the peering between this cluster and the Google owned VPC.","description_kind":"plain","computed":true},"private_endpoint":{"type":"string","description":"The internal IP address of this cluster's master endpoint.","description_kind":"plain","computed":true},"public_endpoint":{"type":"string","description":"The external IP address of this cluster's master endpoint.","description_kind":"plain","computed":true}},"block_types":{"master_global_access_config":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Whether the cluster master is accessible globally or not.","description_kind":"plain","required":true}},"description":"Controls cluster master global access settings.","description_kind":"plain"},"max_items":1}},"description":"Configuration for private clusters, clusters with private nodes.","description_kind":"plain"},"max_items":1},"release_channel":{"nesting_mode":"list","block":{"attributes":{"channel":{"type":"string","description":"The selected release channel. Accepted values are:\n* UNSPECIFIED: Not set.\n* RAPID: Weekly upgrade cadence; Early testers and developers who requires new features.\n* REGULAR: Multiple per month upgrade cadence; Production users who need features not yet offered in the Stable channel.\n* STABLE: Every few months upgrade cadence; Production users who need stability above all else, and for whom frequent upgrades are too risky.","description_kind":"plain","required":true}},"description":"Configuration options for the Release channel feature, which provide more control over automatic upgrades of your GKE clusters. Note that removing this field from your config will not unenroll it. Instead, use the \"UNSPECIFIED\" channel.","description_kind":"plain"},"max_items":1},"resource_usage_export_config":{"nesting_mode":"list","block":{"attributes":{"enable_network_egress_metering":{"type":"bool","description":"Whether to enable network egress metering for this cluster. If enabled, a daemonset will be created in the cluster to meter network egress traffic.","description_kind":"plain","optional":true},"enable_resource_consumption_metering":{"type":"bool","description":"Whether to enable resource consumption metering on this cluster. When enabled, a table will be created in the resource export BigQuery dataset to store resource consumption data. The resulting table can be joined with the resource usage table or with BigQuery billing export. Defaults to true.","description_kind":"plain","optional":true}},"block_types":{"bigquery_destination":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The ID of a BigQuery Dataset.","description_kind":"plain","required":true}},"description":"Parameters for using BigQuery as the destination of resource usage export.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Configuration for the ResourceUsageExportConfig feature.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"vertical_pod_autoscaling":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Enables vertical pod autoscaling.","description_kind":"plain","required":true}},"description":"Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it.","description_kind":"plain"},"max_items":1},"workload_identity_config":{"nesting_mode":"list","block":{"attributes":{"workload_pool":{"type":"string","description":"The workload pool to attach all Kubernetes service accounts to.","description_kind":"plain","optional":true}},"description":"Configuration for the use of Kubernetes Service Accounts in GCP IAM policies.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_container_node_pool":{"version":1,"block":{"attributes":{"cluster":{"type":"string","description":"The cluster to create the node pool for. Cluster must be present in location provided for zonal clusters.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"initial_node_count":{"type":"number","description":"The initial number of nodes for the pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Changing this will force recreation of the resource.","description_kind":"plain","optional":true,"computed":true},"instance_group_urls":{"type":["list","string"],"description":"The resource URLs of the managed instance groups associated with this node pool.","description_kind":"plain","computed":true},"location":{"type":"string","description":"The location (region or zone) of the cluster.","description_kind":"plain","optional":true,"computed":true},"managed_instance_group_urls":{"type":["list","string"],"description":"List of instance group URLs which have been assigned to this node pool.","description_kind":"plain","computed":true},"max_pods_per_node":{"type":"number","description":"The maximum number of pods per node in this node pool. Note that this does not work on node pools which are \"route-based\" - that is, node pools belonging to clusters that do not have IP Aliasing enabled.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the node pool. If left blank, Terraform will auto-generate a unique name.","description_kind":"plain","optional":true,"computed":true},"name_prefix":{"type":"string","description":"Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.","description_kind":"plain","optional":true,"computed":true},"node_count":{"type":"number","description":"The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.","description_kind":"plain","optional":true,"computed":true},"node_locations":{"type":["set","string"],"description":"The list of zones in which the node pool's nodes should be located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If unspecified, the cluster-level node_locations will be used.","description_kind":"plain","optional":true,"computed":true},"operation":{"type":"string","description_kind":"plain","computed":true},"project":{"type":"string","description":"The ID of the project in which to create the node pool. If blank, the provider-configured project will be used.","description_kind":"plain","optional":true,"computed":true},"version":{"type":"string","description":"The Kubernetes version for the nodes in this pool. Note that if this field and auto_upgrade are both specified, they will fight each other for what the node version should be, so setting both is highly discouraged. While a fuzzy version can be specified, it's recommended that you specify explicit versions as Terraform will see spurious diffs when fuzzy versions are used. See the google_container_engine_versions data source's version_prefix field to approximate fuzzy versions in a Terraform-compatible way.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"autoscaling":{"nesting_mode":"list","block":{"attributes":{"max_node_count":{"type":"number","description":"Maximum number of nodes in the NodePool. Must be \u003e= min_node_count.","description_kind":"plain","required":true},"min_node_count":{"type":"number","description":"Minimum number of nodes in the NodePool. Must be \u003e=0 and \u003c= max_node_count.","description_kind":"plain","required":true}},"description":"Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage.","description_kind":"plain"},"max_items":1},"management":{"nesting_mode":"list","block":{"attributes":{"auto_repair":{"type":"bool","description":"Whether the nodes will be automatically repaired.","description_kind":"plain","optional":true},"auto_upgrade":{"type":"bool","description":"Whether the nodes will be automatically upgraded.","description_kind":"plain","optional":true}},"description":"Node management configuration, wherein auto-repair and auto-upgrade is configured.","description_kind":"plain"},"max_items":1},"node_config":{"nesting_mode":"list","block":{"attributes":{"boot_disk_kms_key":{"type":"string","description":"The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool.","description_kind":"plain","optional":true},"disk_size_gb":{"type":"number","description":"Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.","description_kind":"plain","optional":true,"computed":true},"disk_type":{"type":"string","description":"Type of the disk attached to each node.","description_kind":"plain","optional":true,"computed":true},"guest_accelerator":{"type":["list",["object",{"count":"number","gpu_partition_size":"string","type":"string"}]],"description":"List of the type and count of accelerator cards attached to the instance.","description_kind":"plain","optional":true,"computed":true},"image_type":{"type":"string","description":"The image type to use for this node. Note that for a given image type, the latest version of it will be used.","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node.","description_kind":"plain","optional":true,"computed":true},"local_ssd_count":{"type":"number","description":"The number of local SSD disks to be attached to the node.","description_kind":"plain","optional":true,"computed":true},"machine_type":{"type":"string","description":"The name of a Google Compute Engine machine type.","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":["map","string"],"description":"The metadata key/value pairs assigned to instances in the cluster.","description_kind":"plain","optional":true,"computed":true},"min_cpu_platform":{"type":"string","description":"Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform.","description_kind":"plain","optional":true},"node_group":{"type":"string","description":"Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on sole tenant nodes.","description_kind":"plain","optional":true},"oauth_scopes":{"type":["set","string"],"description":"The set of Google API scopes to be made available on all of the node VMs.","description_kind":"plain","optional":true,"computed":true},"preemptible":{"type":"bool","description":"Whether the nodes are created as preemptible VM instances.","description_kind":"plain","optional":true},"service_account":{"type":"string","description":"The Google Cloud Platform Service Account to be used by the node VMs.","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The list of instance tags applied to all nodes.","description_kind":"plain","optional":true},"taint":{"type":["list",["object",{"effect":"string","key":"string","value":"string"}]],"description":"List of Kubernetes taints to be applied to each node.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"gcfs_config":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Whether or not GCFS is enabled","description_kind":"plain","required":true}},"description":"GCFS configuration for this node.","description_kind":"plain"},"max_items":1},"gvnic":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Whether or not gvnic is enabled","description_kind":"plain","required":true}},"description":"Enable or disable gvnic in the node pool.","description_kind":"plain"},"max_items":1},"shielded_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description":"Defines whether the instance has integrity monitoring enabled.","description_kind":"plain","optional":true},"enable_secure_boot":{"type":"bool","description":"Defines whether the instance has Secure Boot enabled.","description_kind":"plain","optional":true}},"description":"Shielded Instance options.","description_kind":"plain"},"max_items":1},"workload_metadata_config":{"nesting_mode":"list","block":{"attributes":{"mode":{"type":"string","description":"Mode is the configuration for how to expose metadata to workloads running on the node.","description_kind":"plain","required":true}},"description":"The workload metadata configuration for this node.","description_kind":"plain"},"max_items":1}},"description":"The configuration of the nodepool","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"upgrade_settings":{"nesting_mode":"list","block":{"attributes":{"max_surge":{"type":"number","description":"The number of additional nodes that can be added to the node pool during an upgrade. Increasing max_surge raises the number of nodes that can be upgraded simultaneously. Can be set to 0 or greater.","description_kind":"plain","required":true},"max_unavailable":{"type":"number","description":"The number of nodes that can be simultaneously unavailable during an upgrade. Increasing max_unavailable raises the number of nodes that can be upgraded in parallel. Can be set to 0 or greater.","description_kind":"plain","required":true}},"description":"Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of max_surge and max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_container_registry":{"version":0,"block":{"attributes":{"bucket_self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location of the registry. One of ASIA, EU, US or not specified. See the official documentation for more information on registry locations.","description_kind":"plain","optional":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_data_catalog_entry":{"version":0,"block":{"attributes":{"bigquery_date_sharded_spec":{"type":["list",["object",{"dataset":"string","shard_count":"number","table_prefix":"string"}]],"description":"Specification for a group of BigQuery tables with name pattern [prefix]YYYYMMDD.\nContext: https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.","description_kind":"plain","computed":true},"bigquery_table_spec":{"type":["list",["object",{"table_source_type":"string","table_spec":["list",["object",{"grouped_entry":"string"}]],"view_spec":["list",["object",{"view_query":"string"}]]}]],"description":"Specification that applies to a BigQuery table. This is only valid on entries of type TABLE.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Entry description, which can consist of several sentences or paragraphs that describe entry contents.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"Display information such as title and description. A short name to identify the entry,\nfor example, \"Analytics Data - Jan 2011\".","description_kind":"plain","optional":true},"entry_group":{"type":"string","description":"The name of the entry group this entry is in.","description_kind":"plain","required":true},"entry_id":{"type":"string","description":"The id of the entry to create.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"integrated_system":{"type":"string","description":"This field indicates the entry's source system that Data Catalog integrates with, such as BigQuery or Pub/Sub.","description_kind":"plain","computed":true},"linked_resource":{"type":"string","description":"The resource this metadata entry refers to.\nFor Google Cloud Platform resources, linkedResource is the full name of the resource.\nFor example, the linkedResource for a table resource from BigQuery is:\n//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId\nOutput only when Entry is of type in the EntryType enum. For entries with userSpecifiedType,\nthis field is optional and defaults to an empty string.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The Data Catalog resource name of the entry in URL format.\nExample: projects/{project_id}/locations/{location}/entryGroups/{entryGroupId}/entries/{entryId}.\nNote that this Entry and its child resources may not actually be stored in the location in this name.","description_kind":"plain","computed":true},"schema":{"type":"string","description":"Schema of the entry (e.g. BigQuery, GoogleSQL, Avro schema), as a json string. An entry might not have any schema\nattached to it. See\nhttps://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.entryGroups.entries#schema\nfor what fields this schema can contain.","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of the entry. Only used for Entries with types in the EntryType enum.\nCurrently, only FILESET enum value is allowed. All other entries created through Data Catalog must use userSpecifiedType. Possible values: [\"FILESET\"]","description_kind":"plain","optional":true},"user_specified_system":{"type":"string","description":"This field indicates the entry's source system that Data Catalog does not integrate with.\nuserSpecifiedSystem strings must begin with a letter or underscore and can only contain letters, numbers,\nand underscores; are case insensitive; must be at least 1 character and at most 64 characters long.","description_kind":"plain","optional":true},"user_specified_type":{"type":"string","description":"Entry type if it does not fit any of the input-allowed values listed in EntryType enum above.\nWhen creating an entry, users should check the enum values first, if nothing matches the entry\nto be created, then provide a custom value, for example \"my_special_type\".\nuserSpecifiedType strings must begin with a letter or underscore and can only contain letters,\nnumbers, and underscores; are case insensitive; must be at least 1 character and at most 64 characters long.","description_kind":"plain","optional":true}},"block_types":{"gcs_fileset_spec":{"nesting_mode":"list","block":{"attributes":{"file_patterns":{"type":["list","string"],"description":"Patterns to identify a set of files in Google Cloud Storage.\nSee [Cloud Storage documentation](https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames)\nfor more information. Note that bucket wildcards are currently not supported. Examples of valid filePatterns:\n\n* gs://bucket_name/dir/*: matches all files within bucket_name/dir directory.\n* gs://bucket_name/dir/**: matches all files in bucket_name/dir spanning all subdirectories.\n* gs://bucket_name/file*: matches files prefixed by file in bucket_name\n* gs://bucket_name/??.txt: matches files with two characters followed by .txt in bucket_name\n* gs://bucket_name/[aeiou].txt: matches files that contain a single vowel character followed by .txt in bucket_name\n* gs://bucket_name/[a-m].txt: matches files that contain a, b, ... or m followed by .txt in bucket_name\n* gs://bucket_name/a/*/b: matches all files in bucket_name that match a/*/b pattern, such as a/c/b, a/d/b\n* gs://another_bucket/a.txt: matches gs://another_bucket/a.txt","description_kind":"plain","required":true},"sample_gcs_file_specs":{"type":["list",["object",{"file_path":"string","size_bytes":"number"}]],"description":"Sample files contained in this fileset, not all files contained in this fileset are represented here.","description_kind":"plain","computed":true}},"description":"Specification that applies to a Cloud Storage fileset. This is only valid on entries of type FILESET.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_data_catalog_entry_group":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Entry group description, which can consist of several sentences or paragraphs that describe entry group contents.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"A short name to identify the entry group, for example, \"analytics data - jan 2011\".","description_kind":"plain","optional":true},"entry_group_id":{"type":"string","description":"The id of the entry group to create. The id must begin with a letter or underscore,\ncontain only English letters, numbers and underscores, and be at most 64 characters.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of the entry group in URL format. Example: projects/{project}/locations/{location}/entryGroups/{entryGroupId}","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"EntryGroup location region.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_data_catalog_entry_group_iam_binding":{"version":0,"block":{"attributes":{"entry_group":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_data_catalog_entry_group_iam_member":{"version":0,"block":{"attributes":{"entry_group":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_data_catalog_entry_group_iam_policy":{"version":0,"block":{"attributes":{"entry_group":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_data_catalog_tag":{"version":0,"block":{"attributes":{"column":{"type":"string","description":"Resources like Entry can have schemas associated with them. This scope allows users to attach tags to an\nindividual column based on that schema.\n\nFor attaching a tag to a nested column, use '.' to separate the column names. Example:\n'outer_column.inner_column'","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of the tag in URL format. Example:\nprojects/{project_id}/locations/{location}/entrygroups/{entryGroupId}/entries/{entryId}/tags/{tag_id} or\nprojects/{project_id}/locations/{location}/entrygroups/{entryGroupId}/tags/{tag_id}\nwhere tag_id is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The name of the parent this tag is attached to. This can be the name of an entry or an entry group. If an entry group, the tag will be attached to\nall entries in that group.","description_kind":"plain","optional":true},"template":{"type":"string","description":"The resource name of the tag template that this tag uses. Example:\nprojects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}\nThis field cannot be modified after creation.","description_kind":"plain","required":true},"template_displayname":{"type":"string","description":"The display name of the tag template.","description_kind":"plain","computed":true}},"block_types":{"fields":{"nesting_mode":"set","block":{"attributes":{"bool_value":{"type":"bool","description":"Holds the value for a tag field with boolean type.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The display name of this field","description_kind":"plain","computed":true},"double_value":{"type":"number","description":"Holds the value for a tag field with double type.","description_kind":"plain","optional":true},"enum_value":{"type":"string","description":"The display name of the enum value.","description_kind":"plain","optional":true},"field_name":{"type":"string","description_kind":"plain","required":true},"order":{"type":"number","description":"The order of this field with respect to other fields in this tag. For example, a higher value can indicate\na more important field. The value can be negative. Multiple fields can have the same order, and field orders\nwithin a tag do not have to be sequential.","description_kind":"plain","computed":true},"string_value":{"type":"string","description":"Holds the value for a tag field with string type.","description_kind":"plain","optional":true},"timestamp_value":{"type":"string","description":"Holds the value for a tag field with timestamp type.","description_kind":"plain","optional":true}},"description":"This maps the ID of a tag field to the value of and additional information about that field.\nValid field IDs are defined by the tag's template. A tag must have at least 1 field and at most 500 fields.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_data_catalog_tag_template":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"The display name for this template.","description_kind":"plain","optional":true},"force_delete":{"type":"bool","description":"This confirms the deletion of any possible tags using this template. Must be set to true in order to delete the tag template.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of the tag template in URL format. Example: projects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Template location region.","description_kind":"plain","optional":true,"computed":true},"tag_template_id":{"type":"string","description":"The id of the tag template to create.","description_kind":"plain","required":true}},"block_types":{"fields":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"A description for this field.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The display name for this field.","description_kind":"plain","optional":true},"field_id":{"type":"string","description_kind":"plain","required":true},"is_required":{"type":"bool","description":"Whether this is a required field. Defaults to false.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource name of the tag template field in URL format. Example: projects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}/fields/{field}","description_kind":"plain","computed":true},"order":{"type":"number","description":"The order of this field with respect to other fields in this tag template.\nA higher value indicates a more important field. The value can be negative.\nMultiple fields can have the same order, and field orders within a tag do not have to be sequential.","description_kind":"plain","optional":true}},"block_types":{"type":{"nesting_mode":"list","block":{"attributes":{"primitive_type":{"type":"string","description":"Represents primitive types - string, bool etc.\n Exactly one of 'primitive_type' or 'enum_type' must be set Possible values: [\"DOUBLE\", \"STRING\", \"BOOL\", \"TIMESTAMP\"]","description_kind":"plain","optional":true}},"block_types":{"enum_type":{"nesting_mode":"list","block":{"block_types":{"allowed_values":{"nesting_mode":"set","block":{"attributes":{"display_name":{"type":"string","description":"The display name of the enum value.","description_kind":"plain","required":true}},"description":"The set of allowed values for this enum. The display names of the\nvalues must be case-insensitively unique within this set. Currently,\nenum values can only be added to the list of allowed values. Deletion\nand renaming of enum values are not supported.\nCan have up to 500 allowed values.","description_kind":"plain"},"min_items":1}},"description":"Represents an enum type.\n Exactly one of 'primitive_type' or 'enum_type' must be set","description_kind":"plain"},"max_items":1}},"description":"The type of value this tag field can contain.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Set of tag template field IDs and the settings for the field. This set is an exhaustive list of the allowed fields. This set must contain at least one field and at most 500 fields.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_data_catalog_tag_template_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"tag_template":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_data_catalog_tag_template_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"tag_template":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_data_catalog_tag_template_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tag_template":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_data_fusion_instance":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"The time the instance was created in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds.","description_kind":"plain","computed":true},"dataproc_service_account":{"type":"string","description":"User-managed service account to set on Dataproc when Cloud Data Fusion creates Dataproc to run data processing pipelines.","description_kind":"plain","optional":true},"description":{"type":"string","description":"An optional description of the instance.","description_kind":"plain","optional":true},"enable_stackdriver_logging":{"type":"bool","description":"Option to enable Stackdriver Logging.","description_kind":"plain","optional":true},"enable_stackdriver_monitoring":{"type":"bool","description":"Option to enable Stackdriver Monitoring.","description_kind":"plain","optional":true},"gcs_bucket":{"type":"string","description":"Cloud Storage bucket generated by Data Fusion in the customer project.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The resource labels for instance to use to annotate any related underlying resources,\nsuch as Compute Engine VMs.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The ID of the instance or a fully qualified identifier for the instance.","description_kind":"plain","required":true},"options":{"type":["map","string"],"description":"Map of additional options used to configure the behavior of Data Fusion instance.","description_kind":"plain","optional":true},"private_instance":{"type":"bool","description":"Specifies whether the Data Fusion instance should be private. If set to\ntrue, all Data Fusion nodes will have private IP addresses and will not be\nable to access the public internet.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region of the Data Fusion instance.","description_kind":"plain","optional":true,"computed":true},"service_endpoint":{"type":"string","description":"Endpoint on which the Data Fusion UI and REST APIs are accessible.","description_kind":"plain","computed":true},"state":{"type":"string","description":"The current state of this Data Fusion instance.\n- CREATING: Instance is being created\n- RUNNING: Instance is running and ready for requests\n- FAILED: Instance creation failed\n- DELETING: Instance is being deleted\n- UPGRADING: Instance is being upgraded\n- RESTARTING: Instance is being restarted","description_kind":"plain","computed":true},"state_message":{"type":"string","description":"Additional information about the current state of this Data Fusion instance if available.","description_kind":"plain","computed":true},"tenant_project_id":{"type":"string","description":"The name of the tenant project.","description_kind":"plain","computed":true},"type":{"type":"string","description":"Represents the type of Data Fusion instance. Each type is configured with\nthe default settings for processing and memory.\n- BASIC: Basic Data Fusion instance. In Basic type, the user will be able to create data pipelines\nusing point and click UI. However, there are certain limitations, such as fewer number\nof concurrent pipelines, no support for streaming pipelines, etc.\n- ENTERPRISE: Enterprise Data Fusion instance. In Enterprise type, the user will have more features\navailable, such as support for streaming pipelines, higher number of concurrent pipelines, etc.\n- DEVELOPER: Developer Data Fusion instance. In Developer type, the user will have all features available but\nwith restrictive capabilities. This is to help enterprises design and develop their data ingestion and integration \npipelines at low cost. Possible values: [\"BASIC\", \"ENTERPRISE\", \"DEVELOPER\"]","description_kind":"plain","required":true},"update_time":{"type":"string","description":"The time the instance was last updated in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds.","description_kind":"plain","computed":true},"version":{"type":"string","description":"Current version of the Data Fusion.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"network_config":{"nesting_mode":"list","block":{"attributes":{"ip_allocation":{"type":"string","description":"The IP range in CIDR notation to use for the managed Data Fusion instance\nnodes. This range must not overlap with any other ranges used in the Data Fusion instance network.","description_kind":"plain","required":true},"network":{"type":"string","description":"Name of the network in the project with which the tenant project\nwill be peered for executing pipelines. In case of shared VPC where the network resides in another host\nproject the network should specified in the form of projects/{host-project-id}/global/networks/{network}","description_kind":"plain","required":true}},"description":"Network configuration options. These are required when a private Data Fusion instance is to be created.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_data_loss_prevention_deidentify_template":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A description of the template.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"User set display name of the template.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of the template. Set by the server.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The parent of the template in any of the following formats:\n\n* 'projects/{{project}}'\n* 'projects/{{project}}/locations/{{location}}'\n* 'organizations/{{organization_id}}'\n* 'organizations/{{organization_id}}/locations/{{location}}'","description_kind":"plain","required":true}},"block_types":{"deidentify_config":{"nesting_mode":"list","block":{"block_types":{"info_type_transformations":{"nesting_mode":"list","block":{"block_types":{"transformations":{"nesting_mode":"list","block":{"block_types":{"info_types":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the information type.","description_kind":"plain","required":true}},"description":"InfoTypes to apply the transformation to. Leaving this empty will apply the transformation to apply to\nall findings that correspond to infoTypes that were requested in InspectConfig.","description_kind":"plain"}},"primitive_transformation":{"nesting_mode":"list","block":{"attributes":{"replace_with_info_type_config":{"type":"bool","description":"Replace each matching finding with the name of the info type.","description_kind":"plain","optional":true}},"block_types":{"character_mask_config":{"nesting_mode":"list","block":{"attributes":{"masking_character":{"type":"string","description":"Character to use to mask the sensitive values—for example, * for an alphabetic string such as a name, or 0 for a numeric string\nsuch as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to * for\nstrings, and 0 for digits.","description_kind":"plain","optional":true},"number_to_mask":{"type":"number","description":"Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.","description_kind":"plain","optional":true},"reverse_order":{"type":"bool","description":"Mask characters in reverse order. For example, if masking_character is 0, number_to_mask is 14, and reverse_order is 'false', then the\ninput string '1234-5678-9012-3456' is masked as '00000000000000-3456'.","description_kind":"plain","optional":true}},"block_types":{"characters_to_ignore":{"nesting_mode":"list","block":{"attributes":{"characters_to_skip":{"type":"string","description":"Characters to not transform when masking.","description_kind":"plain","optional":true},"common_characters_to_ignore":{"type":"string","description":"Common characters to not transform when masking. Useful to avoid removing punctuation. Possible values: [\"NUMERIC\", \"ALPHA_UPPER_CASE\", \"ALPHA_LOWER_CASE\", \"PUNCTUATION\", \"WHITESPACE\"]","description_kind":"plain","optional":true}},"description":"Characters to skip when doing de-identification of a value. These will be left alone and skipped.","description_kind":"plain"}}},"description":"Partially mask a string by replacing a given number of characters with a fixed character.\nMasking can start from the beginning or end of the string.","description_kind":"plain"},"max_items":1},"crypto_deterministic_config":{"nesting_mode":"list","block":{"block_types":{"context":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name describing the field.","description_kind":"plain","optional":true}},"description":"A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well.\n\nIf the context is not set, plaintext would be used as is for encryption. If the context is set but:\n\n1. there is no record present when transforming a given value or\n2. the field is not present when transforming a given value,\n\nplaintext would be used as is for encryption.\n\nNote that case (1) is expected when an 'InfoTypeTransformation' is applied to both structured and non-structured 'ContentItem's.","description_kind":"plain"},"max_items":1},"crypto_key":{"nesting_mode":"list","block":{"block_types":{"kms_wrapped":{"nesting_mode":"list","block":{"attributes":{"crypto_key_name":{"type":"string","description":"The resource name of the KMS CryptoKey to use for unwrapping.","description_kind":"plain","required":true},"wrapped_key":{"type":"string","description":"The wrapped data crypto key.\n\nA base64-encoded string.","description_kind":"plain","required":true}},"description":"Kms wrapped key","description_kind":"plain"},"max_items":1},"transient":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate 'TransientCryptoKey' protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).","description_kind":"plain","required":true}},"description":"Transient crypto key","description_kind":"plain"},"max_items":1},"unwrapped":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description":"A 128/192/256 bit key.\n\nA base64-encoded string.","description_kind":"plain","required":true}},"description":"Unwrapped crypto key","description_kind":"plain"},"max_items":1}},"description":"The key used by the encryption function.","description_kind":"plain"},"max_items":1},"surrogate_info_type":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at [https://cloud.google.com/dlp/docs/infotypes-reference](https://cloud.google.com/dlp/docs/infotypes-reference) when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern '[A-Za-z0-9$-_]{1,64}'.","description_kind":"plain","optional":true}},"description":"The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate}\n\nFor example, if the name of custom info type is 'MY\\_TOKEN\\_INFO\\_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY\\_TOKEN\\_INFO\\_TYPE(3):abc'\n\nThis annotation identifies the surrogate when inspecting content using the custom info type 'Surrogate'. This facilitates reversal of the surrogate when it occurs in free text.\n\nNote: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text.\n\nIn order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either\n\n* reverse a surrogate that does not correspond to an actual identifier\n* be unable to parse the surrogate and result in an error\n\nTherefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY\\_TOKEN\\_TYPE.","description_kind":"plain"},"max_items":1}},"description":"Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC [https://tools.ietf.org/html/rfc5297](https://tools.ietf.org/html/rfc5297).","description_kind":"plain"},"max_items":1},"crypto_replace_ffx_fpe_config":{"nesting_mode":"list","block":{"attributes":{"common_alphabet":{"type":"string","description":"Common alphabets. Possible values: [\"FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED\", \"NUMERIC\", \"HEXADECIMAL\", \"UPPER_CASE_ALPHA_NUMERIC\", \"ALPHA_NUMERIC\"]","description_kind":"plain","optional":true},"custom_alphabet":{"type":"string","description":"This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range \\[2, 95\\]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is:\n\n''0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~'!@#$%^\u0026*()_-+={[}]|:;\"'\u003c,\u003e.?/''","description_kind":"plain","optional":true},"radix":{"type":"number","description":"The native way to select the alphabet. Must be in the range \\[2, 95\\].","description_kind":"plain","optional":true}},"block_types":{"context":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name describing the field.","description_kind":"plain","optional":true}},"description":"The 'tweak', a context may be used for higher security since the same identifier in two different contexts won't be given the same surrogate. If the context is not set, a default tweak will be used.\n\nIf the context is set but:\n\n1. there is no record present when transforming a given value or\n2. the field is not present when transforming a given value,\n\na default tweak will be used.\n\nNote that case (1) is expected when an 'InfoTypeTransformation' is applied to both structured and non-structured 'ContentItem's. Currently, the referenced field may be of value type integer or string.\n\nThe tweak is constructed as a sequence of bytes in big endian byte order such that:\n\n* a 64 bit integer is encoded followed by a single byte of value 1\n* a string is encoded in UTF-8 format followed by a single byte of value 2","description_kind":"plain"},"max_items":1},"crypto_key":{"nesting_mode":"list","block":{"block_types":{"kms_wrapped":{"nesting_mode":"list","block":{"attributes":{"crypto_key_name":{"type":"string","description":"The resource name of the KMS CryptoKey to use for unwrapping.","description_kind":"plain","required":true},"wrapped_key":{"type":"string","description":"The wrapped data crypto key.\n\nA base64-encoded string.","description_kind":"plain","required":true}},"description":"Kms wrapped key","description_kind":"plain"},"max_items":1},"transient":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate 'TransientCryptoKey' protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).","description_kind":"plain","required":true}},"description":"Transient crypto key","description_kind":"plain"},"max_items":1},"unwrapped":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description":"A 128/192/256 bit key.\n\nA base64-encoded string.","description_kind":"plain","required":true}},"description":"Unwrapped crypto key","description_kind":"plain"},"max_items":1}},"description":"The key used by the encryption algorithm.","description_kind":"plain"},"max_items":1},"surrogate_info_type":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at [https://cloud.google.com/dlp/docs/infotypes-reference](https://cloud.google.com/dlp/docs/infotypes-reference) when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern '[A-Za-z0-9$-_]{1,64}'.","description_kind":"plain","optional":true}},"description":"The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info\\_type\\_name(surrogate\\_character\\_count):surrogate\n\nFor example, if the name of custom infoType is 'MY\\_TOKEN\\_INFO\\_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY\\_TOKEN\\_INFO\\_TYPE(3):abc'\n\nThis annotation identifies the surrogate when inspecting content using the custom infoType ['SurrogateType'](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text.\n\nIn order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY\\_TOKEN\\_TYPE","description_kind":"plain"},"max_items":1}},"description":"Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the 'content.reidentify' API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See [https://cloud.google.com/dlp/docs/pseudonymization](https://cloud.google.com/dlp/docs/pseudonymization) to learn more.\n\nNote: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity.","description_kind":"plain"},"max_items":1},"replace_config":{"nesting_mode":"list","block":{"block_types":{"new_value":{"nesting_mode":"list","block":{"attributes":{"boolean_value":{"type":"bool","description":"A boolean value.","description_kind":"plain","optional":true},"day_of_week_value":{"type":"string","description":"Represents a day of the week. Possible values: [\"MONDAY\", \"TUESDAY\", \"WEDNESDAY\", \"THURSDAY\", \"FRIDAY\", \"SATURDAY\", \"SUNDAY\"]","description_kind":"plain","optional":true},"float_value":{"type":"number","description":"A float value.","description_kind":"plain","optional":true},"integer_value":{"type":"number","description":"An integer value.","description_kind":"plain","optional":true},"string_value":{"type":"string","description":"A string value.","description_kind":"plain","optional":true},"timestamp_value":{"type":"string","description":"A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits.\nExamples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","optional":true}},"block_types":{"date_value":{"nesting_mode":"list","block":{"attributes":{"day":{"type":"number","description":"Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a\nyear by itself or a year and month where the day is not significant.","description_kind":"plain","optional":true},"month":{"type":"number","description":"Month of year. Must be from 1 to 12, or 0 if specifying a year without a month and day.","description_kind":"plain","optional":true},"year":{"type":"number","description":"Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.","description_kind":"plain","optional":true}},"description":"Represents a whole or partial calendar date.","description_kind":"plain"},"max_items":1},"time_value":{"nesting_mode":"list","block":{"attributes":{"hours":{"type":"number","description":"Hours of day in 24 hour format. Should be from 0 to 23.","description_kind":"plain","optional":true},"minutes":{"type":"number","description":"Minutes of hour of day. Must be from 0 to 59.","description_kind":"plain","optional":true},"nanos":{"type":"number","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.","description_kind":"plain","optional":true},"seconds":{"type":"number","description":"Seconds of minutes of the time. Must normally be from 0 to 59.","description_kind":"plain","optional":true}},"description":"Represents a time of day.","description_kind":"plain"},"max_items":1}},"description":"Replace each input value with a given value.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Replace each input value with a given value.","description_kind":"plain"},"max_items":1}},"description":"Primitive transformation to apply to the infoType.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Transformation for each infoType. Cannot specify more than one for a given infoType.","description_kind":"plain"},"min_items":1}},"description":"Specifies free-text based transformations to be applied to the dataset.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Configuration of the deidentify template","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_data_loss_prevention_inspect_template":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A description of the inspect template.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"User set display name of the inspect template.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of the inspect template. Set by the server.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The parent of the inspect template in any of the following formats:\n\n* 'projects/{{project}}'\n* 'projects/{{project}}/locations/{{location}}'\n* 'organizations/{{organization_id}}'\n* 'organizations/{{organization_id}}/locations/{{location}}'","description_kind":"plain","required":true}},"block_types":{"inspect_config":{"nesting_mode":"list","block":{"attributes":{"content_options":{"type":["list","string"],"description":"List of options defining data content to scan. If empty, text, images, and other content will be included. Possible values: [\"CONTENT_TEXT\", \"CONTENT_IMAGE\"]","description_kind":"plain","optional":true},"exclude_info_types":{"type":"bool","description":"When true, excludes type information of the findings.","description_kind":"plain","optional":true},"include_quote":{"type":"bool","description":"When true, a contextual quote from the data that triggered a finding is included in the response.","description_kind":"plain","optional":true},"min_likelihood":{"type":"string","description":"Only returns findings equal or above this threshold. See https://cloud.google.com/dlp/docs/likelihood for more info Default value: \"POSSIBLE\" Possible values: [\"VERY_UNLIKELY\", \"UNLIKELY\", \"POSSIBLE\", \"LIKELY\", \"VERY_LIKELY\"]","description_kind":"plain","optional":true}},"block_types":{"custom_info_types":{"nesting_mode":"list","block":{"attributes":{"exclusion_type":{"type":"string","description":"If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding to be returned. It still can be used for rules matching. Possible values: [\"EXCLUSION_TYPE_EXCLUDE\"]","description_kind":"plain","optional":true},"likelihood":{"type":"string","description":"Likelihood to return for this CustomInfoType. This base value can be altered by a detection rule if the finding meets the criteria\nspecified by the rule. Default value: \"VERY_LIKELY\" Possible values: [\"VERY_UNLIKELY\", \"UNLIKELY\", \"POSSIBLE\", \"LIKELY\", \"VERY_LIKELY\"]","description_kind":"plain","optional":true}},"block_types":{"dictionary":{"nesting_mode":"list","block":{"block_types":{"cloud_storage_path":{"nesting_mode":"list","block":{"attributes":{"path":{"type":"string","description":"A url representing a file or path (no wildcards) in Cloud Storage. Example: 'gs://[BUCKET_NAME]/dictionary.txt'","description_kind":"plain","required":true}},"description":"Newline-delimited file of words in Cloud Storage. Only a single file is accepted.","description_kind":"plain"},"max_items":1},"word_list":{"nesting_mode":"list","block":{"attributes":{"words":{"type":["list","string"],"description":"Words or phrases defining the dictionary. The dictionary must contain at least one\nphrase and every phrase must contain at least 2 characters that are letters or digits.","description_kind":"plain","required":true}},"description":"List of words or phrases to search for.","description_kind":"plain"},"max_items":1}},"description":"Dictionary which defines the rule.","description_kind":"plain"},"max_items":1},"info_type":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names\nlisted at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type.","description_kind":"plain","required":true}},"description":"CustomInfoType can either be a new infoType, or an extension of built-in infoType, when the name matches one of existing\ninfoTypes and that infoType is specified in 'info_types' field. Specifying the latter adds findings to the\none detected by the system. If built-in info type is not specified in 'info_types' list then the name is\ntreated as a custom info type.","description_kind":"plain"},"min_items":1,"max_items":1},"regex":{"nesting_mode":"list","block":{"attributes":{"group_indexes":{"type":["list","number"],"description":"The index of the submatch to extract as findings. When not specified, the entire match is returned. No more than 3 may be included.","description_kind":"plain","optional":true},"pattern":{"type":"string","description":"Pattern defining the regular expression.\nIts syntax (https://github.com/google/re2/wiki/Syntax) can be found under the google/re2 repository on GitHub.","description_kind":"plain","required":true}},"description":"Regular expression which defines the rule.","description_kind":"plain"},"max_items":1},"stored_type":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Resource name of the requested StoredInfoType, for example 'organizations/433245324/storedInfoTypes/432452342'\nor 'projects/project-id/storedInfoTypes/432452342'.","description_kind":"plain","required":true}},"description":"A reference to a StoredInfoType to use with scanning.","description_kind":"plain"},"max_items":1}},"description":"Custom info types to be used. See https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.","description_kind":"plain"}},"info_types":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed\nat https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type.","description_kind":"plain","required":true}},"description":"Restricts what infoTypes to look for. The values must correspond to InfoType values returned by infoTypes.list\nor listed at https://cloud.google.com/dlp/docs/infotypes-reference.\n\nWhen no InfoTypes or CustomInfoTypes are specified in a request, the system may automatically choose what detectors to run.\nBy default this may be all types, but may change over time as detectors are updated.","description_kind":"plain"}},"limits":{"nesting_mode":"list","block":{"attributes":{"max_findings_per_item":{"type":"number","description":"Max number of findings that will be returned for each item scanned. The maximum returned is 2000.","description_kind":"plain","required":true},"max_findings_per_request":{"type":"number","description":"Max number of findings that will be returned per request/job. The maximum returned is 2000.","description_kind":"plain","required":true}},"block_types":{"max_findings_per_info_type":{"nesting_mode":"list","block":{"attributes":{"max_findings":{"type":"number","description":"Max findings limit for the given infoType.","description_kind":"plain","required":true}},"block_types":{"info_type":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed\nat https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type.","description_kind":"plain","required":true}},"description":"Type of information the findings limit applies to. Only one limit per infoType should be provided. If InfoTypeLimit does\nnot have an infoType, the DLP API applies the limit against all infoTypes that are found but not\nspecified in another InfoTypeLimit.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Configuration of findings limit given for specified infoTypes.","description_kind":"plain"}}},"description":"Configuration to control the number of findings returned.","description_kind":"plain"},"max_items":1},"rule_set":{"nesting_mode":"list","block":{"block_types":{"info_types":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed\nat https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type.","description_kind":"plain","required":true}},"description":"List of infoTypes this rule set is applied to.","description_kind":"plain"},"min_items":1},"rules":{"nesting_mode":"list","block":{"block_types":{"exclusion_rule":{"nesting_mode":"list","block":{"attributes":{"matching_type":{"type":"string","description":"How the rule is applied. See the documentation for more information: https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#MatchingType Possible values: [\"MATCHING_TYPE_FULL_MATCH\", \"MATCHING_TYPE_PARTIAL_MATCH\", \"MATCHING_TYPE_INVERSE_MATCH\"]","description_kind":"plain","required":true}},"block_types":{"dictionary":{"nesting_mode":"list","block":{"block_types":{"cloud_storage_path":{"nesting_mode":"list","block":{"attributes":{"path":{"type":"string","description":"A url representing a file or path (no wildcards) in Cloud Storage. Example: 'gs://[BUCKET_NAME]/dictionary.txt'","description_kind":"plain","required":true}},"description":"Newline-delimited file of words in Cloud Storage. Only a single file is accepted.","description_kind":"plain"},"max_items":1},"word_list":{"nesting_mode":"list","block":{"attributes":{"words":{"type":["list","string"],"description":"Words or phrases defining the dictionary. The dictionary must contain at least one\nphrase and every phrase must contain at least 2 characters that are letters or digits.","description_kind":"plain","required":true}},"description":"List of words or phrases to search for.","description_kind":"plain"},"max_items":1}},"description":"Dictionary which defines the rule.","description_kind":"plain"},"max_items":1},"exclude_info_types":{"nesting_mode":"list","block":{"block_types":{"info_types":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed\nat https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type.","description_kind":"plain","required":true}},"description":"If a finding is matched by any of the infoType detectors listed here, the finding will be excluded from the scan results.","description_kind":"plain"},"min_items":1}},"description":"Set of infoTypes for which findings would affect this rule.","description_kind":"plain"},"max_items":1},"regex":{"nesting_mode":"list","block":{"attributes":{"group_indexes":{"type":["list","number"],"description":"The index of the submatch to extract as findings. When not specified, the entire match is returned. No more than 3 may be included.","description_kind":"plain","optional":true},"pattern":{"type":"string","description":"Pattern defining the regular expression.\nIts syntax (https://github.com/google/re2/wiki/Syntax) can be found under the google/re2 repository on GitHub.","description_kind":"plain","required":true}},"description":"Regular expression which defines the rule.","description_kind":"plain"},"max_items":1}},"description":"The rule that specifies conditions when findings of infoTypes specified in InspectionRuleSet are removed from results.","description_kind":"plain"},"max_items":1},"hotword_rule":{"nesting_mode":"list","block":{"block_types":{"hotword_regex":{"nesting_mode":"list","block":{"attributes":{"group_indexes":{"type":["list","number"],"description":"The index of the submatch to extract as findings. When not specified,\nthe entire match is returned. No more than 3 may be included.","description_kind":"plain","optional":true},"pattern":{"type":"string","description":"Pattern defining the regular expression. Its syntax\n(https://github.com/google/re2/wiki/Syntax) can be found under the google/re2 repository on GitHub.","description_kind":"plain","required":true}},"description":"Regular expression pattern defining what qualifies as a hotword.","description_kind":"plain"},"min_items":1,"max_items":1},"likelihood_adjustment":{"nesting_mode":"list","block":{"attributes":{"fixed_likelihood":{"type":"string","description":"Set the likelihood of a finding to a fixed value. Either this or relative_likelihood can be set. Possible values: [\"VERY_UNLIKELY\", \"UNLIKELY\", \"POSSIBLE\", \"LIKELY\", \"VERY_LIKELY\"]","description_kind":"plain","optional":true},"relative_likelihood":{"type":"number","description":"Increase or decrease the likelihood by the specified number of levels. For example,\nif a finding would be POSSIBLE without the detection rule and relativeLikelihood is 1,\nthen it is upgraded to LIKELY, while a value of -1 would downgrade it to UNLIKELY.\nLikelihood may never drop below VERY_UNLIKELY or exceed VERY_LIKELY, so applying an\nadjustment of 1 followed by an adjustment of -1 when base likelihood is VERY_LIKELY\nwill result in a final likelihood of LIKELY. Either this or fixed_likelihood can be set.","description_kind":"plain","optional":true}},"description":"Likelihood adjustment to apply to all matching findings.","description_kind":"plain"},"min_items":1,"max_items":1},"proximity":{"nesting_mode":"list","block":{"attributes":{"window_after":{"type":"number","description":"Number of characters after the finding to consider. Either this or window_before must be specified","description_kind":"plain","optional":true},"window_before":{"type":"number","description":"Number of characters before the finding to consider. Either this or window_after must be specified","description_kind":"plain","optional":true}},"description":"Proximity of the finding within which the entire hotword must reside. The total length of the window cannot\nexceed 1000 characters. Note that the finding itself will be included in the window, so that hotwords may be\nused to match substrings of the finding itself. For example, the certainty of a phone number regex\n'(\\d{3}) \\d{3}-\\d{4}' could be adjusted upwards if the area code is known to be the local area code of a company\noffice using the hotword regex '(xxx)', where 'xxx' is the area code in question.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Hotword-based detection rule.","description_kind":"plain"},"max_items":1}},"description":"Set of rules to be applied to infoTypes. The rules are applied in order.","description_kind":"plain"},"min_items":1}},"description":"Set of rules to apply to the findings for this InspectConfig. Exclusion rules, contained in the set are executed in the end,\nother rules are executed in the order they are specified for each info type.","description_kind":"plain"}}},"description":"The core content of the template.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_data_loss_prevention_job_trigger":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A description of the job trigger.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"User set display name of the job trigger.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_run_time":{"type":"string","description":"The timestamp of the last time this trigger executed.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The resource name of the job trigger. Set by the server.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The parent of the trigger, either in the format 'projects/{{project}}'\nor 'projects/{{project}}/locations/{{location}}'","description_kind":"plain","required":true},"status":{"type":"string","description":"Whether the trigger is currently active. Default value: \"HEALTHY\" Possible values: [\"PAUSED\", \"HEALTHY\", \"CANCELLED\"]","description_kind":"plain","optional":true}},"block_types":{"inspect_job":{"nesting_mode":"list","block":{"attributes":{"inspect_template_name":{"type":"string","description":"The name of the template to run when this job is triggered.","description_kind":"plain","required":true}},"block_types":{"actions":{"nesting_mode":"list","block":{"block_types":{"save_findings":{"nesting_mode":"list","block":{"block_types":{"output_config":{"nesting_mode":"list","block":{"attributes":{"output_schema":{"type":"string","description":"Schema used for writing the findings for Inspect jobs. This field is only used for\nInspect and must be unspecified for Risk jobs. Columns are derived from the Finding\nobject. If appending to an existing table, any columns from the predefined schema\nthat are missing will be added. No columns in the existing table will be deleted.\n\nIf unspecified, then all available columns will be used for a new table or an (existing)\ntable with no schema, and no changes will be made to an existing table that has a schema.\nOnly for use with external storage. Possible values: [\"BASIC_COLUMNS\", \"GCS_COLUMNS\", \"DATASTORE_COLUMNS\", \"BIG_QUERY_COLUMNS\", \"ALL_COLUMNS\"]","description_kind":"plain","optional":true}},"block_types":{"table":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"Dataset ID of the table.","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The Google Cloud Platform project ID of the project containing the table.","description_kind":"plain","required":true},"table_id":{"type":"string","description":"Name of the table. If is not set a new one will be generated for you with the following format:\n'dlp_googleapis_yyyy_mm_dd_[dlp_job_id]'. Pacific timezone will be used for generating the date details.","description_kind":"plain","optional":true}},"description":"Information on the location of the target BigQuery Table.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Information on where to store output","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Schedule for triggered jobs","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"A task to execute on the completion of a job.","description_kind":"plain"},"min_items":1},"storage_config":{"nesting_mode":"list","block":{"block_types":{"big_query_options":{"nesting_mode":"list","block":{"block_types":{"table_reference":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The dataset ID of the table.","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The Google Cloud Platform project ID of the project containing the table.","description_kind":"plain","required":true},"table_id":{"type":"string","description":"The name of the table.","description_kind":"plain","required":true}},"description":"Set of files to scan.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Options defining BigQuery table and row identifiers.","description_kind":"plain"},"max_items":1},"cloud_storage_options":{"nesting_mode":"list","block":{"attributes":{"bytes_limit_per_file":{"type":"number","description":"Max number of bytes to scan from a file. If a scanned file's size is bigger than this value\nthen the rest of the bytes are omitted.","description_kind":"plain","optional":true},"bytes_limit_per_file_percent":{"type":"number","description":"Max percentage of bytes to scan from a file. The rest are omitted. The number of bytes scanned is rounded down.\nMust be between 0 and 100, inclusively. Both 0 and 100 means no limit.","description_kind":"plain","optional":true},"file_types":{"type":["list","string"],"description":"List of file type groups to include in the scan. If empty, all files are scanned and available data\nformat processors are applied. In addition, the binary content of the selected files is always scanned as well.\nImages are scanned only as binary if the specified region does not support image inspection and no fileTypes were specified. Possible values: [\"BINARY_FILE\", \"TEXT_FILE\", \"IMAGE\", \"WORD\", \"PDF\", \"AVRO\", \"CSV\", \"TSV\"]","description_kind":"plain","optional":true},"files_limit_percent":{"type":"number","description":"Limits the number of files to scan to this percentage of the input FileSet. Number of files scanned is rounded down.\nMust be between 0 and 100, inclusively. Both 0 and 100 means no limit.","description_kind":"plain","optional":true},"sample_method":{"type":"string","description":"How to sample bytes if not all bytes are scanned. Meaningful only when used in conjunction with bytesLimitPerFile.\nIf not specified, scanning would start from the top. Possible values: [\"TOP\", \"RANDOM_START\"]","description_kind":"plain","optional":true}},"block_types":{"file_set":{"nesting_mode":"list","block":{"attributes":{"url":{"type":"string","description":"The Cloud Storage url of the file(s) to scan, in the format 'gs://\u003cbucket\u003e/\u003cpath\u003e'. Trailing wildcard\nin the path is allowed.\n\nIf the url ends in a trailing slash, the bucket or directory represented by the url will be scanned\nnon-recursively (content in sub-directories will not be scanned). This means that 'gs://mybucket/' is\nequivalent to 'gs://mybucket/*', and 'gs://mybucket/directory/' is equivalent to 'gs://mybucket/directory/*'.","description_kind":"plain","optional":true}},"block_types":{"regex_file_set":{"nesting_mode":"list","block":{"attributes":{"bucket_name":{"type":"string","description":"The name of a Cloud Storage bucket.","description_kind":"plain","required":true},"exclude_regex":{"type":["list","string"],"description":"A list of regular expressions matching file paths to exclude. All files in the bucket that match at\nleast one of these regular expressions will be excluded from the scan.","description_kind":"plain","optional":true},"include_regex":{"type":["list","string"],"description":"A list of regular expressions matching file paths to include. All files in the bucket\nthat match at least one of these regular expressions will be included in the set of files,\nexcept for those that also match an item in excludeRegex. Leaving this field empty will\nmatch all files by default (this is equivalent to including .* in the list)","description_kind":"plain","optional":true}},"description":"The regex-filtered set of files to scan.","description_kind":"plain"},"max_items":1}},"description":"Set of files to scan.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Options defining a file or a set of files within a Google Cloud Storage bucket.","description_kind":"plain"},"max_items":1},"datastore_options":{"nesting_mode":"list","block":{"block_types":{"kind":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"The name of the Datastore kind.","description_kind":"plain","required":true}},"description":"A representation of a Datastore kind.","description_kind":"plain"},"min_items":1,"max_items":1},"partition_id":{"nesting_mode":"list","block":{"attributes":{"namespace_id":{"type":"string","description":"If not empty, the ID of the namespace to which the entities belong.","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The ID of the project to which the entities belong.","description_kind":"plain","required":true}},"description":"Datastore partition ID. A partition ID identifies a grouping of entities. The grouping\nis always by project and namespace, however the namespace ID may be empty.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Options defining a data set within Google Cloud Datastore.","description_kind":"plain"},"max_items":1},"timespan_config":{"nesting_mode":"list","block":{"attributes":{"enable_auto_population_of_timespan_config":{"type":"bool","description":"When the job is started by a JobTrigger we will automatically figure out a valid startTime to avoid\nscanning files that have not been modified since the last time the JobTrigger executed. This will\nbe based on the time of the execution of the last run of the JobTrigger.","description_kind":"plain","optional":true},"end_time":{"type":"string","description":"Exclude files or rows newer than this value. If set to zero, no upper time limit is applied.","description_kind":"plain","optional":true},"start_time":{"type":"string","description":"Exclude files or rows older than this value.","description_kind":"plain","optional":true}},"block_types":{"timestamp_field":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Specification of the field containing the timestamp of scanned items. Used for data sources like Datastore and BigQuery.\n\nFor BigQuery: Required to filter out rows based on the given start and end times. If not specified and the table was\nmodified between the given start and end times, the entire table will be scanned. The valid data types of the timestamp\nfield are: INTEGER, DATE, TIMESTAMP, or DATETIME BigQuery column.\n\nFor Datastore. Valid data types of the timestamp field are: TIMESTAMP. Datastore entity will be scanned if the\ntimestamp property does not exist or its value is empty or invalid.","description_kind":"plain","required":true}},"description":"Information on where to inspect","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Information on where to inspect","description_kind":"plain"},"max_items":1}},"description":"Information on where to inspect","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Controls what and how to inspect for findings.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"triggers":{"nesting_mode":"list","block":{"block_types":{"schedule":{"nesting_mode":"list","block":{"attributes":{"recurrence_period_duration":{"type":"string","description":"With this option a job is started a regular periodic basis. For example: every day (86400 seconds).\n\nA scheduled start time will be skipped if the previous execution has not ended when its scheduled time occurs.\n\nThis value must be set to a time duration greater than or equal to 1 day and can be no longer than 60 days.\n\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true}},"description":"Schedule for triggered jobs","description_kind":"plain"},"max_items":1}},"description":"What event needs to occur for a new job to be started.","description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"google_data_loss_prevention_stored_info_type":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A description of the info type.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"User set display name of the info type.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of the info type. Set by the server.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The parent of the info type in any of the following formats:\n\n* 'projects/{{project}}'\n* 'projects/{{project}}/locations/{{location}}'\n* 'organizations/{{organization_id}}'\n* 'organizations/{{organization_id}}/locations/{{location}}'","description_kind":"plain","required":true}},"block_types":{"dictionary":{"nesting_mode":"list","block":{"block_types":{"cloud_storage_path":{"nesting_mode":"list","block":{"attributes":{"path":{"type":"string","description":"A url representing a file or path (no wildcards) in Cloud Storage. Example: 'gs://[BUCKET_NAME]/dictionary.txt'","description_kind":"plain","required":true}},"description":"Newline-delimited file of words in Cloud Storage. Only a single file is accepted.","description_kind":"plain"},"max_items":1},"word_list":{"nesting_mode":"list","block":{"attributes":{"words":{"type":["list","string"],"description":"Words or phrases defining the dictionary. The dictionary must contain at least one\nphrase and every phrase must contain at least 2 characters that are letters or digits.","description_kind":"plain","required":true}},"description":"List of words or phrases to search for.","description_kind":"plain"},"max_items":1}},"description":"Dictionary which defines the rule.","description_kind":"plain"},"max_items":1},"large_custom_dictionary":{"nesting_mode":"list","block":{"block_types":{"big_query_field":{"nesting_mode":"list","block":{"block_types":{"field":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name describing the field.","description_kind":"plain","required":true}},"description":"Designated field in the BigQuery table.","description_kind":"plain"},"min_items":1,"max_items":1},"table":{"nesting_mode":"list","block":{"attributes":{"dataset_id":{"type":"string","description":"The dataset ID of the table.","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The Google Cloud Platform project ID of the project containing the table.","description_kind":"plain","required":true},"table_id":{"type":"string","description":"The name of the table.","description_kind":"plain","required":true}},"description":"Field in a BigQuery table where each cell represents a dictionary phrase.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Field in a BigQuery table where each cell represents a dictionary phrase.","description_kind":"plain"},"max_items":1},"cloud_storage_file_set":{"nesting_mode":"list","block":{"attributes":{"url":{"type":"string","description":"The url, in the format 'gs://\u003cbucket\u003e/\u003cpath\u003e'. Trailing wildcard in the path is allowed.","description_kind":"plain","required":true}},"description":"Set of files containing newline-delimited lists of dictionary phrases.","description_kind":"plain"},"max_items":1},"output_path":{"nesting_mode":"list","block":{"attributes":{"path":{"type":"string","description":"A url representing a file or path (no wildcards) in Cloud Storage. Example: 'gs://[BUCKET_NAME]/dictionary.txt'","description_kind":"plain","required":true}},"description":"Location to store dictionary artifacts in Google Cloud Storage. These files will only be accessible by project owners and the DLP API.\nIf any of these artifacts are modified, the dictionary is considered invalid and can no longer be used.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Dictionary which defines the rule.","description_kind":"plain"},"max_items":1},"regex":{"nesting_mode":"list","block":{"attributes":{"group_indexes":{"type":["list","number"],"description":"The index of the submatch to extract as findings. When not specified, the entire match is returned. No more than 3 may be included.","description_kind":"plain","optional":true},"pattern":{"type":"string","description":"Pattern defining the regular expression.\nIts syntax (https://github.com/google/re2/wiki/Syntax) can be found under the google/re2 repository on GitHub.","description_kind":"plain","required":true}},"description":"Regular expression which defines the rule.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dataflow_job":{"version":0,"block":{"attributes":{"additional_experiments":{"type":["set","string"],"description":"List of experiments that should be used by the job. An example value is [\"enable_stackdriver_agent_metrics\"].","description_kind":"plain","optional":true},"enable_streaming_engine":{"type":"bool","description":"Indicates if the job should use the streaming engine feature.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_configuration":{"type":"string","description":"The configuration for VM IPs. Options are \"WORKER_IP_PUBLIC\" or \"WORKER_IP_PRIVATE\".","description_kind":"plain","optional":true},"job_id":{"type":"string","description":"The unique ID of this job.","description_kind":"plain","computed":true},"kms_key_name":{"type":"string","description":"The name for the Cloud KMS key for the job. Key format is: projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"User labels to be specified for the job. Keys and values should follow the restrictions specified in the labeling restrictions page. NOTE: Google-provided Dataflow templates often provide default labels that begin with goog-dataflow-provided. Unless explicitly set in config, these labels will be ignored to prevent diffs on re-apply.","description_kind":"plain","optional":true},"machine_type":{"type":"string","description":"The machine type to use for the job.","description_kind":"plain","optional":true},"max_workers":{"type":"number","description":"The number of workers permitted to work on the job. More workers may improve processing speed at additional cost.","description_kind":"plain","optional":true},"name":{"type":"string","description":"A unique name for the resource, required by Dataflow.","description_kind":"plain","required":true},"network":{"type":"string","description":"The network to which VMs will be assigned. If it is not provided, \"default\" will be used.","description_kind":"plain","optional":true},"on_delete":{"type":"string","description":"One of \"drain\" or \"cancel\". Specifies behavior of deletion during terraform destroy.","description_kind":"plain","optional":true},"parameters":{"type":["map","string"],"description":"Key/Value pairs to be passed to the Dataflow job (as used in the template).","description_kind":"plain","optional":true},"project":{"type":"string","description":"The project in which the resource belongs.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region in which the created job should run.","description_kind":"plain","optional":true},"service_account_email":{"type":"string","description":"The Service Account email used to create the job.","description_kind":"plain","optional":true},"skip_wait_on_job_termination":{"type":"bool","description":"If true, treat DRAINING and CANCELLING as terminal job states and do not wait for further changes before removing from terraform state and moving on. WARNING: this will lead to job name conflicts if you do not ensure that the job names are different, e.g. by embedding a release ID or by using a random_id.","description_kind":"plain","optional":true},"state":{"type":"string","description":"The current state of the resource, selected from the JobState enum.","description_kind":"plain","computed":true},"subnetwork":{"type":"string","description":"The subnetwork to which VMs will be assigned. Should be of the form \"regions/REGION/subnetworks/SUBNETWORK\".","description_kind":"plain","optional":true},"temp_gcs_location":{"type":"string","description":"A writeable location on Google Cloud Storage for the Dataflow job to dump its temporary data.","description_kind":"plain","required":true},"template_gcs_path":{"type":"string","description":"The Google Cloud Storage path to the Dataflow job template.","description_kind":"plain","required":true},"transform_name_mapping":{"type":["map","string"],"description":"Only applicable when updating a pipeline. Map of transform name prefixes of the job to be replaced with the corresponding name prefixes of the new job.","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of this job, selected from the JobType enum.","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone in which the created job should run. If it is not provided, the provider zone is used.","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dataproc_autoscaling_policy":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location where the autoscaling policy should reside.\nThe default value is 'global'.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The \"resource name\" of the autoscaling policy.","description_kind":"plain","computed":true},"policy_id":{"type":"string","description":"The policy id. The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_),\nand hyphens (-). Cannot begin or end with underscore or hyphen. Must consist of between\n3 and 50 characters.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"basic_algorithm":{"nesting_mode":"list","block":{"attributes":{"cooldown_period":{"type":"string","description":"Duration between scaling events. A scaling period starts after the\nupdate operation from the previous event has completed.\n\nBounds: [2m, 1d]. Default: 2m.","description_kind":"plain","optional":true}},"block_types":{"yarn_config":{"nesting_mode":"list","block":{"attributes":{"graceful_decommission_timeout":{"type":"string","description":"Timeout for YARN graceful decommissioning of Node Managers. Specifies the\nduration to wait for jobs to complete before forcefully removing workers\n(and potentially interrupting jobs). Only applicable to downscaling operations.\n\nBounds: [0s, 1d].","description_kind":"plain","required":true},"scale_down_factor":{"type":"number","description":"Fraction of average pending memory in the last cooldown period for which to\nremove workers. A scale-down factor of 1 will result in scaling down so that there\nis no available memory remaining after the update (more aggressive scaling).\nA scale-down factor of 0 disables removing workers, which can be beneficial for\nautoscaling a single job.\n\nBounds: [0.0, 1.0].","description_kind":"plain","required":true},"scale_down_min_worker_fraction":{"type":"number","description":"Minimum scale-down threshold as a fraction of total cluster size before scaling occurs.\nFor example, in a 20-worker cluster, a threshold of 0.1 means the autoscaler must\nrecommend at least a 2 worker scale-down for the cluster to scale. A threshold of 0\nmeans the autoscaler will scale down on any recommended change.\n\nBounds: [0.0, 1.0]. Default: 0.0.","description_kind":"plain","optional":true},"scale_up_factor":{"type":"number","description":"Fraction of average pending memory in the last cooldown period for which to\nadd workers. A scale-up factor of 1.0 will result in scaling up so that there\nis no pending memory remaining after the update (more aggressive scaling).\nA scale-up factor closer to 0 will result in a smaller magnitude of scaling up\n(less aggressive scaling).\n\nBounds: [0.0, 1.0].","description_kind":"plain","required":true},"scale_up_min_worker_fraction":{"type":"number","description":"Minimum scale-up threshold as a fraction of total cluster size before scaling\noccurs. For example, in a 20-worker cluster, a threshold of 0.1 means the autoscaler\nmust recommend at least a 2-worker scale-up for the cluster to scale. A threshold of\n0 means the autoscaler will scale up on any recommended change.\n\nBounds: [0.0, 1.0]. Default: 0.0.","description_kind":"plain","optional":true}},"description":"YARN autoscaling configuration.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Basic algorithm for autoscaling.","description_kind":"plain"},"max_items":1},"secondary_worker_config":{"nesting_mode":"list","block":{"attributes":{"max_instances":{"type":"number","description":"Maximum number of instances for this group. Note that by default, clusters will not use\nsecondary workers. Required for secondary workers if the minimum secondary instances is set.\nBounds: [minInstances, ). Defaults to 0.","description_kind":"plain","optional":true},"min_instances":{"type":"number","description":"Minimum number of instances for this group. Bounds: [0, maxInstances]. Defaults to 0.","description_kind":"plain","optional":true},"weight":{"type":"number","description":"Weight for the instance group, which is used to determine the fraction of total workers\nin the cluster from this instance group. For example, if primary workers have weight 2,\nand secondary workers have weight 1, the cluster will have approximately 2 primary workers\nfor each secondary worker.\n\nThe cluster may not reach the specified balance if constrained by min/max bounds or other\nautoscaling settings. For example, if maxInstances for secondary workers is 0, then only\nprimary workers will be added. The cluster can also be out of balance when created.\n\nIf weight is not set on any instance group, the cluster will default to equal weight for\nall groups: the cluster will attempt to maintain an equal number of workers in each group\nwithin the configured size bounds for each group. If weight is set for one group only,\nthe cluster will default to zero weight on the unset group. For example if weight is set\nonly on primary workers, the cluster will use primary workers only and no secondary workers.","description_kind":"plain","optional":true}},"description":"Describes how the autoscaler will operate for secondary workers.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"worker_config":{"nesting_mode":"list","block":{"attributes":{"max_instances":{"type":"number","description":"Maximum number of instances for this group.","description_kind":"plain","required":true},"min_instances":{"type":"number","description":"Minimum number of instances for this group. Bounds: [2, maxInstances]. Defaults to 2.","description_kind":"plain","optional":true},"weight":{"type":"number","description":"Weight for the instance group, which is used to determine the fraction of total workers\nin the cluster from this instance group. For example, if primary workers have weight 2,\nand secondary workers have weight 1, the cluster will have approximately 2 primary workers\nfor each secondary worker.\n\nThe cluster may not reach the specified balance if constrained by min/max bounds or other\nautoscaling settings. For example, if maxInstances for secondary workers is 0, then only\nprimary workers will be added. The cluster can also be out of balance when created.\n\nIf weight is not set on any instance group, the cluster will default to equal weight for\nall groups: the cluster will attempt to maintain an equal number of workers in each group\nwithin the configured size bounds for each group. If weight is set for one group only,\nthe cluster will default to zero weight on the unset group. For example if weight is set\nonly on primary workers, the cluster will use primary workers only and no secondary workers.","description_kind":"plain","optional":true}},"description":"Describes how the autoscaler will operate for primary workers.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_dataproc_cluster":{"version":0,"block":{"attributes":{"graceful_decommission_timeout":{"type":"string","description":"The timeout duration which allows graceful decomissioning when you change the number of worker nodes directly through a terraform apply","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The list of labels (key/value pairs) to be applied to instances in the cluster. GCP generates some itself including goog-dataproc-cluster-name which is the name of the cluster.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the cluster, unique within the project and zone.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the cluster will exist. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region in which the cluster and associated nodes will be created in. Defaults to global.","description_kind":"plain","optional":true}},"block_types":{"cluster_config":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description":" The name of the cloud storage bucket ultimately used to house the staging data for the cluster. If staging_bucket is specified, it will contain this value, otherwise it will be the auto generated name.","description_kind":"plain","computed":true},"staging_bucket":{"type":"string","description":"The Cloud Storage staging bucket used to stage files, such as Hadoop jars, between client machines and the cluster. Note: If you don't explicitly specify a staging_bucket then GCP will auto create / assign one for you. However, you are not guaranteed an auto generated bucket which is solely dedicated to your cluster; it may be shared with other clusters in the same region/zone also choosing to use the auto generation option.","description_kind":"plain","optional":true},"temp_bucket":{"type":"string","description":"The Cloud Storage temp bucket used to store ephemeral cluster and jobs data, such as Spark and MapReduce history files. Note: If you don't explicitly specify a temp_bucket then GCP will auto create / assign one for you.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"autoscaling_config":{"nesting_mode":"list","block":{"attributes":{"policy_uri":{"type":"string","description":"The autoscaling policy used by the cluster.","description_kind":"plain","required":true}},"description":"The autoscaling policy config associated with the cluster.","description_kind":"plain"},"max_items":1},"encryption_config":{"nesting_mode":"list","block":{"attributes":{"kms_key_name":{"type":"string","description":"The Cloud KMS key name to use for PD disk encryption for all instances in the cluster.","description_kind":"plain","required":true}},"description":"The Customer managed encryption keys settings for the cluster.","description_kind":"plain"},"max_items":1},"gce_cluster_config":{"nesting_mode":"list","block":{"attributes":{"internal_ip_only":{"type":"bool","description":"By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. If set to true, all instances in the cluster will only have internal IP addresses. Note: Private Google Access (also known as privateIpGoogleAccess) must be enabled on the subnetwork that the cluster will be launched in.","description_kind":"plain","optional":true},"metadata":{"type":["map","string"],"description":"A map of the Compute Engine metadata entries to add to all instances","description_kind":"plain","optional":true},"network":{"type":"string","description":"The name or self_link of the Google Compute Engine network to the cluster will be part of. Conflicts with subnetwork. If neither is specified, this defaults to the \"default\" network.","description_kind":"plain","optional":true,"computed":true},"service_account":{"type":"string","description":"The service account to be used by the Node VMs. If not specified, the \"default\" service account is used.","description_kind":"plain","optional":true},"service_account_scopes":{"type":["set","string"],"description":"The set of Google API scopes to be made available on all of the node VMs under the service_account specified. These can be either FQDNs, or scope aliases.","description_kind":"plain","optional":true,"computed":true},"subnetwork":{"type":"string","description":"The name or self_link of the Google Compute Engine subnetwork the cluster will be part of. Conflicts with network.","description_kind":"plain","optional":true},"tags":{"type":["set","string"],"description":"The list of instance tags applied to instances in the cluster. Tags are used to identify valid sources or targets for network firewalls.","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The GCP zone where your data is stored and used (i.e. where the master and the worker nodes will be created in). If region is set to 'global' (default) then zone is mandatory, otherwise GCP is able to make use of Auto Zone Placement to determine this automatically for you. Note: This setting additionally determines and restricts which computing resources are available for use with other configs such as cluster_config.master_config.machine_type and cluster_config.worker_config.machine_type.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"shielded_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description":"Defines whether instances have integrity monitoring enabled.","description_kind":"plain","optional":true},"enable_secure_boot":{"type":"bool","description":"Defines whether instances have Secure Boot enabled.","description_kind":"plain","optional":true},"enable_vtpm":{"type":"bool","description":"Defines whether instances have the vTPM enabled.","description_kind":"plain","optional":true}},"description":"Shielded Instance Config for clusters using Compute Engine Shielded VMs.","description_kind":"plain"},"max_items":1}},"description":"Common config settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster.","description_kind":"plain"},"max_items":1},"initialization_action":{"nesting_mode":"list","block":{"attributes":{"script":{"type":"string","description":"The script to be executed during initialization of the cluster. The script must be a GCS file with a gs:// prefix.","description_kind":"plain","required":true},"timeout_sec":{"type":"number","description":"The maximum duration (in seconds) which script is allowed to take to execute its action. GCP will default to a predetermined computed value if not set (currently 300).","description_kind":"plain","optional":true}},"description":"Commands to execute on each node after config is completed. You can specify multiple versions of these.","description_kind":"plain"}},"master_config":{"nesting_mode":"list","block":{"attributes":{"image_uri":{"type":"string","description":"The URI for the image to use for this master/worker","description_kind":"plain","optional":true,"computed":true},"instance_names":{"type":["list","string"],"description":"List of master/worker instance names which have been assigned to the cluster.","description_kind":"plain","computed":true},"machine_type":{"type":"string","description":"The name of a Google Compute Engine machine type to create for the master/worker","description_kind":"plain","optional":true,"computed":true},"min_cpu_platform":{"type":"string","description":"The name of a minimum generation of CPU family for the master/worker. If not specified, GCP will default to a predetermined computed value for each zone.","description_kind":"plain","optional":true,"computed":true},"num_instances":{"type":"number","description":"Specifies the number of master/worker nodes to create. If not specified, GCP will default to a predetermined computed value.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"accelerators":{"nesting_mode":"set","block":{"attributes":{"accelerator_count":{"type":"number","description":"The number of the accelerator cards of this type exposed to this instance. Often restricted to one of 1, 2, 4, or 8.","description_kind":"plain","required":true},"accelerator_type":{"type":"string","description":"The short name of the accelerator type to expose to this instance. For example, nvidia-tesla-k80.","description_kind":"plain","required":true}},"description":"The Compute Engine accelerator (GPU) configuration for these instances. Can be specified multiple times.","description_kind":"plain"}},"disk_config":{"nesting_mode":"list","block":{"attributes":{"boot_disk_size_gb":{"type":"number","description":"Size of the primary disk attached to each node, specified in GB. The primary disk contains the boot volume and system libraries, and the smallest allowed disk size is 10GB. GCP will default to a predetermined computed value if not set (currently 500GB). Note: If SSDs are not attached, it also contains the HDFS data blocks and Hadoop working directories.","description_kind":"plain","optional":true,"computed":true},"boot_disk_type":{"type":"string","description":"The disk type of the primary disk attached to each node. One of \"pd-ssd\" or \"pd-standard\". Defaults to \"pd-standard\".","description_kind":"plain","optional":true},"num_local_ssds":{"type":"number","description":"The amount of local SSD disks that will be attached to each master cluster node. Defaults to 0.","description_kind":"plain","optional":true,"computed":true}},"description":"Disk Config","description_kind":"plain"},"max_items":1}},"description":"The Google Compute Engine config settings for the master/worker instances in a cluster.","description_kind":"plain"},"max_items":1},"preemptible_worker_config":{"nesting_mode":"list","block":{"attributes":{"instance_names":{"type":["list","string"],"description":"List of preemptible instance names which have been assigned to the cluster.","description_kind":"plain","computed":true},"num_instances":{"type":"number","description":"Specifies the number of preemptible nodes to create. Defaults to 0.","description_kind":"plain","optional":true,"computed":true},"preemptibility":{"type":"string","description":"Specifies the preemptibility of the secondary nodes. Defaults to PREEMPTIBLE.","description_kind":"plain","optional":true}},"block_types":{"disk_config":{"nesting_mode":"list","block":{"attributes":{"boot_disk_size_gb":{"type":"number","description":"Size of the primary disk attached to each preemptible worker node, specified in GB. The smallest allowed disk size is 10GB. GCP will default to a predetermined computed value if not set (currently 500GB). Note: If SSDs are not attached, it also contains the HDFS data blocks and Hadoop working directories.","description_kind":"plain","optional":true,"computed":true},"boot_disk_type":{"type":"string","description":"The disk type of the primary disk attached to each preemptible worker node. One of \"pd-ssd\" or \"pd-standard\". Defaults to \"pd-standard\".","description_kind":"plain","optional":true},"num_local_ssds":{"type":"number","description":"The amount of local SSD disks that will be attached to each preemptible worker node. Defaults to 0.","description_kind":"plain","optional":true,"computed":true}},"description":"Disk Config","description_kind":"plain"},"max_items":1}},"description":"The Google Compute Engine config settings for the additional (aka preemptible) instances in a cluster.","description_kind":"plain"},"max_items":1},"security_config":{"nesting_mode":"list","block":{"block_types":{"kerberos_config":{"nesting_mode":"list","block":{"attributes":{"cross_realm_trust_admin_server":{"type":"string","description":"The admin server (IP or hostname) for the remote trusted realm in a cross realm trust relationship.","description_kind":"plain","optional":true},"cross_realm_trust_kdc":{"type":"string","description":"The KDC (IP or hostname) for the remote trusted realm in a cross realm trust relationship.","description_kind":"plain","optional":true},"cross_realm_trust_realm":{"type":"string","description":"The remote realm the Dataproc on-cluster KDC will trust, should the user enable cross realm trust.","description_kind":"plain","optional":true},"cross_realm_trust_shared_password_uri":{"type":"string","description":"The Cloud Storage URI of a KMS encrypted file containing the shared password between the on-cluster\nKerberos realm and the remote trusted realm, in a cross realm trust relationship.","description_kind":"plain","optional":true},"enable_kerberos":{"type":"bool","description":"Flag to indicate whether to Kerberize the cluster.","description_kind":"plain","optional":true},"kdc_db_key_uri":{"type":"string","description":"The Cloud Storage URI of a KMS encrypted file containing the master key of the KDC database.","description_kind":"plain","optional":true},"key_password_uri":{"type":"string","description":"The Cloud Storage URI of a KMS encrypted file containing the password to the user provided key. For the self-signed certificate, this password is generated by Dataproc.","description_kind":"plain","optional":true},"keystore_password_uri":{"type":"string","description":"The Cloud Storage URI of a KMS encrypted file containing\nthe password to the user provided keystore. For the self-signed certificate, this password is generated\nby Dataproc","description_kind":"plain","optional":true},"keystore_uri":{"type":"string","description":"The Cloud Storage URI of the keystore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.","description_kind":"plain","optional":true},"kms_key_uri":{"type":"string","description":"The uri of the KMS key used to encrypt various sensitive files.","description_kind":"plain","required":true},"realm":{"type":"string","description":"The name of the on-cluster Kerberos realm. If not specified, the uppercased domain of hostnames will be the realm.","description_kind":"plain","optional":true},"root_principal_password_uri":{"type":"string","description":"The cloud Storage URI of a KMS encrypted file containing the root principal password.","description_kind":"plain","required":true},"tgt_lifetime_hours":{"type":"number","description":"The lifetime of the ticket granting ticket, in hours.","description_kind":"plain","optional":true},"truststore_password_uri":{"type":"string","description":"The Cloud Storage URI of a KMS encrypted file containing the password to the user provided truststore. For the self-signed certificate, this password is generated by Dataproc.","description_kind":"plain","optional":true},"truststore_uri":{"type":"string","description":"The Cloud Storage URI of the truststore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.","description_kind":"plain","optional":true}},"description":"Kerberos related configuration","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Security related configuration.","description_kind":"plain"},"max_items":1},"software_config":{"nesting_mode":"list","block":{"attributes":{"image_version":{"type":"string","description":"The Cloud Dataproc image version to use for the cluster - this controls the sets of software versions installed onto the nodes when you create clusters. If not specified, defaults to the latest version.","description_kind":"plain","optional":true,"computed":true},"optional_components":{"type":["set","string"],"description":"The set of optional components to activate on the cluster.","description_kind":"plain","optional":true},"override_properties":{"type":["map","string"],"description":"A list of override and additional properties (key/value pairs) used to modify various aspects of the common configuration files used when creating a cluster.","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"A list of the properties used to set the daemon config files. This will include any values supplied by the user via cluster_config.software_config.override_properties","description_kind":"plain","computed":true}},"description":"The config settings for software inside the cluster.","description_kind":"plain"},"max_items":1},"worker_config":{"nesting_mode":"list","block":{"attributes":{"image_uri":{"type":"string","description":"The URI for the image to use for this master/worker","description_kind":"plain","optional":true,"computed":true},"instance_names":{"type":["list","string"],"description":"List of master/worker instance names which have been assigned to the cluster.","description_kind":"plain","computed":true},"machine_type":{"type":"string","description":"The name of a Google Compute Engine machine type to create for the master/worker","description_kind":"plain","optional":true,"computed":true},"min_cpu_platform":{"type":"string","description":"The name of a minimum generation of CPU family for the master/worker. If not specified, GCP will default to a predetermined computed value for each zone.","description_kind":"plain","optional":true,"computed":true},"num_instances":{"type":"number","description":"Specifies the number of master/worker nodes to create. If not specified, GCP will default to a predetermined computed value.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"accelerators":{"nesting_mode":"set","block":{"attributes":{"accelerator_count":{"type":"number","description":"The number of the accelerator cards of this type exposed to this instance. Often restricted to one of 1, 2, 4, or 8.","description_kind":"plain","required":true},"accelerator_type":{"type":"string","description":"The short name of the accelerator type to expose to this instance. For example, nvidia-tesla-k80.","description_kind":"plain","required":true}},"description":"The Compute Engine accelerator (GPU) configuration for these instances. Can be specified multiple times.","description_kind":"plain"}},"disk_config":{"nesting_mode":"list","block":{"attributes":{"boot_disk_size_gb":{"type":"number","description":"Size of the primary disk attached to each node, specified in GB. The primary disk contains the boot volume and system libraries, and the smallest allowed disk size is 10GB. GCP will default to a predetermined computed value if not set (currently 500GB). Note: If SSDs are not attached, it also contains the HDFS data blocks and Hadoop working directories.","description_kind":"plain","optional":true,"computed":true},"boot_disk_type":{"type":"string","description":"The disk type of the primary disk attached to each node. One of \"pd-ssd\" or \"pd-standard\". Defaults to \"pd-standard\".","description_kind":"plain","optional":true},"num_local_ssds":{"type":"number","description":"The amount of local SSD disks that will be attached to each master cluster node. Defaults to 0.","description_kind":"plain","optional":true,"computed":true}},"description":"Disk Config","description_kind":"plain"},"max_items":1}},"description":"The Google Compute Engine config settings for the master/worker instances in a cluster.","description_kind":"plain"},"max_items":1}},"description":"Allows you to configure various aspects of the cluster.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dataproc_cluster_iam_binding":{"version":0,"block":{"attributes":{"cluster":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_dataproc_cluster_iam_member":{"version":0,"block":{"attributes":{"cluster":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_dataproc_cluster_iam_policy":{"version":0,"block":{"attributes":{"cluster":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_dataproc_job":{"version":0,"block":{"attributes":{"driver_controls_files_uri":{"type":"string","description":"Output-only. If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.","description_kind":"plain","computed":true},"driver_output_resource_uri":{"type":"string","description":"Output-only. A URI pointing to the location of the stdout of the job's driver program","description_kind":"plain","computed":true},"force_delete":{"type":"bool","description":"By default, you can only delete inactive jobs within Dataproc. Setting this to true, and calling destroy, will ensure that the job is first cancelled before issuing the delete.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Optional. The labels to associate with this job.","description_kind":"plain","optional":true},"project":{"type":"string","description":"The project in which the cluster can be found and jobs subsequently run against. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The Cloud Dataproc region. This essentially determines which clusters are available for this job to be submitted to. If not specified, defaults to global.","description_kind":"plain","optional":true},"status":{"type":["list",["object",{"details":"string","state":"string","state_start_time":"string","substate":"string"}]],"description":"The status of the job.","description_kind":"plain","computed":true}},"block_types":{"hadoop_config":{"nesting_mode":"list","block":{"attributes":{"archive_uris":{"type":["list","string"],"description":"HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.","description_kind":"plain","optional":true},"args":{"type":["list","string"],"description":"The arguments to pass to the driver.","description_kind":"plain","optional":true},"file_uris":{"type":["list","string"],"description":"HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.","description_kind":"plain","optional":true},"jar_file_uris":{"type":["list","string"],"description":"HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.","description_kind":"plain","optional":true},"main_class":{"type":"string","description":"The class containing the main method of the driver. Must be in a provided jar or jar that is already on the classpath. Conflicts with main_jar_file_uri","description_kind":"plain","optional":true},"main_jar_file_uri":{"type":"string","description":"The HCFS URI of jar file containing the driver jar. Conflicts with main_class","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"Optional. The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'.","description_kind":"plain","required":true}},"description":"The runtime logging config of the job","description_kind":"plain"},"max_items":1}},"description":"The config of Hadoop job","description_kind":"plain"},"max_items":1},"hive_config":{"nesting_mode":"list","block":{"attributes":{"continue_on_failure":{"type":"bool","description":"Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries. Defaults to false.","description_kind":"plain","optional":true},"jar_file_uris":{"type":["list","string"],"description":"HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.","description_kind":"plain","optional":true},"query_file_uri":{"type":"string","description":"HCFS URI of file containing Hive script to execute as the job. Conflicts with query_list","description_kind":"plain","optional":true},"query_list":{"type":["list","string"],"description":"The list of Hive queries or statements to execute as part of the job. Conflicts with query_file_uri","description_kind":"plain","optional":true},"script_variables":{"type":["map","string"],"description":"Mapping of query variable names to values (equivalent to the Hive command: SET name=\"value\";).","description_kind":"plain","optional":true}},"description":"The config of hive job","description_kind":"plain"},"max_items":1},"pig_config":{"nesting_mode":"list","block":{"attributes":{"continue_on_failure":{"type":"bool","description":"Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries. Defaults to false.","description_kind":"plain","optional":true},"jar_file_uris":{"type":["list","string"],"description":"HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.","description_kind":"plain","optional":true},"query_file_uri":{"type":"string","description":"HCFS URI of file containing Hive script to execute as the job. Conflicts with query_list","description_kind":"plain","optional":true},"query_list":{"type":["list","string"],"description":"The list of Hive queries or statements to execute as part of the job. Conflicts with query_file_uri","description_kind":"plain","optional":true},"script_variables":{"type":["map","string"],"description":"Mapping of query variable names to values (equivalent to the Pig command: name=[value]).","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"Optional. The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'.","description_kind":"plain","required":true}},"description":"The runtime logging config of the job","description_kind":"plain"},"max_items":1}},"description":"The config of pag job.","description_kind":"plain"},"max_items":1},"placement":{"nesting_mode":"list","block":{"attributes":{"cluster_name":{"type":"string","description":"The name of the cluster where the job will be submitted","description_kind":"plain","required":true},"cluster_uuid":{"type":"string","description":"Output-only. A cluster UUID generated by the Cloud Dataproc service when the job is submitted","description_kind":"plain","computed":true}},"description":"The config of job placement.","description_kind":"plain"},"min_items":1,"max_items":1},"presto_config":{"nesting_mode":"list","block":{"attributes":{"client_tags":{"type":["list","string"],"description":"Presto client tags to attach to this query.","description_kind":"plain","optional":true},"continue_on_failure":{"type":"bool","description":"Whether to continue executing queries if a query fails. Setting to true can be useful when executing independent parallel queries. Defaults to false.","description_kind":"plain","optional":true},"output_format":{"type":"string","description":"The format in which query output will be displayed. See the Presto documentation for supported output formats.","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"A mapping of property names to values. Used to set Presto session properties Equivalent to using the --session flag in the Presto CLI.","description_kind":"plain","optional":true},"query_file_uri":{"type":"string","description":"The HCFS URI of the script that contains SQL queries. Conflicts with query_list","description_kind":"plain","optional":true},"query_list":{"type":["list","string"],"description":"The list of SQL queries or statements to execute as part of the job. Conflicts with query_file_uri","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"Optional. The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'.","description_kind":"plain","required":true}},"description":"The runtime logging config of the job","description_kind":"plain"},"max_items":1}},"description":"The config of presto job","description_kind":"plain"},"max_items":1},"pyspark_config":{"nesting_mode":"list","block":{"attributes":{"archive_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip","description_kind":"plain","optional":true},"args":{"type":["list","string"],"description":"Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission","description_kind":"plain","optional":true},"file_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks","description_kind":"plain","optional":true},"jar_file_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks","description_kind":"plain","optional":true},"main_python_file_uri":{"type":"string","description":"Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file","description_kind":"plain","required":true},"properties":{"type":["map","string"],"description":"Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code","description_kind":"plain","optional":true},"python_file_uris":{"type":["list","string"],"description":"Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"Optional. The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'.","description_kind":"plain","required":true}},"description":"The runtime logging config of the job","description_kind":"plain"},"max_items":1}},"description":"The config of pySpark job.","description_kind":"plain"},"max_items":1},"reference":{"nesting_mode":"list","block":{"attributes":{"job_id":{"type":"string","description":"The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs","description_kind":"plain","optional":true,"computed":true}},"description":"The reference of the job","description_kind":"plain"},"max_items":1},"scheduling":{"nesting_mode":"list","block":{"attributes":{"max_failures_per_hour":{"type":"number","description":"Maximum number of times per hour a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed.","description_kind":"plain","required":true},"max_failures_total":{"type":"number","description":"Maximum number of times in total a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed.","description_kind":"plain","required":true}},"description":"Optional. Job scheduling configuration.","description_kind":"plain"},"max_items":1},"spark_config":{"nesting_mode":"list","block":{"attributes":{"archive_uris":{"type":["list","string"],"description":"HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.","description_kind":"plain","optional":true},"args":{"type":["list","string"],"description":"The arguments to pass to the driver.","description_kind":"plain","optional":true},"file_uris":{"type":["list","string"],"description":"HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.","description_kind":"plain","optional":true},"jar_file_uris":{"type":["list","string"],"description":"HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.","description_kind":"plain","optional":true},"main_class":{"type":"string","description":"The class containing the main method of the driver. Must be in a provided jar or jar that is already on the classpath. Conflicts with main_jar_file_uri","description_kind":"plain","optional":true},"main_jar_file_uri":{"type":"string","description":"The HCFS URI of jar file containing the driver jar. Conflicts with main_class","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"Optional. The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'.","description_kind":"plain","required":true}},"description":"The runtime logging config of the job","description_kind":"plain"},"max_items":1}},"description":"The config of the Spark job.","description_kind":"plain"},"max_items":1},"sparksql_config":{"nesting_mode":"list","block":{"attributes":{"jar_file_uris":{"type":["list","string"],"description":"HCFS URIs of jar files to be added to the Spark CLASSPATH.","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.","description_kind":"plain","optional":true},"query_file_uri":{"type":"string","description":"The HCFS URI of the script that contains SQL queries. Conflicts with query_list","description_kind":"plain","optional":true},"query_list":{"type":["list","string"],"description":"The list of SQL queries or statements to execute as part of the job. Conflicts with query_file_uri","description_kind":"plain","optional":true},"script_variables":{"type":["map","string"],"description":"Mapping of query variable names to values (equivalent to the Spark SQL command: SET name=\"value\";).","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"Optional. The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'.","description_kind":"plain","required":true}},"description":"The runtime logging config of the job","description_kind":"plain"},"max_items":1}},"description":"The config of SparkSql job","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dataproc_job_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"job_id":{"type":"string","description_kind":"plain","required":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_dataproc_job_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"job_id":{"type":"string","description_kind":"plain","required":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_dataproc_job_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"job_id":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_dataproc_workflow_template":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Output only. The time template was created.","description_kind":"plain","computed":true},"dag_timeout":{"type":"string","description":"Optional. Timeout duration for the DAG of jobs, expressed in seconds (see [JSON representation of duration](https://developers.google.com/protocol-buffers/docs/proto3#json)). The timeout duration must be from 10 minutes (\"600s\") to 24 hours (\"86400s\"). The timer begins when the first job is submitted. If the workflow is running at the end of the timeout period, any remaining jobs are cancelled, the workflow is ended, and if the workflow was running on a [managed cluster](/dataproc/docs/concepts/workflows/using-workflows#configuring_or_selecting_a_cluster), the cluster is deleted.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Optional. The labels to associate with this template. These labels will be propagated to all jobs and clusters created by the workflow instance. Label **keys** must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). Label **values** may be empty, but, if present, must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a template.","description_kind":"plain","optional":true},"location":{"type":"string","description":"The location for the resource","description_kind":"plain","required":true},"name":{"type":"string","description":"Output only. The resource name of the workflow template, as described in https://cloud.google.com/apis/design/resource_names. * For `projects.regions.workflowTemplates`, the resource name of the template has the following format: `projects/{project_id}/regions/{region}/workflowTemplates/{template_id}` * For `projects.locations.workflowTemplates`, the resource name of the template has the following format: `projects/{project_id}/locations/{location}/workflowTemplates/{template_id}`","description_kind":"plain","required":true},"project":{"type":"string","description":"The project for the resource","description_kind":"plain","optional":true,"computed":true},"update_time":{"type":"string","description":"Output only. The time template was last updated.","description_kind":"plain","computed":true},"version":{"type":"number","description":"Output only. The current version of this workflow template.","description_kind":"plain","deprecated":true,"optional":true,"computed":true}},"block_types":{"jobs":{"nesting_mode":"list","block":{"attributes":{"labels":{"type":["map","string"],"description":"Optional. The labels to associate with this job. Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: p{Ll}p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following regular expression: [p{Ll}p{Lo}p{N}_-]{0,63} No more than 32 labels can be associated with a given job.","description_kind":"plain","optional":true},"prerequisite_step_ids":{"type":["list","string"],"description":"Optional. The optional list of prerequisite job step_ids. If not specified, the job will start at the beginning of workflow.","description_kind":"plain","optional":true},"step_id":{"type":"string","description":"Required. The step id. The id must be unique among all jobs within the template. The step id is used as prefix for job id, as job `goog-dataproc-workflow-step-id` label, and in prerequisiteStepIds field from other steps. The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). Cannot begin or end with underscore or hyphen. Must consist of between 3 and 50 characters.","description_kind":"plain","required":true}},"block_types":{"hadoop_job":{"nesting_mode":"list","block":{"attributes":{"archive_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.","description_kind":"plain","optional":true},"args":{"type":["list","string"],"description":"Optional. The arguments to pass to the driver. Do not include arguments, such as `-libjars` or `-Dfoo=bar`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.","description_kind":"plain","optional":true},"file_uris":{"type":["list","string"],"description":"Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.","description_kind":"plain","optional":true},"jar_file_uris":{"type":["list","string"],"description":"Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.","description_kind":"plain","optional":true},"main_class":{"type":"string","description":"The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in `jar_file_uris`.","description_kind":"plain","optional":true},"main_jar_file_uri":{"type":"string","description":"The HCFS URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'","description_kind":"plain","optional":true}},"description":"Optional. The runtime log config for job execution.","description_kind":"plain"},"max_items":1}},"description":"Optional. Job is a Hadoop job.","description_kind":"plain"},"max_items":1},"hive_job":{"nesting_mode":"list","block":{"attributes":{"continue_on_failure":{"type":"bool","description":"Optional. Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.","description_kind":"plain","optional":true},"jar_file_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.","description_kind":"plain","optional":true},"query_file_uri":{"type":"string","description":"The HCFS URI of the script that contains Hive queries.","description_kind":"plain","optional":true},"script_variables":{"type":["map","string"],"description":"Optional. Mapping of query variable names to values (equivalent to the Hive command: `SET name=\"value\";`).","description_kind":"plain","optional":true}},"block_types":{"query_list":{"nesting_mode":"list","block":{"attributes":{"queries":{"type":["list","string"],"description":"Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: \"hiveJob\": { \"queryList\": { \"queries\": [ \"query1\", \"query2\", \"query3;query4\", ] } }","description_kind":"plain","required":true}},"description":"A list of queries.","description_kind":"plain"},"max_items":1}},"description":"Optional. Job is a Hive job.","description_kind":"plain"},"max_items":1},"pig_job":{"nesting_mode":"list","block":{"attributes":{"continue_on_failure":{"type":"bool","description":"Optional. Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.","description_kind":"plain","optional":true},"jar_file_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.","description_kind":"plain","optional":true},"query_file_uri":{"type":"string","description":"The HCFS URI of the script that contains the Pig queries.","description_kind":"plain","optional":true},"script_variables":{"type":["map","string"],"description":"Optional. Mapping of query variable names to values (equivalent to the Pig command: `name=[value]`).","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'","description_kind":"plain","optional":true}},"description":"Optional. The runtime log config for job execution.","description_kind":"plain"},"max_items":1},"query_list":{"nesting_mode":"list","block":{"attributes":{"queries":{"type":["list","string"],"description":"Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: \"hiveJob\": { \"queryList\": { \"queries\": [ \"query1\", \"query2\", \"query3;query4\", ] } }","description_kind":"plain","required":true}},"description":"A list of queries.","description_kind":"plain"},"max_items":1}},"description":"Optional. Job is a Pig job.","description_kind":"plain"},"max_items":1},"presto_job":{"nesting_mode":"list","block":{"attributes":{"client_tags":{"type":["list","string"],"description":"Optional. Presto client tags to attach to this query","description_kind":"plain","optional":true},"continue_on_failure":{"type":"bool","description":"Optional. Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.","description_kind":"plain","optional":true},"output_format":{"type":"string","description":"Optional. The format in which query output will be displayed. See the Presto documentation for supported output formats","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"Optional. A mapping of property names to values. Used to set Presto [session properties](https://prestodb.io/docs/current/sql/set-session.html) Equivalent to using the --session flag in the Presto CLI","description_kind":"plain","optional":true},"query_file_uri":{"type":"string","description":"The HCFS URI of the script that contains SQL queries.","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'","description_kind":"plain","optional":true}},"description":"Optional. The runtime log config for job execution.","description_kind":"plain"},"max_items":1},"query_list":{"nesting_mode":"list","block":{"attributes":{"queries":{"type":["list","string"],"description":"Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: \"hiveJob\": { \"queryList\": { \"queries\": [ \"query1\", \"query2\", \"query3;query4\", ] } }","description_kind":"plain","required":true}},"description":"A list of queries.","description_kind":"plain"},"max_items":1}},"description":"Optional. Job is a Presto job.","description_kind":"plain"},"max_items":1},"pyspark_job":{"nesting_mode":"list","block":{"attributes":{"archive_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.","description_kind":"plain","optional":true},"args":{"type":["list","string"],"description":"Optional. The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.","description_kind":"plain","optional":true},"file_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.","description_kind":"plain","optional":true},"jar_file_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.","description_kind":"plain","optional":true},"main_python_file_uri":{"type":"string","description":"Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.","description_kind":"plain","required":true},"properties":{"type":["map","string"],"description":"Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.","description_kind":"plain","optional":true},"python_file_uris":{"type":["list","string"],"description":"Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'","description_kind":"plain","optional":true}},"description":"Optional. The runtime log config for job execution.","description_kind":"plain"},"max_items":1}},"description":"Optional. Job is a PySpark job.","description_kind":"plain"},"max_items":1},"scheduling":{"nesting_mode":"list","block":{"attributes":{"max_failures_per_hour":{"type":"number","description":"Optional. Maximum number of times per hour a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed. A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window. Maximum value is 10.","description_kind":"plain","optional":true},"max_failures_total":{"type":"number","description":"Optional. Maximum number of times in total a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed. Maximum value is 240.","description_kind":"plain","optional":true}},"description":"Optional. Job scheduling configuration.","description_kind":"plain"},"max_items":1},"spark_job":{"nesting_mode":"list","block":{"attributes":{"archive_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.","description_kind":"plain","optional":true},"args":{"type":["list","string"],"description":"Optional. The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.","description_kind":"plain","optional":true},"file_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.","description_kind":"plain","optional":true},"jar_file_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.","description_kind":"plain","optional":true},"main_class":{"type":"string","description":"The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in `jar_file_uris`.","description_kind":"plain","optional":true},"main_jar_file_uri":{"type":"string","description":"The HCFS URI of the jar file that contains the main class.","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'","description_kind":"plain","optional":true}},"description":"Optional. The runtime log config for job execution.","description_kind":"plain"},"max_items":1}},"description":"Optional. Job is a Spark job.","description_kind":"plain"},"max_items":1},"spark_r_job":{"nesting_mode":"list","block":{"attributes":{"archive_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.","description_kind":"plain","optional":true},"args":{"type":["list","string"],"description":"Optional. The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.","description_kind":"plain","optional":true},"file_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.","description_kind":"plain","optional":true},"main_r_file_uri":{"type":"string","description":"Required. The HCFS URI of the main R file to use as the driver. Must be a .R file.","description_kind":"plain","required":true},"properties":{"type":["map","string"],"description":"Optional. A mapping of property names to values, used to configure SparkR. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'","description_kind":"plain","optional":true}},"description":"Optional. The runtime log config for job execution.","description_kind":"plain"},"max_items":1}},"description":"Optional. Job is a SparkR job.","description_kind":"plain"},"max_items":1},"spark_sql_job":{"nesting_mode":"list","block":{"attributes":{"jar_file_uris":{"type":["list","string"],"description":"Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"Optional. A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Dataproc API may be overwritten.","description_kind":"plain","optional":true},"query_file_uri":{"type":"string","description":"The HCFS URI of the script that contains SQL queries.","description_kind":"plain","optional":true},"script_variables":{"type":["map","string"],"description":"Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET `name=\"value\";`).","description_kind":"plain","optional":true}},"block_types":{"logging_config":{"nesting_mode":"list","block":{"attributes":{"driver_log_levels":{"type":["map","string"],"description":"The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'","description_kind":"plain","optional":true}},"description":"Optional. The runtime log config for job execution.","description_kind":"plain"},"max_items":1},"query_list":{"nesting_mode":"list","block":{"attributes":{"queries":{"type":["list","string"],"description":"Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: \"hiveJob\": { \"queryList\": { \"queries\": [ \"query1\", \"query2\", \"query3;query4\", ] } }","description_kind":"plain","required":true}},"description":"A list of queries.","description_kind":"plain"},"max_items":1}},"description":"Optional. Job is a SparkSql job.","description_kind":"plain"},"max_items":1}},"description":"Required. The Directed Acyclic Graph of Jobs to submit.","description_kind":"plain"},"min_items":1},"parameters":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Optional. Brief description of the parameter. Must not exceed 1024 characters.","description_kind":"plain","optional":true},"fields":{"type":["list","string"],"description":"Required. Paths to all fields that the parameter replaces. A field is allowed to appear in at most one parameter's list of field paths. A field path is similar in syntax to a google.protobuf.FieldMask. For example, a field path that references the zone field of a workflow template's cluster selector would be specified as `placement.clusterSelector.zone`. Also, field paths can reference fields using the following syntax: * Values in maps can be referenced by key: * labels['key'] * placement.clusterSelector.clusterLabels['key'] * placement.managedCluster.labels['key'] * placement.clusterSelector.clusterLabels['key'] * jobs['step-id'].labels['key'] * Jobs in the jobs list can be referenced by step-id: * jobs['step-id'].hadoopJob.mainJarFileUri * jobs['step-id'].hiveJob.queryFileUri * jobs['step-id'].pySparkJob.mainPythonFileUri * jobs['step-id'].hadoopJob.jarFileUris[0] * jobs['step-id'].hadoopJob.archiveUris[0] * jobs['step-id'].hadoopJob.fileUris[0] * jobs['step-id'].pySparkJob.pythonFileUris[0] * Items in repeated fields can be referenced by a zero-based index: * jobs['step-id'].sparkJob.args[0] * Other examples: * jobs['step-id'].hadoopJob.properties['key'] * jobs['step-id'].hadoopJob.args[0] * jobs['step-id'].hiveJob.scriptVariables['key'] * jobs['step-id'].hadoopJob.mainJarFileUri * placement.clusterSelector.zone It may not be possible to parameterize maps and repeated fields in their entirety since only individual map values and individual items in repeated fields can be referenced. For example, the following field paths are invalid: - placement.clusterSelector.clusterLabels - jobs['step-id'].sparkJob.args","description_kind":"plain","required":true},"name":{"type":"string","description":"Required. Parameter name. The parameter name is used as the key, and paired with the parameter value, which are passed to the template when the template is instantiated. The name must contain only capital letters (A-Z), numbers (0-9), and underscores (_), and must not start with a number. The maximum length is 40 characters.","description_kind":"plain","required":true}},"block_types":{"validation":{"nesting_mode":"list","block":{"block_types":{"regex":{"nesting_mode":"list","block":{"attributes":{"regexes":{"type":["list","string"],"description":"Required. RE2 regular expressions used to validate the parameter's value. The value must match the regex in its entirety (substring matches are not sufficient).","description_kind":"plain","required":true}},"description":"Validation based on regular expressions.","description_kind":"plain"},"max_items":1},"values":{"nesting_mode":"list","block":{"attributes":{"values":{"type":["list","string"],"description":"Required. List of allowed values for the parameter.","description_kind":"plain","required":true}},"description":"Validation based on a list of allowed values.","description_kind":"plain"},"max_items":1}},"description":"Optional. Validation rules to be applied to this parameter's value.","description_kind":"plain"},"max_items":1}},"description":"Optional. Template parameters whose values are substituted into the template. Values for parameters must be provided when the template is instantiated.","description_kind":"plain"}},"placement":{"nesting_mode":"list","block":{"block_types":{"cluster_selector":{"nesting_mode":"list","block":{"attributes":{"cluster_labels":{"type":["map","string"],"description":"Required. The cluster labels. Cluster must have all labels to match.","description_kind":"plain","required":true},"zone":{"type":"string","description":"Optional. The zone where workflow process executes. This parameter does not affect the selection of the cluster. If unspecified, the zone of the first cluster matching the selector is used.","description_kind":"plain","optional":true,"computed":true}},"description":"Optional. A selector that chooses target cluster for jobs based on metadata. The selector is evaluated at the time each job is submitted.","description_kind":"plain"},"max_items":1},"managed_cluster":{"nesting_mode":"list","block":{"attributes":{"cluster_name":{"type":"string","description":"Required. The cluster name prefix. A unique cluster name will be formed by appending a random suffix. The name must contain only lower-case letters (a-z), numbers (0-9), and hyphens (-). Must begin with a letter. Cannot begin or end with hyphen. Must consist of between 2 and 35 characters.","description_kind":"plain","required":true},"labels":{"type":["map","string"],"description":"Optional. The labels to associate with this cluster. Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: p{Ll}p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: [p{Ll}p{Lo}p{N}_-]{0,63} No more than 32 labels can be associated with a given cluster.","description_kind":"plain","optional":true}},"block_types":{"config":{"nesting_mode":"list","block":{"attributes":{"staging_bucket":{"type":"string","description":"Optional. A Cloud Storage bucket used to stage job dependencies, config files, and job driver console output. If you do not specify a staging bucket, Cloud Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Compute Engine zone where your cluster is deployed, and then create and manage this project-level, per-location bucket (see [Dataproc staging bucket](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)). **This field requires a Cloud Storage bucket name, not a URI to a Cloud Storage bucket.**","description_kind":"plain","optional":true},"temp_bucket":{"type":"string","description":"Optional. A Cloud Storage bucket used to store ephemeral cluster and jobs data, such as Spark and MapReduce history files. If you do not specify a temp bucket, Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster's temp bucket according to the Compute Engine zone where your cluster is deployed, and then create and manage this project-level, per-location bucket. The default bucket has a TTL of 90 days, but you can use any TTL (or none) if you specify a bucket. **This field requires a Cloud Storage bucket name, not a URI to a Cloud Storage bucket.**","description_kind":"plain","optional":true}},"block_types":{"autoscaling_config":{"nesting_mode":"list","block":{"attributes":{"policy":{"type":"string","description":"Optional. The autoscaling policy used by the cluster. Only resource names including projectid and location (region) are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id]` * `projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id]` Note that the policy must be in the same project and Dataproc region.","description_kind":"plain","optional":true}},"description":"Optional. Autoscaling config for the policy associated with the cluster. Cluster does not autoscale if this field is unset.","description_kind":"plain"},"max_items":1},"encryption_config":{"nesting_mode":"list","block":{"attributes":{"gce_pd_kms_key_name":{"type":"string","description":"Optional. The Cloud KMS key name to use for PD disk encryption for all instances in the cluster.","description_kind":"plain","optional":true}},"description":"Optional. Encryption settings for the cluster.","description_kind":"plain"},"max_items":1},"endpoint_config":{"nesting_mode":"list","block":{"attributes":{"enable_http_port_access":{"type":"bool","description":"Optional. If true, enable http access to specific ports on the cluster from external sources. Defaults to false.","description_kind":"plain","optional":true},"http_ports":{"type":["map","string"],"description":"Output only. The map of port descriptions to URLs. Will only be populated if enable_http_port_access is true.","description_kind":"plain","computed":true}},"description":"Optional. Port/endpoint configuration for this cluster","description_kind":"plain"},"max_items":1},"gce_cluster_config":{"nesting_mode":"list","block":{"attributes":{"internal_ip_only":{"type":"bool","description":"Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This `internal_ip_only` restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":["map","string"],"description":"The Compute Engine metadata entries to add to all instances (see [Project and instance metadata](https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).","description_kind":"plain","optional":true},"network":{"type":"string","description":"Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither `network_uri` nor `subnetwork_uri` is specified, the \"default\" network of the project is used, if it exists. Cannot be a \"Custom Subnet Network\" (see [Using Subnetworks](https://cloud.google.com/compute/docs/subnetworks) for more information). A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default` * `projects/[project_id]/regions/global/default` * `default`","description_kind":"plain","optional":true},"private_ipv6_google_access":{"type":"string","description":"Optional. The type of IPv6 access for a cluster. Possible values: PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED, INHERIT_FROM_SUBNETWORK, OUTBOUND, BIDIRECTIONAL","description_kind":"plain","optional":true},"service_account":{"type":"string","description":"Optional. The [Dataproc service account](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/service-accounts#service_accounts_in_dataproc) (also see [VM Data Plane identity](https://cloud.google.com/dataproc/docs/concepts/iam/dataproc-principals#vm_service_account_data_plane_identity)) used by Dataproc cluster VM instances to access Google Cloud Platform services. If not specified, the [Compute Engine default service account](https://cloud.google.com/compute/docs/access/service-accounts#default_service_account) is used.","description_kind":"plain","optional":true},"service_account_scopes":{"type":["list","string"],"description":"Optional. The URIs of service account scopes to be included in Compute Engine instances. The following base set of scopes is always included: * https://www.googleapis.com/auth/cloud.useraccounts.readonly * https://www.googleapis.com/auth/devstorage.read_write * https://www.googleapis.com/auth/logging.write If no scopes are specified, the following defaults are also provided: * https://www.googleapis.com/auth/bigquery * https://www.googleapis.com/auth/bigtable.admin.table * https://www.googleapis.com/auth/bigtable.data * https://www.googleapis.com/auth/devstorage.full_control","description_kind":"plain","optional":true},"subnetwork":{"type":"string","description":"Optional. The Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/subnetworks/sub0` * `projects/[project_id]/regions/us-east1/subnetworks/sub0` * `sub0`","description_kind":"plain","optional":true},"tags":{"type":["set","string"],"description":"The Compute Engine tags to add to all instances (see [Tagging instances](https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).","description_kind":"plain","optional":true},"zone":{"type":"string","description":"Optional. The zone where the Compute Engine cluster will be located. On a create request, it is required in the \"global\" region. If omitted in a non-global Dataproc region, the service will pick a zone in the corresponding Compute Engine region. On a get request, zone will always be present. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]` * `projects/[project_id]/zones/[zone]` * `us-central1-f`","description_kind":"plain","optional":true,"computed":true}},"block_types":{"node_group_affinity":{"nesting_mode":"list","block":{"attributes":{"node_group":{"type":"string","description":"Required. The URI of a sole-tenant [node group resource](https://cloud.google.com/compute/docs/reference/rest/v1/nodeGroups) that the cluster will be created on. A full URL, partial URI, or node group name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-central1-a/nodeGroups/node-group-1` * `projects/[project_id]/zones/us-central1-a/nodeGroups/node-group-1` * `node-group-1`","description_kind":"plain","required":true}},"description":"Optional. Node Group Affinity for sole-tenant clusters.","description_kind":"plain"},"max_items":1},"reservation_affinity":{"nesting_mode":"list","block":{"attributes":{"consume_reservation_type":{"type":"string","description":"Optional. Type of reservation to consume Possible values: TYPE_UNSPECIFIED, NO_RESERVATION, ANY_RESERVATION, SPECIFIC_RESERVATION","description_kind":"plain","optional":true},"key":{"type":"string","description":"Optional. Corresponds to the label key of reservation resource.","description_kind":"plain","optional":true},"values":{"type":["list","string"],"description":"Optional. Corresponds to the label values of reservation resource.","description_kind":"plain","optional":true}},"description":"Optional. Reservation Affinity for consuming Zonal reservation.","description_kind":"plain"},"max_items":1}},"description":"Optional. The shared Compute Engine config settings for all instances in a cluster.","description_kind":"plain"},"max_items":1},"initialization_actions":{"nesting_mode":"list","block":{"attributes":{"executable_file":{"type":"string","description":"Required. Cloud Storage URI of executable file.","description_kind":"plain","optional":true},"execution_timeout":{"type":"string","description":"Optional. Amount of time executable has to complete. Default is 10 minutes (see JSON representation of [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)). Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.","description_kind":"plain","optional":true}},"description":"Optional. Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's `role` metadata to run an executable on a master or worker node, as shown below using `curl` (you can also use `wget`): ROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role) if [[ \"${ROLE}\" == 'Master' ]]; then ... master specific actions ... else ... worker specific actions ... fi","description_kind":"plain"}},"lifecycle_config":{"nesting_mode":"list","block":{"attributes":{"auto_delete_time":{"type":"string","description":"Optional. The time when cluster will be auto-deleted (see JSON representation of [Timestamp](https://developers.google.com/protocol-buffers/docs/proto3#json)).","description_kind":"plain","optional":true},"auto_delete_ttl":{"type":"string","description":"Optional. The lifetime duration of cluster. The cluster will be auto-deleted at the end of this period. Minimum value is 10 minutes; maximum value is 14 days (see JSON representation of [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)).","description_kind":"plain","optional":true},"idle_delete_ttl":{"type":"string","description":"Optional. The duration to keep the cluster alive while idling (when no jobs are running). Passing this threshold will cause the cluster to be deleted. Minimum value is 5 minutes; maximum value is 14 days (see JSON representation of [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)).","description_kind":"plain","optional":true},"idle_start_time":{"type":"string","description":"Output only. The time when cluster became idle (most recent job finished) and became eligible for deletion due to idleness (see JSON representation of [Timestamp](https://developers.google.com/protocol-buffers/docs/proto3#json)).","description_kind":"plain","computed":true}},"description":"Optional. Lifecycle setting for the cluster.","description_kind":"plain"},"max_items":1},"master_config":{"nesting_mode":"list","block":{"attributes":{"image":{"type":"string","description":"Optional. The Compute Engine image resource used for cluster instances. The URI can represent an image or image family. Image examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id]` * `projects/[project_id]/global/images/[image-id]` * `image-id` Image family examples. Dataproc will use the most recent image from the family: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name]` * `projects/[project_id]/global/images/family/[custom-image-family-name]` If the URI is unspecified, it will be inferred from `SoftwareConfig.image_version` or the system default.","description_kind":"plain","optional":true},"instance_names":{"type":["list","string"],"description":"Output only. The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group.","description_kind":"plain","computed":true},"is_preemptible":{"type":"bool","description":"Output only. Specifies that this instance group contains preemptible instances.","description_kind":"plain","computed":true},"machine_type":{"type":"string","description":"Optional. The Compute Engine machine type used for cluster instances. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `n1-standard-2` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, `n1-standard-2`.","description_kind":"plain","optional":true},"managed_group_config":{"type":["list",["object",{"instance_group_manager_name":"string","instance_template_name":"string"}]],"description":"Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.","description_kind":"plain","computed":true},"min_cpu_platform":{"type":"string","description":"Optional. Specifies the minimum cpu platform for the Instance Group. See [Dataproc -\u003e Minimum CPU Platform](https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).","description_kind":"plain","optional":true,"computed":true},"num_instances":{"type":"number","description":"Optional. The number of VM instances in the instance group. For [HA cluster](/dataproc/docs/concepts/configuring-clusters/high-availability) [master_config](#FIELDS.master_config) groups, **must be set to 3**. For standard cluster [master_config](#FIELDS.master_config) groups, **must be set to 1**.","description_kind":"plain","optional":true},"preemptibility":{"type":"string","description":"Optional. Specifies the preemptibility of the instance group. The default value for master and worker groups is `NON_PREEMPTIBLE`. This default cannot be changed. The default value for secondary instances is `PREEMPTIBLE`. Possible values: PREEMPTIBILITY_UNSPECIFIED, NON_PREEMPTIBLE, PREEMPTIBLE","description_kind":"plain","optional":true}},"block_types":{"accelerators":{"nesting_mode":"list","block":{"attributes":{"accelerator_count":{"type":"number","description":"The number of the accelerator cards of this type exposed to this instance.","description_kind":"plain","optional":true},"accelerator_type":{"type":"string","description":"Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See [Compute Engine AcceleratorTypes](https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes). Examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `nvidia-tesla-k80` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, `nvidia-tesla-k80`.","description_kind":"plain","optional":true}},"description":"Optional. The Compute Engine accelerator configuration for these instances.","description_kind":"plain"}},"disk_config":{"nesting_mode":"list","block":{"attributes":{"boot_disk_size_gb":{"type":"number","description":"Optional. Size in GB of the boot disk (default is 500GB).","description_kind":"plain","optional":true},"boot_disk_type":{"type":"string","description":"Optional. Type of the boot disk (default is \"pd-standard\"). Valid values: \"pd-balanced\" (Persistent Disk Balanced Solid State Drive), \"pd-ssd\" (Persistent Disk Solid State Drive), or \"pd-standard\" (Persistent Disk Hard Disk Drive). See [Disk types](https://cloud.google.com/compute/docs/disks#disk-types).","description_kind":"plain","optional":true},"num_local_ssds":{"type":"number","description":"Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.","description_kind":"plain","optional":true,"computed":true}},"description":"Optional. Disk option config settings.","description_kind":"plain"},"max_items":1}},"description":"Optional. The Compute Engine config settings for the master instance in a cluster.","description_kind":"plain"},"max_items":1},"secondary_worker_config":{"nesting_mode":"list","block":{"attributes":{"image":{"type":"string","description":"Optional. The Compute Engine image resource used for cluster instances. The URI can represent an image or image family. Image examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id]` * `projects/[project_id]/global/images/[image-id]` * `image-id` Image family examples. Dataproc will use the most recent image from the family: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name]` * `projects/[project_id]/global/images/family/[custom-image-family-name]` If the URI is unspecified, it will be inferred from `SoftwareConfig.image_version` or the system default.","description_kind":"plain","optional":true},"instance_names":{"type":["list","string"],"description":"Output only. The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group.","description_kind":"plain","computed":true},"is_preemptible":{"type":"bool","description":"Output only. Specifies that this instance group contains preemptible instances.","description_kind":"plain","computed":true},"machine_type":{"type":"string","description":"Optional. The Compute Engine machine type used for cluster instances. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `n1-standard-2` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, `n1-standard-2`.","description_kind":"plain","optional":true},"managed_group_config":{"type":["list",["object",{"instance_group_manager_name":"string","instance_template_name":"string"}]],"description":"Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.","description_kind":"plain","computed":true},"min_cpu_platform":{"type":"string","description":"Optional. Specifies the minimum cpu platform for the Instance Group. See [Dataproc -\u003e Minimum CPU Platform](https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).","description_kind":"plain","optional":true,"computed":true},"num_instances":{"type":"number","description":"Optional. The number of VM instances in the instance group. For [HA cluster](/dataproc/docs/concepts/configuring-clusters/high-availability) [master_config](#FIELDS.master_config) groups, **must be set to 3**. For standard cluster [master_config](#FIELDS.master_config) groups, **must be set to 1**.","description_kind":"plain","optional":true},"preemptibility":{"type":"string","description":"Optional. Specifies the preemptibility of the instance group. The default value for master and worker groups is `NON_PREEMPTIBLE`. This default cannot be changed. The default value for secondary instances is `PREEMPTIBLE`. Possible values: PREEMPTIBILITY_UNSPECIFIED, NON_PREEMPTIBLE, PREEMPTIBLE","description_kind":"plain","optional":true}},"block_types":{"accelerators":{"nesting_mode":"list","block":{"attributes":{"accelerator_count":{"type":"number","description":"The number of the accelerator cards of this type exposed to this instance.","description_kind":"plain","optional":true},"accelerator_type":{"type":"string","description":"Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See [Compute Engine AcceleratorTypes](https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes). Examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `nvidia-tesla-k80` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, `nvidia-tesla-k80`.","description_kind":"plain","optional":true}},"description":"Optional. The Compute Engine accelerator configuration for these instances.","description_kind":"plain"}},"disk_config":{"nesting_mode":"list","block":{"attributes":{"boot_disk_size_gb":{"type":"number","description":"Optional. Size in GB of the boot disk (default is 500GB).","description_kind":"plain","optional":true},"boot_disk_type":{"type":"string","description":"Optional. Type of the boot disk (default is \"pd-standard\"). Valid values: \"pd-balanced\" (Persistent Disk Balanced Solid State Drive), \"pd-ssd\" (Persistent Disk Solid State Drive), or \"pd-standard\" (Persistent Disk Hard Disk Drive). See [Disk types](https://cloud.google.com/compute/docs/disks#disk-types).","description_kind":"plain","optional":true},"num_local_ssds":{"type":"number","description":"Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.","description_kind":"plain","optional":true,"computed":true}},"description":"Optional. Disk option config settings.","description_kind":"plain"},"max_items":1}},"description":"Optional. The Compute Engine config settings for additional worker instances in a cluster.","description_kind":"plain"},"max_items":1},"security_config":{"nesting_mode":"list","block":{"block_types":{"kerberos_config":{"nesting_mode":"list","block":{"attributes":{"cross_realm_trust_admin_server":{"type":"string","description":"Optional. The admin server (IP or hostname) for the remote trusted realm in a cross realm trust relationship.","description_kind":"plain","optional":true},"cross_realm_trust_kdc":{"type":"string","description":"Optional. The KDC (IP or hostname) for the remote trusted realm in a cross realm trust relationship.","description_kind":"plain","optional":true},"cross_realm_trust_realm":{"type":"string","description":"Optional. The remote realm the Dataproc on-cluster KDC will trust, should the user enable cross realm trust.","description_kind":"plain","optional":true},"cross_realm_trust_shared_password":{"type":"string","description":"Optional. The Cloud Storage URI of a KMS encrypted file containing the shared password between the on-cluster Kerberos realm and the remote trusted realm, in a cross realm trust relationship.","description_kind":"plain","optional":true},"enable_kerberos":{"type":"bool","description":"Optional. Flag to indicate whether to Kerberize the cluster (default: false). Set this field to true to enable Kerberos on a cluster.","description_kind":"plain","optional":true},"kdc_db_key":{"type":"string","description":"Optional. The Cloud Storage URI of a KMS encrypted file containing the master key of the KDC database.","description_kind":"plain","optional":true},"key_password":{"type":"string","description":"Optional. The Cloud Storage URI of a KMS encrypted file containing the password to the user provided key. For the self-signed certificate, this password is generated by Dataproc.","description_kind":"plain","optional":true},"keystore":{"type":"string","description":"Optional. The Cloud Storage URI of the keystore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.","description_kind":"plain","optional":true},"keystore_password":{"type":"string","description":"Optional. The Cloud Storage URI of a KMS encrypted file containing the password to the user provided keystore. For the self-signed certificate, this password is generated by Dataproc.","description_kind":"plain","optional":true},"kms_key":{"type":"string","description":"Optional. The uri of the KMS key used to encrypt various sensitive files.","description_kind":"plain","optional":true},"realm":{"type":"string","description":"Optional. The name of the on-cluster Kerberos realm. If not specified, the uppercased domain of hostnames will be the realm.","description_kind":"plain","optional":true},"root_principal_password":{"type":"string","description":"Optional. The Cloud Storage URI of a KMS encrypted file containing the root principal password.","description_kind":"plain","optional":true},"tgt_lifetime_hours":{"type":"number","description":"Optional. The lifetime of the ticket granting ticket, in hours. If not specified, or user specifies 0, then default value 10 will be used.","description_kind":"plain","optional":true},"truststore":{"type":"string","description":"Optional. The Cloud Storage URI of the truststore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.","description_kind":"plain","optional":true},"truststore_password":{"type":"string","description":"Optional. The Cloud Storage URI of a KMS encrypted file containing the password to the user provided truststore. For the self-signed certificate, this password is generated by Dataproc.","description_kind":"plain","optional":true}},"description":"Optional. Kerberos related configuration.","description_kind":"plain"},"max_items":1}},"description":"Optional. Security settings for the cluster.","description_kind":"plain"},"max_items":1},"software_config":{"nesting_mode":"list","block":{"attributes":{"image_version":{"type":"string","description":"Optional. The version of software inside the cluster. It must be one of the supported [Dataproc Versions](https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#supported_dataproc_versions), such as \"1.2\" (including a subminor version, such as \"1.2.29\"), or the [\"preview\" version](https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#other_versions). If unspecified, it defaults to the latest Debian version.","description_kind":"plain","optional":true},"optional_components":{"type":["list","string"],"description":"Optional. The set of components to activate on the cluster.","description_kind":"plain","optional":true},"properties":{"type":["map","string"],"description":"Optional. The properties to set on daemon config files. Property keys are specified in `prefix:property` format, for example `core:hadoop.tmp.dir`. The following are supported prefixes and their mappings: * capacity-scheduler: `capacity-scheduler.xml` * core: `core-site.xml` * distcp: `distcp-default.xml` * hdfs: `hdfs-site.xml` * hive: `hive-site.xml` * mapred: `mapred-site.xml` * pig: `pig.properties` * spark: `spark-defaults.conf` * yarn: `yarn-site.xml` For more information, see [Cluster properties](https://cloud.google.com/dataproc/docs/concepts/cluster-properties).","description_kind":"plain","optional":true}},"description":"Optional. The config settings for software inside the cluster.","description_kind":"plain"},"max_items":1},"worker_config":{"nesting_mode":"list","block":{"attributes":{"image":{"type":"string","description":"Optional. The Compute Engine image resource used for cluster instances. The URI can represent an image or image family. Image examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id]` * `projects/[project_id]/global/images/[image-id]` * `image-id` Image family examples. Dataproc will use the most recent image from the family: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name]` * `projects/[project_id]/global/images/family/[custom-image-family-name]` If the URI is unspecified, it will be inferred from `SoftwareConfig.image_version` or the system default.","description_kind":"plain","optional":true},"instance_names":{"type":["list","string"],"description":"Output only. The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group.","description_kind":"plain","computed":true},"is_preemptible":{"type":"bool","description":"Output only. Specifies that this instance group contains preemptible instances.","description_kind":"plain","computed":true},"machine_type":{"type":"string","description":"Optional. The Compute Engine machine type used for cluster instances. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `n1-standard-2` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, `n1-standard-2`.","description_kind":"plain","optional":true},"managed_group_config":{"type":["list",["object",{"instance_group_manager_name":"string","instance_template_name":"string"}]],"description":"Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.","description_kind":"plain","computed":true},"min_cpu_platform":{"type":"string","description":"Optional. Specifies the minimum cpu platform for the Instance Group. See [Dataproc -\u003e Minimum CPU Platform](https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).","description_kind":"plain","optional":true,"computed":true},"num_instances":{"type":"number","description":"Optional. The number of VM instances in the instance group. For [HA cluster](/dataproc/docs/concepts/configuring-clusters/high-availability) [master_config](#FIELDS.master_config) groups, **must be set to 3**. For standard cluster [master_config](#FIELDS.master_config) groups, **must be set to 1**.","description_kind":"plain","optional":true},"preemptibility":{"type":"string","description":"Optional. Specifies the preemptibility of the instance group. The default value for master and worker groups is `NON_PREEMPTIBLE`. This default cannot be changed. The default value for secondary instances is `PREEMPTIBLE`. Possible values: PREEMPTIBILITY_UNSPECIFIED, NON_PREEMPTIBLE, PREEMPTIBLE","description_kind":"plain","optional":true}},"block_types":{"accelerators":{"nesting_mode":"list","block":{"attributes":{"accelerator_count":{"type":"number","description":"The number of the accelerator cards of this type exposed to this instance.","description_kind":"plain","optional":true},"accelerator_type":{"type":"string","description":"Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See [Compute Engine AcceleratorTypes](https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes). Examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `nvidia-tesla-k80` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, `nvidia-tesla-k80`.","description_kind":"plain","optional":true}},"description":"Optional. The Compute Engine accelerator configuration for these instances.","description_kind":"plain"}},"disk_config":{"nesting_mode":"list","block":{"attributes":{"boot_disk_size_gb":{"type":"number","description":"Optional. Size in GB of the boot disk (default is 500GB).","description_kind":"plain","optional":true},"boot_disk_type":{"type":"string","description":"Optional. Type of the boot disk (default is \"pd-standard\"). Valid values: \"pd-balanced\" (Persistent Disk Balanced Solid State Drive), \"pd-ssd\" (Persistent Disk Solid State Drive), or \"pd-standard\" (Persistent Disk Hard Disk Drive). See [Disk types](https://cloud.google.com/compute/docs/disks#disk-types).","description_kind":"plain","optional":true},"num_local_ssds":{"type":"number","description":"Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.","description_kind":"plain","optional":true,"computed":true}},"description":"Optional. Disk option config settings.","description_kind":"plain"},"max_items":1}},"description":"Optional. The Compute Engine config settings for worker instances in a cluster.","description_kind":"plain"},"max_items":1}},"description":"Required. The cluster configuration.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"A cluster that is managed by the workflow.","description_kind":"plain"},"max_items":1}},"description":"Required. WorkflowTemplate scheduling information.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_datastore_index":{"version":0,"block":{"attributes":{"ancestor":{"type":"string","description":"Policy for including ancestors in the index. Default value: \"NONE\" Possible values: [\"NONE\", \"ALL_ANCESTORS\"]","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"index_id":{"type":"string","description":"The index id.","description_kind":"plain","computed":true},"kind":{"type":"string","description":"The entity kind which the index applies to.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"properties":{"nesting_mode":"list","block":{"attributes":{"direction":{"type":"string","description":"The direction the index should optimize for sorting. Possible values: [\"ASCENDING\", \"DESCENDING\"]","description_kind":"plain","required":true},"name":{"type":"string","description":"The property name to index.","description_kind":"plain","required":true}},"description":"An ordered list of properties to index on.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_deployment_manager_deployment":{"version":0,"block":{"attributes":{"create_policy":{"type":"string","description":"Set the policy to use for creating new resources. Only used on\ncreate and update. Valid values are 'CREATE_OR_ACQUIRE' (default) or\n'ACQUIRE'. If set to 'ACQUIRE' and resources do not already exist,\nthe deployment will fail. Note that updating this field does not\nactually affect the deployment, just how it is updated. Default value: \"CREATE_OR_ACQUIRE\" Possible values: [\"ACQUIRE\", \"CREATE_OR_ACQUIRE\"]","description_kind":"plain","optional":true},"delete_policy":{"type":"string","description":"Set the policy to use for deleting new resources on update/delete.\nValid values are 'DELETE' (default) or 'ABANDON'. If 'DELETE',\nresource is deleted after removal from Deployment Manager. If\n'ABANDON', the resource is only removed from Deployment Manager\nand is not actually deleted. Note that updating this field does not\nactually change the deployment, just how it is updated. Default value: \"DELETE\" Possible values: [\"ABANDON\", \"DELETE\"]","description_kind":"plain","optional":true},"deployment_id":{"type":"string","description":"Unique identifier for deployment. Output only.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Optional user-provided description of deployment.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"manifest":{"type":"string","description":"Output only. URL of the manifest representing the last manifest that\nwas successfully deployed.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Unique name for the deployment","description_kind":"plain","required":true},"preview":{"type":"bool","description":"If set to true, a deployment is created with \"shell\" resources\nthat are not actually instantiated. This allows you to preview a\ndeployment. It can be updated to false to actually deploy\nwith real resources.\n ~\u003e**NOTE:** Deployment Manager does not allow update\nof a deployment in preview (unless updating to preview=false). Thus,\nTerraform will force-recreate deployments if either preview is updated\nto true or if other fields are updated while preview is true.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"Output only. Server defined URL for the resource.","description_kind":"plain","computed":true}},"block_types":{"labels":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description":"Key for label.","description_kind":"plain","optional":true},"value":{"type":"string","description":"Value of label.","description_kind":"plain","optional":true}},"description":"Key-value pairs to apply to this labels.","description_kind":"plain"}},"target":{"nesting_mode":"list","block":{"block_types":{"config":{"nesting_mode":"list","block":{"attributes":{"content":{"type":"string","description":"The full YAML contents of your configuration file.","description_kind":"plain","required":true}},"description":"The root configuration file to use for this deployment.","description_kind":"plain"},"min_items":1,"max_items":1},"imports":{"nesting_mode":"list","block":{"attributes":{"content":{"type":"string","description":"The full contents of the template that you want to import.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the template to import, as declared in the YAML\nconfiguration.","description_kind":"plain","optional":true}},"description":"Specifies import files for this configuration. This can be\nused to import templates or other files. For example, you might\nimport a text file in order to use the file in a template.","description_kind":"plain"}}},"description":"Parameters that define your deployment, including the deployment\nconfiguration and relevant templates.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dialogflow_agent":{"version":0,"block":{"attributes":{"api_version":{"type":"string","description":"API version displayed in Dialogflow console. If not specified, V2 API is assumed. Clients are free to query\ndifferent service endpoints for different API versions. However, bots connectors and webhook calls will follow \nthe specified API version.\n* API_VERSION_V1: Legacy V1 API.\n* API_VERSION_V2: V2 API.\n* API_VERSION_V2_BETA_1: V2beta1 API. Possible values: [\"API_VERSION_V1\", \"API_VERSION_V2\", \"API_VERSION_V2_BETA_1\"]","description_kind":"plain","optional":true,"computed":true},"avatar_uri":{"type":"string","description":"The URI of the agent's avatar, which are used throughout the Dialogflow console. When an image URL is entered\ninto this field, the Dialogflow will save the image in the backend. The address of the backend image returned\nfrom the API will be shown in the [avatarUriBackend] field.","description_kind":"plain","optional":true},"avatar_uri_backend":{"type":"string","description":"The URI of the agent's avatar as returned from the API. Output only. To provide an image URL for the agent avatar,\nthe [avatarUri] field can be used.","description_kind":"plain","computed":true},"classification_threshold":{"type":"number","description":"To filter out false positive results and still get variety in matched natural language inputs for your agent,\nyou can tune the machine learning classification threshold. If the returned score value is less than the threshold\nvalue, then a fallback intent will be triggered or, if there are no fallback intents defined, no intent will be \ntriggered. The score values range from 0.0 (completely uncertain) to 1.0 (completely certain). If set to 0.0, the \ndefault of 0.3 is used.","description_kind":"plain","optional":true},"default_language_code":{"type":"string","description":"The default language of the agent as a language tag. [See Language Support](https://cloud.google.com/dialogflow/docs/reference/language) \nfor a list of the currently supported language codes. This field cannot be updated after creation.","description_kind":"plain","required":true},"description":{"type":"string","description":"The description of this agent. The maximum length is 500 characters. If exceeded, the request is rejected.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The name of this agent.","description_kind":"plain","required":true},"enable_logging":{"type":"bool","description":"Determines whether this agent should log conversation queries.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"match_mode":{"type":"string","description":"Determines how intents are detected from user queries.\n* MATCH_MODE_HYBRID: Best for agents with a small number of examples in intents and/or wide use of templates\nsyntax and composite entities.\n* MATCH_MODE_ML_ONLY: Can be used for agents with a large number of examples in intents, especially the ones\nusing @sys.any or very large developer entities. Possible values: [\"MATCH_MODE_HYBRID\", \"MATCH_MODE_ML_ONLY\"]","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"supported_language_codes":{"type":["list","string"],"description":"The list of all languages supported by this agent (except for the defaultLanguageCode).","description_kind":"plain","optional":true},"tier":{"type":"string","description":"The agent tier. If not specified, TIER_STANDARD is assumed.\n* TIER_STANDARD: Standard tier.\n* TIER_ENTERPRISE: Enterprise tier (Essentials).\n* TIER_ENTERPRISE_PLUS: Enterprise tier (Plus).\nNOTE: Due to consistency issues, the provider will not read this field from the API. Drift is possible between \nthe Terraform state and Dialogflow if the agent tier is changed outside of Terraform. Possible values: [\"TIER_STANDARD\", \"TIER_ENTERPRISE\", \"TIER_ENTERPRISE_PLUS\"]","description_kind":"plain","optional":true},"time_zone":{"type":"string","description":"The time zone of this agent from the [time zone database](https://www.iana.org/time-zones), e.g., America/New_York,\nEurope/Paris.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dialogflow_cx_agent":{"version":0,"block":{"attributes":{"avatar_uri":{"type":"string","description":"The URI of the agent's avatar. Avatars are used throughout the Dialogflow console and in the self-hosted Web Demo integration.","description_kind":"plain","optional":true},"default_language_code":{"type":"string","description":"The default language of the agent as a language tag. [See Language Support](https://cloud.google.com/dialogflow/cx/docs/reference/language) \nfor a list of the currently supported language codes. This field cannot be updated after creation.","description_kind":"plain","required":true},"description":{"type":"string","description":"The description of this agent. The maximum length is 500 characters. If exceeded, the request is rejected.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The human-readable name of the agent, unique within the location.","description_kind":"plain","required":true},"enable_spell_correction":{"type":"bool","description":"Indicates if automatic spell correction is enabled in detect intent requests.","description_kind":"plain","optional":true},"enable_stackdriver_logging":{"type":"bool","description":"Determines whether this agent should log conversation queries.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The name of the location this agent is located in.\n\n~\u003e **Note:** The first time you are deploying an Agent in your project you must configure location settings.\n This is a one time step but at the moment you can only [configure location settings](https://cloud.google.com/dialogflow/cx/docs/concept/region#location-settings) via the Dialogflow CX console.\n Another options is to use global location so you don't need to manually configure location settings.","description_kind":"plain","required":true},"name":{"type":"string","description":"The unique identifier of the agent.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_settings":{"type":"string","description":"Name of the SecuritySettings reference for the agent. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/securitySettings/\u003cSecurity Settings ID\u003e.","description_kind":"plain","optional":true},"start_flow":{"type":"string","description":"Name of the start flow in this agent. A start flow will be automatically created when the agent is created, and can only be deleted by deleting the agent. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.","description_kind":"plain","computed":true},"supported_language_codes":{"type":["list","string"],"description":"The list of all languages supported by this agent (except for the default_language_code).","description_kind":"plain","optional":true},"time_zone":{"type":"string","description":"The time zone of this agent from the [time zone database](https://www.iana.org/time-zones), e.g., America/New_York,\nEurope/Paris.","description_kind":"plain","required":true}},"block_types":{"speech_to_text_settings":{"nesting_mode":"list","block":{"attributes":{"enable_speech_adaptation":{"type":"bool","description":"Whether to use speech adaptation for speech recognition.","description_kind":"plain","optional":true}},"description":"Settings related to speech recognition.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dialogflow_cx_entity_type":{"version":0,"block":{"attributes":{"auto_expansion_mode":{"type":"string","description":"Represents kinds of entities.\n* AUTO_EXPANSION_MODE_UNSPECIFIED: Auto expansion disabled for the entity.\n* AUTO_EXPANSION_MODE_DEFAULT: Allows an agent to recognize values that have not been explicitly listed in the entity. Possible values: [\"AUTO_EXPANSION_MODE_DEFAULT\", \"AUTO_EXPANSION_MODE_UNSPECIFIED\"]","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The human-readable name of the entity type, unique within the agent.","description_kind":"plain","required":true},"enable_fuzzy_extraction":{"type":"bool","description":"Enables fuzzy entity extraction during classification.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kind":{"type":"string","description":"Indicates whether the entity type can be automatically expanded.\n* KIND_MAP: Map entity types allow mapping of a group of synonyms to a canonical value.\n* KIND_LIST: List entity types contain a set of entries that do not map to canonical values. However, list entity types can contain references to other entity types (with or without aliases).\n* KIND_REGEXP: Regexp entity types allow to specify regular expressions in entries values. Possible values: [\"KIND_MAP\", \"KIND_LIST\", \"KIND_REGEXP\"]","description_kind":"plain","required":true},"language_code":{"type":"string","description":"The language of the following fields in entityType:\nEntityType.entities.value\nEntityType.entities.synonyms\nEntityType.excluded_phrases.value\nIf not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The unique identifier of the entity type.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/entityTypes/\u003cEntity Type ID\u003e.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The agent to create a entity type for. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e.","description_kind":"plain","optional":true},"redact":{"type":"bool","description":"Indicates whether parameters of the entity type should be redacted in log. If redaction is enabled, page parameters and intent parameters referring to the entity type will be replaced by parameter name when logging.","description_kind":"plain","optional":true}},"block_types":{"entities":{"nesting_mode":"list","block":{"attributes":{"synonyms":{"type":["list","string"],"description":"A collection of value synonyms. For example, if the entity type is vegetable, and value is scallions, a synonym could be green onions.\nFor KIND_LIST entity types: This collection must contain exactly one synonym equal to value.","description_kind":"plain","optional":true},"value":{"type":"string","description":"The primary value associated with this entity entry. For example, if the entity type is vegetable, the value could be scallions.\nFor KIND_MAP entity types: A canonical value to be used in place of synonyms.\nFor KIND_LIST entity types: A string that can contain references to other entity types (with or without aliases).","description_kind":"plain","optional":true}},"description":"The collection of entity entries associated with the entity type.","description_kind":"plain"},"min_items":1},"excluded_phrases":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"string","description":"The word or phrase to be excluded.","description_kind":"plain","optional":true}},"description":"Collection of exceptional words and phrases that shouldn't be matched. For example, if you have a size entity type with entry giant(an adjective), you might consider adding giants(a noun) as an exclusion. \nIf the kind of entity type is KIND_MAP, then the phrases specified by entities and excluded phrases should be mutually exclusive.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dialogflow_cx_environment":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The human-readable description of the environment. The maximum length is 500 characters. If exceeded, the request is rejected.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The human-readable name of the environment (unique in an agent). Limit of 64 characters.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the environment.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The Agent to create an Environment for. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e.","description_kind":"plain","optional":true},"update_time":{"type":"string","description":"Update time of this environment. A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"version_configs":{"nesting_mode":"list","block":{"attributes":{"version":{"type":"string","description":"Format: projects/{{project}}/locations/{{location}}/agents/{{agent}}/flows/{{flow}}/versions/{{version}}.","description_kind":"plain","required":true}},"description":"A list of configurations for flow versions. You should include version configs for all flows that are reachable from [Start Flow][Agent.start_flow] in the agent. Otherwise, an error will be returned.","description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"google_dialogflow_cx_flow":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description of the flow. The maximum length is 500 characters. If exceeded, the request is rejected.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The human-readable name of the flow.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"language_code":{"type":"string","description":"The language of the following fields in flow:\nFlow.event_handlers.trigger_fulfillment.messages\nFlow.event_handlers.trigger_fulfillment.conditional_cases\nFlow.transition_routes.trigger_fulfillment.messages\nFlow.transition_routes.trigger_fulfillment.conditional_cases\nIf not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The unique identifier of the flow. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The agent to create a flow for. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e.","description_kind":"plain","optional":true},"transition_route_groups":{"type":["list","string"],"description":"A flow's transition route group serve two purposes:\nThey are responsible for matching the user's first utterances in the flow.\nThey are inherited by every page's [transition route groups][Page.transition_route_groups]. Transition route groups defined in the page have higher priority than those defined in the flow.\nFormat:projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/transitionRouteGroups/\u003cTransitionRouteGroup ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"event_handlers":{"nesting_mode":"list","block":{"attributes":{"event":{"type":"string","description":"The name of the event to handle.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The unique identifier of this event handler.","description_kind":"plain","computed":true},"target_flow":{"type":"string","description":"The target flow to transition to. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.","description_kind":"plain","optional":true},"target_page":{"type":"string","description":"The target page to transition to. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/pages/\u003cPage ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"trigger_fulfillment":{"nesting_mode":"list","block":{"attributes":{"return_partial_responses":{"type":"bool","description":"Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.","description_kind":"plain","optional":true},"tag":{"type":"string","description":"The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.","description_kind":"plain","optional":true},"webhook":{"type":"string","description":"The webhook to call. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/webhooks/\u003cWebhook ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"messages":{"nesting_mode":"list","block":{"block_types":{"text":{"nesting_mode":"list","block":{"attributes":{"allow_playback_interruption":{"type":"bool","description":"Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.","description_kind":"plain","computed":true},"text":{"type":["list","string"],"description":"A collection of text responses.","description_kind":"plain","optional":true}},"description":"The text response message.","description_kind":"plain"},"max_items":1}},"description":"The list of rich message responses to present to the user.","description_kind":"plain"}}},"description":"The fulfillment to call when the event occurs. Handling webhook errors with a fulfillment enabled with webhook could cause infinite loop. It is invalid to specify such fulfillment for a handler handling webhooks.","description_kind":"plain"},"max_items":1}},"description":"A flow's event handlers serve two purposes:\nThey are responsible for handling events (e.g. no match, webhook errors) in the flow.\nThey are inherited by every page's [event handlers][Page.event_handlers], which can be used to handle common events regardless of the current page. Event handlers defined in the page have higher priority than those defined in the flow.\nUnlike transitionRoutes, these handlers are evaluated on a first-match basis. The first one that matches the event get executed, with the rest being ignored.","description_kind":"plain"}},"nlu_settings":{"nesting_mode":"list","block":{"attributes":{"classification_threshold":{"type":"number","description":"To filter out false positive results and still get variety in matched natural language inputs for your agent, you can tune the machine learning classification threshold. \nIf the returned score value is less than the threshold value, then a no-match event will be triggered. The score values range from 0.0 (completely uncertain) to 1.0 (completely certain). If set to 0.0, the default of 0.3 is used.","description_kind":"plain","optional":true},"model_training_mode":{"type":"string","description":"Indicates NLU model training mode.\n* MODEL_TRAINING_MODE_AUTOMATIC: NLU model training is automatically triggered when a flow gets modified. User can also manually trigger model training in this mode.\n* MODEL_TRAINING_MODE_MANUAL: User needs to manually trigger NLU model training. Best for large flows whose models take long time to train. Possible values: [\"MODEL_TRAINING_MODE_AUTOMATIC\", \"MODEL_TRAINING_MODE_MANUAL\"]","description_kind":"plain","optional":true},"model_type":{"type":"string","description":"Indicates the type of NLU model.\n* MODEL_TYPE_STANDARD: Use standard NLU model.\n* MODEL_TYPE_ADVANCED: Use advanced NLU model. Possible values: [\"MODEL_TYPE_STANDARD\", \"MODEL_TYPE_ADVANCED\"]","description_kind":"plain","optional":true}},"description":"NLU related settings of the flow.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"transition_routes":{"nesting_mode":"list","block":{"attributes":{"condition":{"type":"string","description":"The condition to evaluate against form parameters or session parameters.\nAt least one of intent or condition must be specified. When both intent and condition are specified, the transition can only happen when both are fulfilled.","description_kind":"plain","optional":true},"intent":{"type":"string","description":"The unique identifier of an Intent. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/intents/\u003cIntent ID\u003e. Indicates that the transition can only happen when the given intent is matched. At least one of intent or condition must be specified. When both intent and condition are specified, the transition can only happen when both are fulfilled.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The unique identifier of this transition route.","description_kind":"plain","computed":true},"target_flow":{"type":"string","description":"The target flow to transition to. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.","description_kind":"plain","optional":true},"target_page":{"type":"string","description":"The target page to transition to. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/pages/\u003cPage ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"trigger_fulfillment":{"nesting_mode":"list","block":{"attributes":{"return_partial_responses":{"type":"bool","description":"Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.","description_kind":"plain","optional":true},"tag":{"type":"string","description":"The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.","description_kind":"plain","optional":true},"webhook":{"type":"string","description":"The webhook to call. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/webhooks/\u003cWebhook ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"messages":{"nesting_mode":"list","block":{"block_types":{"text":{"nesting_mode":"list","block":{"attributes":{"allow_playback_interruption":{"type":"bool","description":"Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.","description_kind":"plain","computed":true},"text":{"type":["list","string"],"description":"A collection of text responses.","description_kind":"plain","optional":true}},"description":"The text response message.","description_kind":"plain"},"max_items":1}},"description":"The list of rich message responses to present to the user.","description_kind":"plain"}}},"description":"The fulfillment to call when the condition is satisfied. At least one of triggerFulfillment and target must be specified. When both are defined, triggerFulfillment is executed first.","description_kind":"plain"},"max_items":1}},"description":"A flow's transition routes serve two purposes:\nThey are responsible for matching the user's first utterances in the flow.\nThey are inherited by every page's [transition routes][Page.transition_routes] and can support use cases such as the user saying \"help\" or \"can I talk to a human?\", which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow.\n \nTransitionRoutes are evalauted in the following order:\n TransitionRoutes with intent specified.\n TransitionRoutes with only condition specified.\n TransitionRoutes with intent specified are inherited by pages in the flow.","description_kind":"plain"}}},"description_kind":"plain"}},"google_dialogflow_cx_intent":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Human readable description for better understanding an intent like its scope, content, result etc. Maximum character limit: 140 characters.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The human-readable name of the intent, unique within the agent.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_fallback":{"type":"bool","description":"Indicates whether this is a fallback intent. Currently only default fallback intent is allowed in the agent, which is added upon agent creation. \nAdding training phrases to fallback intent is useful in the case of requests that are mistakenly matched, since training phrases assigned to fallback intents act as negative examples that triggers no-match event.","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"The key/value metadata to label an intent. Labels can contain lowercase letters, digits and the symbols '-' and '_'. International characters are allowed, including letters from unicase alphabets. Keys must start with a letter. Keys and values can be no longer than 63 characters and no more than 128 bytes.\nPrefix \"sys-\" is reserved for Dialogflow defined labels. Currently allowed Dialogflow defined labels include: * sys-head * sys-contextual The above labels do not require value. \"sys-head\" means the intent is a head intent. \"sys.contextual\" means the intent is a contextual intent.\nAn object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true},"language_code":{"type":"string","description":"The language of the following fields in intent:\nIntent.training_phrases.parts.text\nIf not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The unique identifier of the intent. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/intents/\u003cIntent ID\u003e.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The agent to create an intent for.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e.","description_kind":"plain","optional":true},"priority":{"type":"number","description":"The priority of this intent. Higher numbers represent higher priorities.\nIf the supplied value is unspecified or 0, the service translates the value to 500,000, which corresponds to the Normal priority in the console.\nIf the supplied value is negative, the intent is ignored in runtime detect intent requests.","description_kind":"plain","optional":true}},"block_types":{"parameters":{"nesting_mode":"list","block":{"attributes":{"entity_type":{"type":"string","description":"The entity type of the parameter. \nFormat: projects/-/locations/-/agents/-/entityTypes/\u003cSystem Entity Type ID\u003e for system entity types (for example, projects/-/locations/-/agents/-/entityTypes/sys.date), or projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/entityTypes/\u003cEntity Type ID\u003e for developer entity types.","description_kind":"plain","required":true},"id":{"type":"string","description":"The unique identifier of the parameter. This field is used by training phrases to annotate their parts.","description_kind":"plain","required":true},"is_list":{"type":"bool","description":"Indicates whether the parameter represents a list of values.","description_kind":"plain","optional":true},"redact":{"type":"bool","description":"Indicates whether the parameter content should be redacted in log. If redaction is enabled, the parameter content will be replaced by parameter name during logging. \nNote: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled.","description_kind":"plain","optional":true}},"description":"The collection of parameters associated with the intent.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"training_phrases":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description":"The unique identifier of the training phrase.","description_kind":"plain","computed":true},"repeat_count":{"type":"number","description":"Indicates how many times this example was added to the intent.","description_kind":"plain","optional":true}},"block_types":{"parts":{"nesting_mode":"list","block":{"attributes":{"parameter_id":{"type":"string","description":"The parameter used to annotate this part of the training phrase. This field is required for annotated parts of the training phrase.","description_kind":"plain","optional":true},"text":{"type":"string","description":"The text for this part.","description_kind":"plain","required":true}},"description":"The ordered list of training phrase parts. The parts are concatenated in order to form the training phrase.\nNote: The API does not automatically annotate training phrases like the Dialogflow Console does.\nNote: Do not forget to include whitespace at part boundaries, so the training phrase is well formatted when the parts are concatenated.\nIf the training phrase does not need to be annotated with parameters, you just need a single part with only the Part.text field set.\nIf you want to annotate the training phrase, you must create multiple parts, where the fields of each part are populated in one of two ways:\nPart.text is set to a part of the phrase that has no parameters.\nPart.text is set to a part of the phrase that you want to annotate, and the parameterId field is set.","description_kind":"plain"},"min_items":1}},"description":"The collection of training phrases the agent is trained on to identify the intent.","description_kind":"plain"}}},"description_kind":"plain"}},"google_dialogflow_cx_page":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"The human-readable name of the page, unique within the agent.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"language_code":{"type":"string","description":"The language of the following fields in page:\n\nPage.entry_fulfillment.messages\nPage.entry_fulfillment.conditional_cases\nPage.event_handlers.trigger_fulfillment.messages\nPage.event_handlers.trigger_fulfillment.conditional_cases\nPage.form.parameters.fill_behavior.initial_prompt_fulfillment.messages\nPage.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases\nPage.form.parameters.fill_behavior.reprompt_event_handlers.messages\nPage.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases\nPage.transition_routes.trigger_fulfillment.messages\nPage.transition_routes.trigger_fulfillment.conditional_cases\nIf not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The unique identifier of the page. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/pages/\u003cPage ID\u003e.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The flow to create a page for. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.","description_kind":"plain","optional":true},"transition_route_groups":{"type":["list","string"],"description":"Ordered list of TransitionRouteGroups associated with the page. Transition route groups must be unique within a page.\nIf multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -\u003e page's transition route group -\u003e flow's transition routes.\nIf multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence.\nFormat:projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/transitionRouteGroups/\u003cTransitionRouteGroup ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"entry_fulfillment":{"nesting_mode":"list","block":{"attributes":{"return_partial_responses":{"type":"bool","description":"Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.","description_kind":"plain","optional":true},"tag":{"type":"string","description":"The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.","description_kind":"plain","optional":true},"webhook":{"type":"string","description":"The webhook to call. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/webhooks/\u003cWebhook ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"messages":{"nesting_mode":"list","block":{"block_types":{"text":{"nesting_mode":"list","block":{"attributes":{"allow_playback_interruption":{"type":"bool","description":"Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.","description_kind":"plain","computed":true},"text":{"type":["list","string"],"description":"A collection of text responses.","description_kind":"plain","optional":true}},"description":"The text response message.","description_kind":"plain"},"max_items":1}},"description":"The list of rich message responses to present to the user.","description_kind":"plain"}}},"description":"The fulfillment to call when the session is entering the page.","description_kind":"plain"},"max_items":1},"event_handlers":{"nesting_mode":"list","block":{"attributes":{"event":{"type":"string","description":"The name of the event to handle.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The unique identifier of this event handler.","description_kind":"plain","computed":true},"target_flow":{"type":"string","description":"The target flow to transition to. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.","description_kind":"plain","optional":true},"target_page":{"type":"string","description":"The target page to transition to. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/pages/\u003cPage ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"trigger_fulfillment":{"nesting_mode":"list","block":{"attributes":{"return_partial_responses":{"type":"bool","description":"Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.","description_kind":"plain","optional":true},"tag":{"type":"string","description":"The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.","description_kind":"plain","optional":true},"webhook":{"type":"string","description":"The webhook to call. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/webhooks/\u003cWebhook ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"messages":{"nesting_mode":"list","block":{"block_types":{"text":{"nesting_mode":"list","block":{"attributes":{"allow_playback_interruption":{"type":"bool","description":"Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.","description_kind":"plain","computed":true},"text":{"type":["list","string"],"description":"A collection of text responses.","description_kind":"plain","optional":true}},"description":"The text response message.","description_kind":"plain"},"max_items":1}},"description":"The list of rich message responses to present to the user.","description_kind":"plain"}}},"description":"The fulfillment to call when the event occurs. Handling webhook errors with a fulfillment enabled with webhook could cause infinite loop. It is invalid to specify such fulfillment for a handler handling webhooks.","description_kind":"plain"},"max_items":1}},"description":"Handlers associated with the page to handle events such as webhook errors, no match or no input.","description_kind":"plain"}},"form":{"nesting_mode":"list","block":{"block_types":{"parameters":{"nesting_mode":"list","block":{"attributes":{"display_name":{"type":"string","description":"The human-readable name of the parameter, unique within the form.","description_kind":"plain","optional":true},"entity_type":{"type":"string","description":"The entity type of the parameter. \nFormat: projects/-/locations/-/agents/-/entityTypes/\u003cSystem Entity Type ID\u003e for system entity types (for example, projects/-/locations/-/agents/-/entityTypes/sys.date), or projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/entityTypes/\u003cEntity Type ID\u003e for developer entity types.","description_kind":"plain","optional":true},"is_list":{"type":"bool","description":"Indicates whether the parameter represents a list of values.","description_kind":"plain","optional":true},"redact":{"type":"bool","description":"Indicates whether the parameter content should be redacted in log. \nIf redaction is enabled, the parameter content will be replaced by parameter name during logging. Note: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled.","description_kind":"plain","optional":true},"required":{"type":"bool","description":"Indicates whether the parameter is required. Optional parameters will not trigger prompts; however, they are filled if the user specifies them. \nRequired parameters must be filled before form filling concludes.","description_kind":"plain","optional":true}},"block_types":{"fill_behavior":{"nesting_mode":"list","block":{"block_types":{"initial_prompt_fulfillment":{"nesting_mode":"list","block":{"attributes":{"return_partial_responses":{"type":"bool","description":"Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.","description_kind":"plain","optional":true},"tag":{"type":"string","description":"The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.","description_kind":"plain","optional":true},"webhook":{"type":"string","description":"The webhook to call. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/webhooks/\u003cWebhook ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"messages":{"nesting_mode":"list","block":{"block_types":{"text":{"nesting_mode":"list","block":{"attributes":{"allow_playback_interruption":{"type":"bool","description":"Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.","description_kind":"plain","computed":true},"text":{"type":["list","string"],"description":"A collection of text responses.","description_kind":"plain","optional":true}},"description":"The text response message.","description_kind":"plain"},"max_items":1}},"description":"The list of rich message responses to present to the user.","description_kind":"plain"}}},"description":"The fulfillment to provide the initial prompt that the agent can present to the user in order to fill the parameter.","description_kind":"plain"},"max_items":1}},"description":"Defines fill behavior for the parameter.","description_kind":"plain"},"max_items":1}},"description":"Parameters to collect from the user.","description_kind":"plain"}}},"description":"The form associated with the page, used for collecting parameters relevant to the page.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"transition_routes":{"nesting_mode":"list","block":{"attributes":{"condition":{"type":"string","description":"The condition to evaluate against form parameters or session parameters.\nAt least one of intent or condition must be specified. When both intent and condition are specified, the transition can only happen when both are fulfilled.","description_kind":"plain","optional":true},"intent":{"type":"string","description":"The unique identifier of an Intent. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/intents/\u003cIntent ID\u003e. Indicates that the transition can only happen when the given intent is matched. At least one of intent or condition must be specified. When both intent and condition are specified, the transition can only happen when both are fulfilled.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The unique identifier of this transition route.","description_kind":"plain","computed":true},"target_flow":{"type":"string","description":"The target flow to transition to. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.","description_kind":"plain","optional":true},"target_page":{"type":"string","description":"The target page to transition to. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/pages/\u003cPage ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"trigger_fulfillment":{"nesting_mode":"list","block":{"attributes":{"return_partial_responses":{"type":"bool","description":"Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.","description_kind":"plain","optional":true},"tag":{"type":"string","description":"The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.","description_kind":"plain","optional":true},"webhook":{"type":"string","description":"The webhook to call. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/webhooks/\u003cWebhook ID\u003e.","description_kind":"plain","optional":true}},"block_types":{"messages":{"nesting_mode":"list","block":{"block_types":{"text":{"nesting_mode":"list","block":{"attributes":{"allow_playback_interruption":{"type":"bool","description":"Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.","description_kind":"plain","computed":true},"text":{"type":["list","string"],"description":"A collection of text responses.","description_kind":"plain","optional":true}},"description":"The text response message.","description_kind":"plain"},"max_items":1}},"description":"The list of rich message responses to present to the user.","description_kind":"plain"}}},"description":"The fulfillment to call when the event occurs. Handling webhook errors with a fulfillment enabled with webhook could cause infinite loop. It is invalid to specify such fulfillment for a handler handling webhooks.","description_kind":"plain"},"max_items":1}},"description":"A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow.\nWhen we are in a certain page, the TransitionRoutes are evalauted in the following order:\nTransitionRoutes defined in the page with intent specified.\nTransitionRoutes defined in the transition route groups with intent specified.\nTransitionRoutes defined in flow with intent specified.\nTransitionRoutes defined in the transition route groups with intent specified.\nTransitionRoutes defined in the page with only condition specified.\nTransitionRoutes defined in the transition route groups with only condition specified.","description_kind":"plain"}}},"description_kind":"plain"}},"google_dialogflow_cx_version":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"description":{"type":"string","description":"The description of the version. The maximum length is 500 characters. If exceeded, the request is rejected.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The human-readable name of the version. Limit of 64 characters.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Format: projects//locations//agents//flows//versions/. Version ID is a self-increasing number generated by Dialogflow upon version creation.","description_kind":"plain","computed":true},"nlu_settings":{"type":["list",["object",{"classification_threshold":"number","model_training_mode":"string","model_type":"string"}]],"description":"The NLU settings of the flow at version creation.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The Flow to create an Version for. \nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.","description_kind":"plain","optional":true},"state":{"type":"string","description":"The state of this version.\n* RUNNING: Version is not ready to serve (e.g. training is running).\n* SUCCEEDED: Training has succeeded and this version is ready to serve.\n* FAILED: Version training failed.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dialogflow_entity_type":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"The name of this entity type to be displayed on the console.","description_kind":"plain","required":true},"enable_fuzzy_extraction":{"type":"bool","description":"Enables fuzzy entity extraction during classification.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kind":{"type":"string","description":"Indicates the kind of entity type.\n* KIND_MAP: Map entity types allow mapping of a group of synonyms to a reference value.\n* KIND_LIST: List entity types contain a set of entries that do not map to reference values. However, list entity\ntypes can contain references to other entity types (with or without aliases).\n* KIND_REGEXP: Regexp entity types allow to specify regular expressions in entries values. Possible values: [\"KIND_MAP\", \"KIND_LIST\", \"KIND_REGEXP\"]","description_kind":"plain","required":true},"name":{"type":"string","description":"The unique identifier of the entity type. \nFormat: projects/\u003cProject ID\u003e/agent/entityTypes/\u003cEntity type ID\u003e.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"entities":{"nesting_mode":"list","block":{"attributes":{"synonyms":{"type":["list","string"],"description":"A collection of value synonyms. For example, if the entity type is vegetable, and value is scallions, a synonym\ncould be green onions.\nFor KIND_LIST entity types:\n* This collection must contain exactly one synonym equal to value.","description_kind":"plain","required":true},"value":{"type":"string","description":"The primary value associated with this entity entry. For example, if the entity type is vegetable, the value\ncould be scallions.\nFor KIND_MAP entity types:\n* A reference value to be used in place of synonyms.\nFor KIND_LIST entity types:\n* A string that can contain references to other entity types (with or without aliases).","description_kind":"plain","required":true}},"description":"The collection of entity entries associated with the entity type.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dialogflow_fulfillment":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"The human-readable name of the fulfillment, unique within the agent.","description_kind":"plain","required":true},"enabled":{"type":"bool","description":"Whether fulfillment is enabled.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The unique identifier of the fulfillment. \nFormat: projects/\u003cProject ID\u003e/agent/fulfillment - projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agent/fulfillment","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"features":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description":"The type of the feature that enabled for fulfillment.\n* SMALLTALK: Fulfillment is enabled for SmallTalk. Possible values: [\"SMALLTALK\"]","description_kind":"plain","required":true}},"description":"The field defines whether the fulfillment is enabled for certain features.","description_kind":"plain"}},"generic_web_service":{"nesting_mode":"list","block":{"attributes":{"password":{"type":"string","description":"The password for HTTP Basic authentication.","description_kind":"plain","optional":true},"request_headers":{"type":["map","string"],"description":"The HTTP request headers to send together with fulfillment requests.","description_kind":"plain","optional":true},"uri":{"type":"string","description":"The fulfillment URI for receiving POST requests. It must use https protocol.","description_kind":"plain","required":true},"username":{"type":"string","description":"The user name for HTTP Basic authentication.","description_kind":"plain","optional":true}},"description":"Represents configuration for a generic web service. Dialogflow supports two mechanisms for authentications: - Basic authentication with username and password. - Authentication with additional authentication headers.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dialogflow_intent":{"version":0,"block":{"attributes":{"action":{"type":"string","description":"The name of the action associated with the intent.\nNote: The action name must not contain whitespaces.","description_kind":"plain","optional":true,"computed":true},"default_response_platforms":{"type":["list","string"],"description":"The list of platforms for which the first responses will be copied from the messages in PLATFORM_UNSPECIFIED\n(i.e. default platform). Possible values: [\"FACEBOOK\", \"SLACK\", \"TELEGRAM\", \"KIK\", \"SKYPE\", \"LINE\", \"VIBER\", \"ACTIONS_ON_GOOGLE\", \"GOOGLE_HANGOUTS\"]","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The name of this intent to be displayed on the console.","description_kind":"plain","required":true},"events":{"type":["list","string"],"description":"The collection of event names that trigger the intent. If the collection of input contexts is not empty, all of\nthe contexts must be present in the active user session for an event to trigger this intent. See the \n[events reference](https://cloud.google.com/dialogflow/docs/events-overview) for more details.","description_kind":"plain","optional":true},"followup_intent_info":{"type":["list",["object",{"followup_intent_name":"string","parent_followup_intent_name":"string"}]],"description":"Information about all followup intents that have this intent as a direct or indirect parent. We populate this field\nonly in the output.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"input_context_names":{"type":["list","string"],"description":"The list of context names required for this intent to be triggered.\nFormat: projects/\u003cProject ID\u003e/agent/sessions/-/contexts/\u003cContext ID\u003e.","description_kind":"plain","optional":true},"is_fallback":{"type":"bool","description":"Indicates whether this is a fallback intent.","description_kind":"plain","optional":true,"computed":true},"ml_disabled":{"type":"bool","description":"Indicates whether Machine Learning is disabled for the intent.\nNote: If mlDisabled setting is set to true, then this intent is not taken into account during inference in ML\nONLY match mode. Also, auto-markup in the UI is turned off.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The unique identifier of this intent. \nFormat: projects/\u003cProject ID\u003e/agent/intents/\u003cIntent ID\u003e.","description_kind":"plain","computed":true},"parent_followup_intent_name":{"type":"string","description":"The unique identifier of the parent intent in the chain of followup intents.\nFormat: projects/\u003cProject ID\u003e/agent/intents/\u003cIntent ID\u003e.","description_kind":"plain","optional":true,"computed":true},"priority":{"type":"number","description":"The priority of this intent. Higher numbers represent higher priorities.\n - If the supplied value is unspecified or 0, the service translates the value to 500,000, which corresponds\n to the Normal priority in the console.\n - If the supplied value is negative, the intent is ignored in runtime detect intent requests.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"reset_contexts":{"type":"bool","description":"Indicates whether to delete all contexts in the current session when this intent is matched.","description_kind":"plain","optional":true,"computed":true},"root_followup_intent_name":{"type":"string","description":"The unique identifier of the root intent in the chain of followup intents. It identifies the correct followup\nintents chain for this intent.\nFormat: projects/\u003cProject ID\u003e/agent/intents/\u003cIntent ID\u003e.","description_kind":"plain","computed":true},"webhook_state":{"type":"string","description":"Indicates whether webhooks are enabled for the intent.\n* WEBHOOK_STATE_ENABLED: Webhook is enabled in the agent and in the intent.\n* WEBHOOK_STATE_ENABLED_FOR_SLOT_FILLING: Webhook is enabled in the agent and in the intent. Also, each slot\nfilling prompt is forwarded to the webhook. Possible values: [\"WEBHOOK_STATE_ENABLED\", \"WEBHOOK_STATE_ENABLED_FOR_SLOT_FILLING\"]","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dns_managed_zone":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A textual description field. Defaults to 'Managed by Terraform'.","description_kind":"plain","optional":true},"dns_name":{"type":"string","description":"The DNS name of this managed zone, for instance \"example.com.\".","description_kind":"plain","required":true},"force_destroy":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to this ManagedZone.","description_kind":"plain","optional":true},"name":{"type":"string","description":"User assigned name for this resource.\nMust be unique within the project.","description_kind":"plain","required":true},"name_servers":{"type":["list","string"],"description":"Delegate your managed_zone to these virtual name servers;\ndefined by the server","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"visibility":{"type":"string","description":"The zone's visibility: public zones are exposed to the Internet,\nwhile private zones are visible only to Virtual Private Cloud resources. Default value: \"public\" Possible values: [\"private\", \"public\"]","description_kind":"plain","optional":true}},"block_types":{"dnssec_config":{"nesting_mode":"list","block":{"attributes":{"kind":{"type":"string","description":"Identifies what kind of resource this is","description_kind":"plain","optional":true},"non_existence":{"type":"string","description":"Specifies the mechanism used to provide authenticated denial-of-existence responses.\nnon_existence can only be updated when the state is 'off'. Possible values: [\"nsec\", \"nsec3\"]","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description":"Specifies whether DNSSEC is enabled, and what mode it is in Possible values: [\"off\", \"on\", \"transfer\"]","description_kind":"plain","optional":true}},"block_types":{"default_key_specs":{"nesting_mode":"list","block":{"attributes":{"algorithm":{"type":"string","description":"String mnemonic specifying the DNSSEC algorithm of this key Possible values: [\"ecdsap256sha256\", \"ecdsap384sha384\", \"rsasha1\", \"rsasha256\", \"rsasha512\"]","description_kind":"plain","optional":true},"key_length":{"type":"number","description":"Length of the keys in bits","description_kind":"plain","optional":true},"key_type":{"type":"string","description":"Specifies whether this is a key signing key (KSK) or a zone\nsigning key (ZSK). Key signing keys have the Secure Entry\nPoint flag set and, when active, will only be used to sign\nresource record sets of type DNSKEY. Zone signing keys do\nnot have the Secure Entry Point flag set and will be used\nto sign all other types of resource record sets. Possible values: [\"keySigning\", \"zoneSigning\"]","description_kind":"plain","optional":true},"kind":{"type":"string","description":"Identifies what kind of resource this is","description_kind":"plain","optional":true}},"description":"Specifies parameters that will be used for generating initial DnsKeys\nfor this ManagedZone. If you provide a spec for keySigning or zoneSigning,\nyou must also provide one for the other.\ndefault_key_specs can only be updated when the state is 'off'.","description_kind":"plain"}}},"description":"DNSSEC configuration","description_kind":"plain"},"max_items":1},"forwarding_config":{"nesting_mode":"list","block":{"block_types":{"target_name_servers":{"nesting_mode":"set","block":{"attributes":{"forwarding_path":{"type":"string","description":"Forwarding path for this TargetNameServer. If unset or 'default' Cloud DNS will make forwarding\ndecision based on address ranges, i.e. RFC1918 addresses go to the VPC, Non-RFC1918 addresses go\nto the Internet. When set to 'private', Cloud DNS will always send queries through VPC for this target Possible values: [\"default\", \"private\"]","description_kind":"plain","optional":true},"ipv4_address":{"type":"string","description":"IPv4 address of a target name server.","description_kind":"plain","required":true}},"description":"List of target name servers to forward to. Cloud DNS will\nselect the best available name server if more than\none target is given.","description_kind":"plain"},"min_items":1}},"description":"The presence for this field indicates that outbound forwarding is enabled\nfor this zone. The value of this field contains the set of destinations\nto forward to.","description_kind":"plain"},"max_items":1},"peering_config":{"nesting_mode":"list","block":{"block_types":{"target_network":{"nesting_mode":"list","block":{"attributes":{"network_url":{"type":"string","description":"The id or fully qualified URL of the VPC network to forward queries to.\nThis should be formatted like 'projects/{project}/global/networks/{network}' or\n'https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}'","description_kind":"plain","required":true}},"description":"The network with which to peer.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"The presence of this field indicates that DNS Peering is enabled for this\nzone. The value of this field contains the network to peer with.","description_kind":"plain"},"max_items":1},"private_visibility_config":{"nesting_mode":"list","block":{"block_types":{"networks":{"nesting_mode":"set","block":{"attributes":{"network_url":{"type":"string","description":"The id or fully qualified URL of the VPC network to bind to.\nThis should be formatted like 'projects/{project}/global/networks/{network}' or\n'https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}'","description_kind":"plain","required":true}},"description":"The list of VPC networks that can see this zone. Until the provider updates to use the Terraform 0.12 SDK in a future release, you\nmay experience issues with this resource while updating. If you've defined a 'networks' block and\nadd another 'networks' block while keeping the old block, Terraform will see an incorrect diff\nand apply an incorrect update to the resource. If you encounter this issue, remove all 'networks'\nblocks in an update and then apply another update adding all of them back simultaneously.","description_kind":"plain"},"min_items":1}},"description":"For privately visible zones, the set of Virtual Private Cloud\nresources that the zone is visible from.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dns_policy":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A textual description field. Defaults to 'Managed by Terraform'.","description_kind":"plain","optional":true},"enable_inbound_forwarding":{"type":"bool","description":"Allows networks bound to this policy to receive DNS queries sent\nby VMs or applications over VPN connections. When enabled, a\nvirtual IP address will be allocated from each of the sub-networks\nthat are bound to this policy.","description_kind":"plain","optional":true},"enable_logging":{"type":"bool","description":"Controls whether logging is enabled for the networks bound to this policy.\nDefaults to no logging if not set.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"User assigned name for this policy.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"alternative_name_server_config":{"nesting_mode":"list","block":{"block_types":{"target_name_servers":{"nesting_mode":"set","block":{"attributes":{"forwarding_path":{"type":"string","description":"Forwarding path for this TargetNameServer. If unset or 'default' Cloud DNS will make forwarding\ndecision based on address ranges, i.e. RFC1918 addresses go to the VPC, Non-RFC1918 addresses go\nto the Internet. When set to 'private', Cloud DNS will always send queries through VPC for this target Possible values: [\"default\", \"private\"]","description_kind":"plain","optional":true},"ipv4_address":{"type":"string","description":"IPv4 address to forward to.","description_kind":"plain","required":true}},"description":"Sets an alternative name server for the associated networks. When specified,\nall DNS queries are forwarded to a name server that you choose. Names such as .internal\nare not available when an alternative name server is specified.","description_kind":"plain"},"min_items":1}},"description":"Sets an alternative name server for the associated networks.\nWhen specified, all DNS queries are forwarded to a name server that you choose.\nNames such as .internal are not available when an alternative name server is specified.","description_kind":"plain"},"max_items":1},"networks":{"nesting_mode":"set","block":{"attributes":{"network_url":{"type":"string","description":"The id or fully qualified URL of the VPC network to forward queries to.\nThis should be formatted like 'projects/{project}/global/networks/{network}' or\n'https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}'","description_kind":"plain","required":true}},"description":"List of network names specifying networks to which this policy is applied.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_dns_record_set":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"managed_zone":{"type":"string","description":"The name of the zone in which this record set will reside.","description_kind":"plain","required":true},"name":{"type":"string","description":"The DNS name this record set will apply to.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"rrdatas":{"type":["list","string"],"description":"The string data for the records in this record set whose meaning depends on the DNS type. For TXT record, if the string data contains spaces, add surrounding \\\" if you don't want your string to get split on spaces. To specify a single record value longer than 255 characters such as a TXT record for DKIM, add \\\"\\\" inside the Terraform configuration string (e.g. \"first255characters\\\"\\\"morecharacters\").","description_kind":"plain","required":true},"ttl":{"type":"number","description":"The time-to-live of this record set (seconds).","description_kind":"plain","optional":true},"type":{"type":"string","description":"The DNS record set type.","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_endpoints_service":{"version":1,"block":{"attributes":{"apis":{"type":["list",["object",{"methods":["list",["object",{"name":"string","request_type":"string","response_type":"string","syntax":"string"}]],"name":"string","syntax":"string","version":"string"}]],"description":"A list of API objects.","description_kind":"plain","computed":true},"config_id":{"type":"string","description":"The autogenerated ID for the configuration that is rolled out as part of the creation of this resource. Must be provided to compute engine instances as a tag.","description_kind":"plain","computed":true},"dns_address":{"type":"string","description":"The address at which the service can be found - usually the same as the service name.","description_kind":"plain","computed":true},"endpoints":{"type":["list",["object",{"address":"string","name":"string"}]],"description":"A list of Endpoint objects.","description_kind":"plain","computed":true},"grpc_config":{"type":"string","description":"The full text of the Service Config YAML file (Example located here). If provided, must also provide protoc_output_base64. open_api config must not be provided.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"openapi_config":{"type":"string","description":"The full text of the OpenAPI YAML configuration as described here. Either this, or both of grpc_config and protoc_output_base64 must be specified.","description_kind":"plain","optional":true},"project":{"type":"string","description":"The project ID that the service belongs to. If not provided, provider project is used.","description_kind":"plain","optional":true,"computed":true},"protoc_output_base64":{"type":"string","description":"The full contents of the Service Descriptor File generated by protoc. This should be a compiled .pb file, base64-encoded.","description_kind":"plain","optional":true},"service_name":{"type":"string","description":"The name of the service. Usually of the form $apiname.endpoints.$projectid.cloud.goog.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_endpoints_service_consumers_iam_binding":{"version":0,"block":{"attributes":{"consumer_project":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_endpoints_service_consumers_iam_member":{"version":0,"block":{"attributes":{"consumer_project":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_endpoints_service_consumers_iam_policy":{"version":0,"block":{"attributes":{"consumer_project":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_endpoints_service_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_endpoints_service_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_endpoints_service_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_essential_contacts_contact":{"version":0,"block":{"attributes":{"email":{"type":"string","description":"The email address to send notifications to. This does not need to be a Google account.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"language_tag":{"type":"string","description":"The preferred language for notifications, as a ISO 639-1 language code. See Supported languages for a list of supported languages.","description_kind":"plain","required":true},"name":{"type":"string","description":"The identifier for the contact. Format: {resourceType}/{resource_id}/contacts/{contact_id}","description_kind":"plain","computed":true},"notification_category_subscriptions":{"type":["list","string"],"description":"The categories of notifications that the contact will receive communications for.","description_kind":"plain","required":true},"parent":{"type":"string","description":"The resource to save this contact for. Format: organizations/{organization_id}, folders/{folder_id} or projects/{project_id}","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_eventarc_trigger":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Output only. The creation time.","description_kind":"plain","computed":true},"etag":{"type":"string","description":"Output only. This checksum is computed by the server based on the value of other fields, and may be sent only on create requests to ensure the client has an up-to-date value before proceeding.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Optional. User labels attached to the triggers that can be used to group resources.","description_kind":"plain","optional":true},"location":{"type":"string","description":"The location for the resource","description_kind":"plain","required":true},"name":{"type":"string","description":"Required. The resource name of the trigger. Must be unique within the location on the project.","description_kind":"plain","required":true},"project":{"type":"string","description":"The project for the resource","description_kind":"plain","optional":true,"computed":true},"service_account":{"type":"string","description":"Optional. The IAM service account email associated with the trigger. The service account represents the identity of the trigger. The principal who calls this API must have `iam.serviceAccounts.actAs` permission in the service account. See https://cloud.google.com/iam/docs/understanding-service-accounts#sa_common for more information. For Cloud Run destinations, this service account is used to generate identity tokens when invoking the service. See https://cloud.google.com/run/docs/triggering/pubsub-push#create-service-account for information on how to invoke authenticated Cloud Run services. In order to create Audit Log triggers, the service account should also have `roles/eventarc.eventReceiver` IAM role.","description_kind":"plain","optional":true},"uid":{"type":"string","description":"Output only. Server assigned unique identifier for the trigger. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.","description_kind":"plain","computed":true},"update_time":{"type":"string","description":"Output only. The last-modified time.","description_kind":"plain","computed":true}},"block_types":{"destination":{"nesting_mode":"list","block":{"attributes":{"cloud_function":{"type":"string","description":"[WARNING] Configuring a Cloud Function in Trigger is not supported as of today. The Cloud Function resource name. Format: projects/{project}/locations/{location}/functions/{function}","description_kind":"plain","optional":true},"workflow":{"type":"string","description":"The resource name of the Workflow whose Executions are triggered by the events. The Workflow resource should be deployed in the same project as the trigger. Format: `projects/{project}/locations/{location}/workflows/{workflow}`","description_kind":"plain","optional":true}},"block_types":{"cloud_run_service":{"nesting_mode":"list","block":{"attributes":{"path":{"type":"string","description":"Optional. The relative path on the Cloud Run service the events should be sent to. The value must conform to the definition of URI path segment (section 3.3 of RFC2396). Examples: \"/route\", \"route\", \"route/subroute\".","description_kind":"plain","optional":true},"region":{"type":"string","description":"Required. The region the Cloud Run service is deployed in.","description_kind":"plain","optional":true,"computed":true},"service":{"type":"string","description":"Required. The name of the Cloud Run service being addressed. See https://cloud.google.com/run/docs/reference/rest/v1/namespaces.services. Only services located in the same project of the trigger object can be addressed.","description_kind":"plain","required":true}},"description":"Cloud Run fully-managed service that receives the events. The service should be running in the same project of the trigger.","description_kind":"plain"},"max_items":1},"gke":{"nesting_mode":"list","block":{"attributes":{"cluster":{"type":"string","description":"Required. The name of the cluster the GKE service is running in. The cluster must be running in the same project as the trigger being created.","description_kind":"plain","required":true},"location":{"type":"string","description":"Required. The name of the Google Compute Engine in which the cluster resides, which can either be compute zone (for example, us-central1-a) for the zonal clusters or region (for example, us-central1) for regional clusters.","description_kind":"plain","required":true},"namespace":{"type":"string","description":"Required. The namespace the GKE service is running in.","description_kind":"plain","required":true},"path":{"type":"string","description":"Optional. The relative path on the GKE service the events should be sent to. The value must conform to the definition of a URI path segment (section 3.3 of RFC2396). Examples: \"/route\", \"route\", \"route/subroute\".","description_kind":"plain","optional":true},"service":{"type":"string","description":"Required. Name of the GKE service.","description_kind":"plain","required":true}},"description":"A GKE service capable of receiving events. The service should be running in the same project as the trigger.","description_kind":"plain"},"max_items":1}},"description":"Required. Destination specifies where the events should be sent to.","description_kind":"plain"},"min_items":1,"max_items":1},"matching_criteria":{"nesting_mode":"set","block":{"attributes":{"attribute":{"type":"string","description":"Required. The name of a CloudEvents attribute. Currently, only a subset of attributes are supported for filtering. All triggers MUST provide a filter for the 'type' attribute.","description_kind":"plain","required":true},"operator":{"type":"string","description":"Optional. The operator used for matching the events with the value of the filter. If not specified, only events that have an exact key-value pair specified in the filter are matched. The only allowed value is `match-path-pattern`.","description_kind":"plain","optional":true},"value":{"type":"string","description":"Required. The value for the attribute.","description_kind":"plain","required":true}},"description":"Required. null The list of filters that applies to event attributes. Only events that match all the provided filters will be sent to the destination.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"transport":{"nesting_mode":"list","block":{"block_types":{"pubsub":{"nesting_mode":"list","block":{"attributes":{"subscription":{"type":"string","description":"Output only. The name of the Pub/Sub subscription created and managed by Eventarc system as a transport for the event delivery. Format: `projects/{PROJECT_ID}/subscriptions/{SUBSCRIPTION_NAME}`.","description_kind":"plain","computed":true},"topic":{"type":"string","description":"Optional. The name of the Pub/Sub topic created and managed by Eventarc system as a transport for the event delivery. Format: `projects/{PROJECT_ID}/topics/{TOPIC_NAME}. You may set an existing topic for triggers of the type google.cloud.pubsub.topic.v1.messagePublished` only. The topic you provide here will not be deleted by Eventarc at trigger deletion.","description_kind":"plain","optional":true}},"description":"The Pub/Sub topic and subscription used by Eventarc as delivery intermediary.","description_kind":"plain"},"max_items":1}},"description":"Optional. In order to deliver messages, Eventarc may use other GCP products as transport intermediary. This field contains a reference to that transport intermediary. This information can be used for debugging purposes.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_filestore_instance":{"version":1,"block":{"attributes":{"create_time":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A description of the instance.","description_kind":"plain","optional":true},"etag":{"type":"string","description":"Server-specified ETag for the instance resource to prevent\nsimultaneous updates from overwriting each other.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Resource labels to represent user-provided metadata.","description_kind":"plain","optional":true},"location":{"type":"string","description":"The name of the location of the instance. This can be a region for ENTERPRISE tier instances.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of the instance.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tier":{"type":"string","description":"The service tier of the instance.\nPossible values include: STANDARD, PREMIUM, BASIC_HDD, BASIC_SSD, HIGH_SCALE_SSD and ENTERPRISE (beta only)","description_kind":"plain","required":true},"zone":{"type":"string","description":"The name of the Filestore zone of the instance.","description_kind":"plain","deprecated":true,"optional":true,"computed":true}},"block_types":{"file_shares":{"nesting_mode":"list","block":{"attributes":{"capacity_gb":{"type":"number","description":"File share capacity in GiB. This must be at least 1024 GiB\nfor the standard tier, or 2560 GiB for the premium tier.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the fileshare (16 characters or less)","description_kind":"plain","required":true}},"description":"File system shares on the instance. For this version, only a\nsingle file share is supported.","description_kind":"plain"},"min_items":1,"max_items":1},"networks":{"nesting_mode":"list","block":{"attributes":{"ip_addresses":{"type":["list","string"],"description":"A list of IPv4 or IPv6 addresses.","description_kind":"plain","computed":true},"modes":{"type":["list","string"],"description":"IP versions for which the instance has\nIP addresses assigned. Possible values: [\"ADDRESS_MODE_UNSPECIFIED\", \"MODE_IPV4\", \"MODE_IPV6\"]","description_kind":"plain","required":true},"network":{"type":"string","description":"The name of the GCE VPC network to which the\ninstance is connected.","description_kind":"plain","required":true},"reserved_ip_range":{"type":"string","description":"A /29 CIDR block that identifies the range of IP\naddresses reserved for this instance.","description_kind":"plain","optional":true,"computed":true}},"description":"VPC networks to which the instance is connected. For this version,\nonly a single network is supported.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_firebaserules_release":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Output only. Time the release was created.","description_kind":"plain","computed":true},"disabled":{"type":"bool","description":"Disable the release to keep it from being served. The response code of NOT_FOUND will be given for executables generated from this Release.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Format: `projects/{project_id}/releases/{release_id}`","description_kind":"plain","required":true},"project":{"type":"string","description":"The project for the resource","description_kind":"plain","optional":true,"computed":true},"ruleset_name":{"type":"string","description":"Name of the `Ruleset` referred to by this `Release`. The `Ruleset` must exist the `Release` to be created.","description_kind":"plain","required":true},"update_time":{"type":"string","description":"Output only. Time the release was updated.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_firebaserules_ruleset":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Output only. Time the `Ruleset` was created.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":["list",["object",{"services":["list","string"]}]],"description":"Output only. The metadata for this ruleset.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Output only. Name of the `Ruleset`. The ruleset_id is auto generated by the service. Format: `projects/{project_id}/rulesets/{ruleset_id}`","description_kind":"plain","computed":true},"project":{"type":"string","description":"The project for the resource","description_kind":"plain","optional":true,"computed":true}},"block_types":{"source":{"nesting_mode":"list","block":{"attributes":{"language":{"type":"string","description":"`Language` of the `Source` bundle. If unspecified, the language will default to `FIREBASE_RULES`. Possible values: LANGUAGE_UNSPECIFIED, FIREBASE_RULES, EVENT_FLOW_TRIGGERS","description_kind":"plain","optional":true}},"block_types":{"files":{"nesting_mode":"list","block":{"attributes":{"content":{"type":"string","description":"Textual Content.","description_kind":"plain","required":true},"fingerprint":{"type":"string","description":"Fingerprint (e.g. github sha) associated with the `File`.","description_kind":"plain","optional":true},"name":{"type":"string","description":"File name.","description_kind":"plain","required":true}},"description":"`File` set constituting the `Source` bundle.","description_kind":"plain"},"min_items":1}},"description":"`Source` for the `Ruleset`.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_firestore_document":{"version":0,"block":{"attributes":{"collection":{"type":"string","description":"The collection ID, relative to database. For example: chatrooms or chatrooms/my-document/private-messages.","description_kind":"plain","required":true},"create_time":{"type":"string","description":"Creation timestamp in RFC3339 format.","description_kind":"plain","computed":true},"database":{"type":"string","description":"The Firestore database id. Defaults to '\"(default)\"'.","description_kind":"plain","optional":true},"document_id":{"type":"string","description":"The client-assigned document ID to use for this document during creation.","description_kind":"plain","required":true},"fields":{"type":"string","description":"The document's [fields](https://cloud.google.com/firestore/docs/reference/rest/v1/projects.databases.documents) formated as a json string.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"A server defined name for this index. Format:\n'projects/{{project_id}}/databases/{{database_id}}/documents/{{path}}/{{document_id}}'","description_kind":"plain","computed":true},"path":{"type":"string","description":"A relative path to the collection this document exists within","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"update_time":{"type":"string","description":"Last update timestamp in RFC3339 format.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_firestore_index":{"version":0,"block":{"attributes":{"collection":{"type":"string","description":"The collection being indexed.","description_kind":"plain","required":true},"database":{"type":"string","description":"The Firestore database id. Defaults to '\"(default)\"'.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"A server defined name for this index. Format:\n'projects/{{project}}/databases/{{database}}/collectionGroups/{{collection}}/indexes/{{server_generated_id}}'","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"query_scope":{"type":"string","description":"The scope at which a query is run. Default value: \"COLLECTION\" Possible values: [\"COLLECTION\", \"COLLECTION_GROUP\"]","description_kind":"plain","optional":true}},"block_types":{"fields":{"nesting_mode":"list","block":{"attributes":{"array_config":{"type":"string","description":"Indicates that this field supports operations on arrayValues. Only one of 'order' and 'arrayConfig' can\nbe specified. Possible values: [\"CONTAINS\"]","description_kind":"plain","optional":true},"field_path":{"type":"string","description":"Name of the field.","description_kind":"plain","optional":true},"order":{"type":"string","description":"Indicates that this field supports ordering by the specified order or comparing using =, \u003c, \u003c=, \u003e, \u003e=.\nOnly one of 'order' and 'arrayConfig' can be specified. Possible values: [\"ASCENDING\", \"DESCENDING\"]","description_kind":"plain","optional":true}},"description":"The fields supported by this index. The last field entry is always for\nthe field path '__name__'. If, on creation, '__name__' was not\nspecified as the last field, it will be added automatically with the\nsame direction as that of the last field defined. If the final field\nin a composite index is not directional, the '__name__' will be\nordered '\"ASCENDING\"' (unless explicitly specified otherwise).","description_kind":"plain"},"min_items":2},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_folder":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Timestamp when the Folder was created. Assigned by the server. A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"The folder's display name. A folder's display name must be unique amongst its siblings, e.g. no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters.","description_kind":"plain","required":true},"folder_id":{"type":"string","description":"The folder id from the name \"folders/{folder_id}\"","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifecycle_state":{"type":"string","description":"The lifecycle state of the folder such as ACTIVE or DELETE_REQUESTED.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The resource name of the Folder. Its format is folders/{folder_id}.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The resource name of the parent Folder or Organization. Must be of the form folders/{folder_id} or organizations/{org_id}.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_folder_access_approval_settings":{"version":0,"block":{"attributes":{"active_key_version":{"type":"string","description":"The asymmetric crypto key version to use for signing approval requests.\nEmpty active_key_version indicates that a Google-managed key should be used for signing.\nThis property will be ignored if set by an ancestor of the resource, and new non-empty values may not be set.","description_kind":"plain","optional":true},"ancestor_has_active_key_version":{"type":"bool","description":"If the field is true, that indicates that an ancestor of this Folder has set active_key_version.","description_kind":"plain","computed":true},"enrolled_ancestor":{"type":"bool","description":"If the field is true, that indicates that at least one service is enrolled for Access Approval in one or more ancestors of the Folder.","description_kind":"plain","computed":true},"folder_id":{"type":"string","description":"ID of the folder of the access approval settings.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"invalid_key_version":{"type":"bool","description":"If the field is true, that indicates that there is some configuration issue with the active_key_version\nconfigured on this Folder (e.g. it doesn't exist or the Access Approval service account doesn't have the\ncorrect permissions on it, etc.) This key version is not necessarily the effective key version at this level,\nas key versions are inherited top-down.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The resource name of the settings. Format is \"folders/{folder_id}/accessApprovalSettings\"","description_kind":"plain","computed":true},"notification_emails":{"type":["set","string"],"description":"A list of email addresses to which notifications relating to approval requests should be sent.\nNotifications relating to a resource will be sent to all emails in the settings of ancestor\nresources of that resource. A maximum of 50 email addresses are allowed.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"enrolled_services":{"nesting_mode":"set","block":{"attributes":{"cloud_product":{"type":"string","description":"The product for which Access Approval will be enrolled. Allowed values are listed (case-sensitive):\n * all\n * App Engine\n * BigQuery\n * Cloud Bigtable\n * Cloud Key Management Service\n * Compute Engine\n * Cloud Dataflow\n * Cloud Identity and Access Management\n * Cloud Pub/Sub\n * Cloud Storage\n * Persistent Disk\n\nNote: These values are supported as input, but considered a legacy format:\n * all\n * appengine.googleapis.com\n * bigquery.googleapis.com\n * bigtable.googleapis.com\n * cloudkms.googleapis.com\n * compute.googleapis.com\n * dataflow.googleapis.com\n * iam.googleapis.com\n * pubsub.googleapis.com\n * storage.googleapis.com","description_kind":"plain","required":true},"enrollment_level":{"type":"string","description":"The enrollment level of the service. Default value: \"BLOCK_ALL\" Possible values: [\"BLOCK_ALL\"]","description_kind":"plain","optional":true}},"description":"A list of Google Cloud Services for which the given resource has Access Approval enrolled.\nAccess requests for the resource given by name against any of these services contained here will be required\nto have explicit approval. Enrollment can only be done on an all or nothing basis.\n\nA maximum of 10 enrolled services will be enforced, to be expanded as the set of supported services is expanded.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_folder_iam_audit_config":{"version":0,"block":{"attributes":{"etag":{"type":"string","description":"The etag of iam policy","description_kind":"plain","computed":true},"folder":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service":{"type":"string","description":"Service which will be enabled for audit logging. The special value allServices covers all services.","description_kind":"plain","required":true}},"block_types":{"audit_log_config":{"nesting_mode":"set","block":{"attributes":{"exempted_members":{"type":["set","string"],"description":"Identities that do not cause logging for this type of permission. Each entry can have one of the following values:user:{emailid}: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com. serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. domain:{domain}: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.","description_kind":"plain","optional":true},"log_type":{"type":"string","description":"Permission type for which logging is to be configured. Must be one of DATA_READ, DATA_WRITE, or ADMIN_READ.","description_kind":"plain","required":true}},"description":"The configuration for logging of each type of permission. This can be specified multiple times.","description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"google_folder_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"folder":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_folder_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"folder":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_folder_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"folder":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_folder_organization_policy":{"version":0,"block":{"attributes":{"constraint":{"type":"string","description":"The name of the Constraint the Policy is configuring, for example, serviceuser.services.","description_kind":"plain","required":true},"etag":{"type":"string","description":"The etag of the organization policy. etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other.","description_kind":"plain","computed":true},"folder":{"type":"string","description":"The resource name of the folder to set the policy for. Its format is folders/{folder_id}.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"update_time":{"type":"string","description":"The timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds, representing when the variable was last updated. Example: \"2016-10-09T12:33:37.578138407Z\".","description_kind":"plain","computed":true},"version":{"type":"number","description":"Version of the Policy. Default version is 0.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"boolean_policy":{"nesting_mode":"list","block":{"attributes":{"enforced":{"type":"bool","description":"If true, then the Policy is enforced. If false, then any configuration is acceptable.","description_kind":"plain","required":true}},"description":"A boolean policy is a constraint that is either enforced or not.","description_kind":"plain"},"max_items":1},"list_policy":{"nesting_mode":"list","block":{"attributes":{"inherit_from_parent":{"type":"bool","description":"If set to true, the values from the effective Policy of the parent resource are inherited, meaning the values set in this Policy are added to the values inherited up the hierarchy.","description_kind":"plain","optional":true},"suggested_value":{"type":"string","description":"The Google Cloud Console will try to default to a configuration that matches the value specified in this field.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"allow":{"nesting_mode":"list","block":{"attributes":{"all":{"type":"bool","description":"The policy allows or denies all values.","description_kind":"plain","optional":true},"values":{"type":["set","string"],"description":"The policy can define specific values that are allowed or denied.","description_kind":"plain","optional":true}},"description":"One or the other must be set.","description_kind":"plain"},"max_items":1},"deny":{"nesting_mode":"list","block":{"attributes":{"all":{"type":"bool","description":"The policy allows or denies all values.","description_kind":"plain","optional":true},"values":{"type":["set","string"],"description":"The policy can define specific values that are allowed or denied.","description_kind":"plain","optional":true}},"description":"One or the other must be set.","description_kind":"plain"},"max_items":1}},"description":"A policy that can define specific values that are allowed or denied for the given constraint. It can also be used to allow or deny all values. ","description_kind":"plain"},"max_items":1},"restore_policy":{"nesting_mode":"list","block":{"attributes":{"default":{"type":"bool","description":"May only be set to true. If set, then the default Policy is restored.","description_kind":"plain","required":true}},"description":"A restore policy is a constraint to restore the default policy.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_game_services_game_server_cluster":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Required. The resource name of the game server cluster","description_kind":"plain","required":true},"description":{"type":"string","description":"Human readable description of the cluster.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The labels associated with this game server cluster. Each label is a\nkey-value pair.","description_kind":"plain","optional":true},"location":{"type":"string","description":"Location of the Cluster.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource id of the game server cluster, eg:\n\n'projects/{project_id}/locations/{location}/realms/{realm_id}/gameServerClusters/{cluster_id}'.\nFor example,\n\n'projects/my-project/locations/{location}/realms/zanzibar/gameServerClusters/my-onprem-cluster'.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"realm_id":{"type":"string","description":"The realm id of the game server realm.","description_kind":"plain","required":true}},"block_types":{"connection_info":{"nesting_mode":"list","block":{"attributes":{"namespace":{"type":"string","description":"Namespace designated on the game server cluster where the game server\ninstances will be created. The namespace existence will be validated\nduring creation.","description_kind":"plain","required":true}},"block_types":{"gke_cluster_reference":{"nesting_mode":"list","block":{"attributes":{"cluster":{"type":"string","description":"The full or partial name of a GKE cluster, using one of the following\nforms:\n\n* 'projects/{project_id}/locations/{location}/clusters/{cluster_id}'\n* 'locations/{location}/clusters/{cluster_id}'\n* '{cluster_id}'\n\nIf project and location are not specified, the project and location of the\nGameServerCluster resource are used to generate the full name of the\nGKE cluster.","description_kind":"plain","required":true}},"description":"Reference of the GKE cluster where the game servers are installed.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Game server cluster connection information. This information is used to\nmanage game server clusters.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_game_services_game_server_config":{"version":0,"block":{"attributes":{"config_id":{"type":"string","description":"A unique id for the deployment config.","description_kind":"plain","required":true},"deployment_id":{"type":"string","description":"A unique id for the deployment.","description_kind":"plain","required":true},"description":{"type":"string","description":"The description of the game server config.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The labels associated with this game server config. Each label is a\nkey-value pair.","description_kind":"plain","optional":true},"location":{"type":"string","description":"Location of the Deployment.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource name of the game server config, in the form:\n\n'projects/{project_id}/locations/{location}/gameServerDeployments/{deployment_id}/configs/{config_id}'.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"fleet_configs":{"nesting_mode":"list","block":{"attributes":{"fleet_spec":{"type":"string","description":"The fleet spec, which is sent to Agones to configure fleet.\nThe spec can be passed as inline json but it is recommended to use a file reference\ninstead. File references can contain the json or yaml format of the fleet spec. Eg:\n\n* fleet_spec = jsonencode(yamldecode(file(\"fleet_configs.yaml\")))\n* fleet_spec = file(\"fleet_configs.json\")\n\nThe format of the spec can be found :\n'https://agones.dev/site/docs/reference/fleet/'.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the FleetConfig.","description_kind":"plain","optional":true,"computed":true}},"description":"The fleet config contains list of fleet specs. In the Single Cloud, there\nwill be only one.","description_kind":"plain"},"min_items":1},"scaling_configs":{"nesting_mode":"list","block":{"attributes":{"fleet_autoscaler_spec":{"type":"string","description":"Fleet autoscaler spec, which is sent to Agones.\nExample spec can be found :\nhttps://agones.dev/site/docs/reference/fleetautoscaler/","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the ScalingConfig","description_kind":"plain","required":true}},"block_types":{"schedules":{"nesting_mode":"list","block":{"attributes":{"cron_job_duration":{"type":"string","description":"The duration for the cron job event. The duration of the event is effective\nafter the cron job's start time.\n\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true},"cron_spec":{"type":"string","description":"The cron definition of the scheduled event. See\nhttps://en.wikipedia.org/wiki/Cron. Cron spec specifies the local time as\ndefined by the realm.","description_kind":"plain","optional":true},"end_time":{"type":"string","description":"The end time of the event.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","optional":true},"start_time":{"type":"string","description":"The start time of the event.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","optional":true}},"description":"The schedules to which this scaling config applies.","description_kind":"plain"}},"selectors":{"nesting_mode":"list","block":{"attributes":{"labels":{"type":["map","string"],"description":"Set of labels to group by.","description_kind":"plain","optional":true}},"description":"Labels used to identify the clusters to which this scaling config\napplies. A cluster is subject to this scaling config if its labels match\nany of the selector entries.","description_kind":"plain"}}},"description":"Optional. This contains the autoscaling settings.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_game_services_game_server_deployment":{"version":0,"block":{"attributes":{"deployment_id":{"type":"string","description":"A unique id for the deployment.","description_kind":"plain","required":true},"description":{"type":"string","description":"Human readable description of the game server deployment.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The labels associated with this game server deployment. Each label is a\nkey-value pair.","description_kind":"plain","optional":true},"location":{"type":"string","description":"Location of the Deployment.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource id of the game server deployment, eg:\n\n'projects/{project_id}/locations/{location}/gameServerDeployments/{deployment_id}'.\nFor example,\n\n'projects/my-project/locations/{location}/gameServerDeployments/my-deployment'.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_game_services_game_server_deployment_rollout":{"version":0,"block":{"attributes":{"default_game_server_config":{"type":"string","description":"This field points to the game server config that is\napplied by default to all realms and clusters. For example,\n\n'projects/my-project/locations/global/gameServerDeployments/my-game/configs/my-config'.","description_kind":"plain","required":true},"deployment_id":{"type":"string","description":"The deployment to rollout the new config to. Only 1 rollout must be associated with each deployment.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource id of the game server deployment\n\neg: 'projects/my-project/locations/global/gameServerDeployments/my-deployment/rollout'.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"game_server_config_overrides":{"nesting_mode":"list","block":{"attributes":{"config_version":{"type":"string","description":"Version of the configuration.","description_kind":"plain","optional":true}},"block_types":{"realms_selector":{"nesting_mode":"list","block":{"attributes":{"realms":{"type":["list","string"],"description":"List of realms to match against.","description_kind":"plain","optional":true}},"description":"Selection by realms.","description_kind":"plain"},"max_items":1}},"description":"The game_server_config_overrides contains the per game server config\noverrides. The overrides are processed in the order they are listed. As\nsoon as a match is found for a cluster, the rest of the list is not\nprocessed.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_game_services_realm":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Human readable description of the realm.","description_kind":"plain","optional":true},"etag":{"type":"string","description":"ETag of the resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The labels associated with this realm. Each label is a key-value pair.","description_kind":"plain","optional":true},"location":{"type":"string","description":"Location of the Realm.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource id of the realm, of the form:\n'projects/{project_id}/locations/{location}/realms/{realm_id}'. For\nexample, 'projects/my-project/locations/{location}/realms/my-realm'.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"realm_id":{"type":"string","description":"GCP region of the Realm.","description_kind":"plain","required":true},"time_zone":{"type":"string","description":"Required. Time zone where all realm-specific policies are evaluated. The value of\nthis field must be from the IANA time zone database:\nhttps://www.iana.org/time-zones.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_gke_hub_membership":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Labels to apply to this membership.","description_kind":"plain","optional":true},"membership_id":{"type":"string","description":"The client-provided identifier of the membership.","description_kind":"plain","required":true},"name":{"type":"string","description":"The unique identifier of the membership.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"authority":{"nesting_mode":"list","block":{"attributes":{"issuer":{"type":"string","description":"A JSON Web Token (JWT) issuer URI. 'issuer' must start with 'https://' and // be a valid \nwith length \u003c2000 characters. For example: 'https://container.googleapis.com/v1/projects/my-project/locations/us-west1/clusters/my-cluster' (must be 'locations' rather than 'zones'). If the cluster is provisioned with Terraform, this is '\"https://container.googleapis.com/v1/${google_container_cluster.my-cluster.id}\"'.","description_kind":"plain","required":true}},"description":"Authority encodes how Google will recognize identities from this Membership.\nSee the workload identity documentation for more details:\nhttps://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity","description_kind":"plain"},"max_items":1},"endpoint":{"nesting_mode":"list","block":{"block_types":{"gke_cluster":{"nesting_mode":"list","block":{"attributes":{"resource_link":{"type":"string","description":"Self-link of the GCP resource for the GKE cluster.\nFor example: '//container.googleapis.com/projects/my-project/zones/us-west1-a/clusters/my-cluster'.\nIt can be at the most 1000 characters in length. If the cluster is provisioned with Terraform,\nthis can be '\"//container.googleapis.com/${google_container_cluster.my-cluster.id}\"' or\n'google_container_cluster.my-cluster.id'.","description_kind":"plain","required":true}},"description":"If this Membership is a Kubernetes API server hosted on GKE, this is a self link to its GCP resource.","description_kind":"plain"},"max_items":1}},"description":"If this Membership is a Kubernetes API server hosted on GKE, this is a self link to its GCP resource.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_healthcare_consent_store":{"version":0,"block":{"attributes":{"dataset":{"type":"string","description":"Identifies the dataset addressed by this request. Must be in the format\n'projects/{project}/locations/{location}/datasets/{dataset}'","description_kind":"plain","required":true},"default_consent_ttl":{"type":"string","description":"Default time to live for consents in this store. Must be at least 24 hours. Updating this field will not affect the expiration time of existing consents.\n\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true},"enable_consent_create_on_update":{"type":"bool","description":"If true, [consents.patch] [google.cloud.healthcare.v1.consent.UpdateConsent] creates the consent if it does not already exist.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"User-supplied key-value pairs used to organize Consent stores.\n\nLabel keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must\nconform to the following PCRE regular expression: '[\\p{Ll}\\p{Lo}][\\p{Ll}\\p{Lo}\\p{N}_-]{0,62}'\n\nLabel values are optional, must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128\nbytes, and must conform to the following PCRE regular expression: '[\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}'\n\nNo more than 64 labels can be associated with a given store.\n\nAn object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of this ConsentStore, for example:\n\"consent1\"","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_healthcare_consent_store_iam_binding":{"version":0,"block":{"attributes":{"consent_store_id":{"type":"string","description_kind":"plain","required":true},"dataset":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_healthcare_consent_store_iam_member":{"version":0,"block":{"attributes":{"consent_store_id":{"type":"string","description_kind":"plain","required":true},"dataset":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_healthcare_consent_store_iam_policy":{"version":0,"block":{"attributes":{"consent_store_id":{"type":"string","description_kind":"plain","required":true},"dataset":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_healthcare_dataset":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location for the Dataset.","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name for the Dataset.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"The fully qualified name of this dataset","description_kind":"plain","computed":true},"time_zone":{"type":"string","description":"The default timezone used by this dataset. Must be a either a valid IANA time zone name such as\n\"America/New_York\" or empty, which defaults to UTC. This is used for parsing times in resources\n(e.g., HL7 messages) where no explicit timezone is specified.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_healthcare_dataset_iam_binding":{"version":0,"block":{"attributes":{"dataset_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_healthcare_dataset_iam_member":{"version":0,"block":{"attributes":{"dataset_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_healthcare_dataset_iam_policy":{"version":0,"block":{"attributes":{"dataset_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_healthcare_dicom_store":{"version":0,"block":{"attributes":{"dataset":{"type":"string","description":"Identifies the dataset addressed by this request. Must be in the format\n'projects/{project}/locations/{location}/datasets/{dataset}'","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"User-supplied key-value pairs used to organize DICOM stores.\n\nLabel keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must\nconform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}][\\p{Ll}\\p{Lo}\\p{N}_-]{0,62}\n\nLabel values are optional, must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128\nbytes, and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}\n\nNo more than 64 labels can be associated with a given store.\n\nAn object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource name for the DicomStore.\n\n** Changing this property may recreate the Dicom store (removing all data) **","description_kind":"plain","required":true},"self_link":{"type":"string","description":"The fully qualified name of this dataset","description_kind":"plain","computed":true}},"block_types":{"notification_config":{"nesting_mode":"list","block":{"attributes":{"pubsub_topic":{"type":"string","description":"The Cloud Pub/Sub topic that notifications of changes are published on. Supplied by the client.\nPubsubMessage.Data will contain the resource name. PubsubMessage.MessageId is the ID of this message.\nIt is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message\nwas published. Notifications are only sent if the topic is non-empty. Topic names must be scoped to a\nproject. service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com must have publisher permissions on the given\nCloud Pub/Sub topic. Not having adequate permissions will cause the calls that send notifications to fail.","description_kind":"plain","required":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_healthcare_dicom_store_iam_binding":{"version":0,"block":{"attributes":{"dicom_store_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_healthcare_dicom_store_iam_member":{"version":0,"block":{"attributes":{"dicom_store_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_healthcare_dicom_store_iam_policy":{"version":0,"block":{"attributes":{"dicom_store_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_healthcare_fhir_store":{"version":0,"block":{"attributes":{"dataset":{"type":"string","description":"Identifies the dataset addressed by this request. Must be in the format\n'projects/{project}/locations/{location}/datasets/{dataset}'","description_kind":"plain","required":true},"disable_referential_integrity":{"type":"bool","description":"Whether to disable referential integrity in this FHIR store. This field is immutable after FHIR store\ncreation. The default value is false, meaning that the API will enforce referential integrity and fail the\nrequests that will result in inconsistent state in the FHIR store. When this field is set to true, the API\nwill skip referential integrity check. Consequently, operations that rely on references, such as\nPatient.get$everything, will not return all the results if broken references exist.\n\n** Changing this property may recreate the FHIR store (removing all data) **","description_kind":"plain","optional":true},"disable_resource_versioning":{"type":"bool","description":"Whether to disable resource versioning for this FHIR store. This field can not be changed after the creation\nof FHIR store. If set to false, which is the default behavior, all write operations will cause historical\nversions to be recorded automatically. The historical versions can be fetched through the history APIs, but\ncannot be updated. If set to true, no historical versions will be kept. The server will send back errors for\nattempts to read the historical versions.\n\n** Changing this property may recreate the FHIR store (removing all data) **","description_kind":"plain","optional":true},"enable_history_import":{"type":"bool","description":"Whether to allow the bulk import API to accept history bundles and directly insert historical resource\nversions into the FHIR store. Importing resource histories creates resource interactions that appear to have\noccurred in the past, which clients may not want to allow. If set to false, history bundles within an import\nwill fail with an error.\n\n** Changing this property may recreate the FHIR store (removing all data) **\n\n** This property can be changed manually in the Google Cloud Healthcare admin console without recreating the FHIR store **","description_kind":"plain","optional":true},"enable_update_create":{"type":"bool","description":"Whether this FHIR store has the updateCreate capability. This determines if the client can use an Update\noperation to create a new resource with a client-specified ID. If false, all IDs are server-assigned through\nthe Create operation and attempts to Update a non-existent resource will return errors. Please treat the audit\nlogs with appropriate levels of care if client-specified resource IDs contain sensitive data such as patient\nidentifiers, those IDs will be part of the FHIR resource path recorded in Cloud audit logs and Cloud Pub/Sub\nnotifications.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"User-supplied key-value pairs used to organize FHIR stores.\n\nLabel keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must\nconform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}][\\p{Ll}\\p{Lo}\\p{N}_-]{0,62}\n\nLabel values are optional, must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128\nbytes, and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}\n\nNo more than 64 labels can be associated with a given store.\n\nAn object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource name for the FhirStore.\n\n** Changing this property may recreate the FHIR store (removing all data) **","description_kind":"plain","required":true},"self_link":{"type":"string","description":"The fully qualified name of this dataset","description_kind":"plain","computed":true},"version":{"type":"string","description":"The FHIR specification version. Possible values: [\"DSTU2\", \"STU3\", \"R4\"]","description_kind":"plain","required":true}},"block_types":{"notification_config":{"nesting_mode":"list","block":{"attributes":{"pubsub_topic":{"type":"string","description":"The Cloud Pub/Sub topic that notifications of changes are published on. Supplied by the client.\nPubsubMessage.Data will contain the resource name. PubsubMessage.MessageId is the ID of this message.\nIt is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message\nwas published. Notifications are only sent if the topic is non-empty. Topic names must be scoped to a\nproject. service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com must have publisher permissions on the given\nCloud Pub/Sub topic. Not having adequate permissions will cause the calls that send notifications to fail.","description_kind":"plain","required":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"stream_configs":{"nesting_mode":"list","block":{"attributes":{"resource_types":{"type":["list","string"],"description":"Supply a FHIR resource type (such as \"Patient\" or \"Observation\"). See\nhttps://www.hl7.org/fhir/valueset-resource-types.html for a list of all FHIR resource types. The server treats\nan empty list as an intent to stream all the supported resource types in this FHIR store.","description_kind":"plain","optional":true}},"block_types":{"bigquery_destination":{"nesting_mode":"list","block":{"attributes":{"dataset_uri":{"type":"string","description":"BigQuery URI to a dataset, up to 2000 characters long, in the format bq://projectId.bqDatasetId","description_kind":"plain","required":true}},"block_types":{"schema_config":{"nesting_mode":"list","block":{"attributes":{"recursive_structure_depth":{"type":"number","description":"The depth for all recursive structures in the output analytics schema. For example, concept in the CodeSystem\nresource is a recursive structure; when the depth is 2, the CodeSystem table will have a column called\nconcept.concept but not concept.concept.concept. If not specified or set to 0, the server will use the default\nvalue 2. The maximum depth allowed is 5.","description_kind":"plain","required":true},"schema_type":{"type":"string","description":"Specifies the output schema type.\n * ANALYTICS: Analytics schema defined by the FHIR community.\n See https://github.com/FHIR/sql-on-fhir/blob/master/sql-on-fhir.md.\n * ANALYTICS_V2: Analytics V2, similar to schema defined by the FHIR community, with added support for extensions with one or more occurrences and contained resources in stringified JSON.\n * LOSSLESS: A data-driven schema generated from the fields present in the FHIR data being exported, with no additional simplification. Default value: \"ANALYTICS\" Possible values: [\"ANALYTICS\", \"ANALYTICS_V2\", \"LOSSLESS\"]","description_kind":"plain","optional":true}},"description":"The configuration for the exported BigQuery schema.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"The destination BigQuery structure that contains both the dataset location and corresponding schema config.\nThe output is organized in one table per resource type. The server reuses the existing tables (if any) that\nare named after the resource types, e.g. \"Patient\", \"Observation\". When there is no existing table for a given\nresource type, the server attempts to create one.\nSee the [streaming config reference](https://cloud.google.com/healthcare/docs/reference/rest/v1beta1/projects.locations.datasets.fhirStores#streamconfig) for more details.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"A list of streaming configs that configure the destinations of streaming export for every resource mutation in\nthis FHIR store. Each store is allowed to have up to 10 streaming configs. After a new config is added, the next\nresource mutation is streamed to the new location in addition to the existing ones. When a location is removed\nfrom the list, the server stops streaming to that location. Before adding a new config, you must add the required\nbigquery.dataEditor role to your project's Cloud Healthcare Service Agent service account. Some lag (typically on\nthe order of dozens of seconds) is expected before the results show up in the streaming destination.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_healthcare_fhir_store_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"fhir_store_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_healthcare_fhir_store_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"fhir_store_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_healthcare_fhir_store_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"fhir_store_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_healthcare_hl7_v2_store":{"version":0,"block":{"attributes":{"dataset":{"type":"string","description":"Identifies the dataset addressed by this request. Must be in the format\n'projects/{project}/locations/{location}/datasets/{dataset}'","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"User-supplied key-value pairs used to organize HL7v2 stores.\n\nLabel keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must\nconform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}][\\p{Ll}\\p{Lo}\\p{N}_-]{0,62}\n\nLabel values are optional, must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128\nbytes, and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}\n\nNo more than 64 labels can be associated with a given store.\n\nAn object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource name for the Hl7V2Store.\n\n** Changing this property may recreate the Hl7v2 store (removing all data) **","description_kind":"plain","required":true},"self_link":{"type":"string","description":"The fully qualified name of this dataset","description_kind":"plain","computed":true}},"block_types":{"notification_config":{"nesting_mode":"list","block":{"attributes":{"pubsub_topic":{"type":"string","description":"The Cloud Pub/Sub topic that notifications of changes are published on. Supplied by the client.\nPubsubMessage.Data will contain the resource name. PubsubMessage.MessageId is the ID of this message.\nIt is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message\nwas published. Notifications are only sent if the topic is non-empty. Topic names must be scoped to a\nproject. service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com must have publisher permissions on the given\nCloud Pub/Sub topic. Not having adequate permissions will cause the calls that send notifications to fail.","description_kind":"plain","required":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"notification_configs":{"nesting_mode":"list","block":{"attributes":{"filter":{"type":"string","description":"Restricts notifications sent for messages matching a filter. If this is empty, all messages\nare matched. Syntax: https://cloud.google.com/appengine/docs/standard/python/search/query_strings\n\nFields/functions available for filtering are:\n\n* messageType, from the MSH-9.1 field. For example, NOT messageType = \"ADT\".\n* send_date or sendDate, the YYYY-MM-DD date the message was sent in the dataset's timeZone, from the MSH-7 segment. For example, send_date \u003c \"2017-01-02\".\n* sendTime, the timestamp when the message was sent, using the RFC3339 time format for comparisons, from the MSH-7 segment. For example, sendTime \u003c \"2017-01-02T00:00:00-05:00\".\n* sendFacility, the care center that the message came from, from the MSH-4 segment. For example, sendFacility = \"ABC\".\n* PatientId(value, type), which matches if the message lists a patient having an ID of the given value and type in the PID-2, PID-3, or PID-4 segments. For example, PatientId(\"123456\", \"MRN\").\n* labels.x, a string value of the label with key x as set using the Message.labels map. For example, labels.\"priority\"=\"high\". The operator :* can be used to assert the existence of a label. For example, labels.\"priority\":*.","description_kind":"plain","optional":true},"pubsub_topic":{"type":"string","description":"The Cloud Pub/Sub topic that notifications of changes are published on. Supplied by the client.\nPubsubMessage.Data will contain the resource name. PubsubMessage.MessageId is the ID of this message.\nIt is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message\nwas published. Notifications are only sent if the topic is non-empty. Topic names must be scoped to a\nproject. service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com must have publisher permissions on the given\nCloud Pub/Sub topic. Not having adequate permissions will cause the calls that send notifications to fail.\n\nIf a notification cannot be published to Cloud Pub/Sub, errors will be logged to Stackdriver","description_kind":"plain","required":true}},"description":"A list of notification configs. Each configuration uses a filter to determine whether to publish a\nmessage (both Ingest \u0026 Create) on the corresponding notification destination. Only the message name\nis sent as part of the notification. Supplied by the client.","description_kind":"plain"}},"parser_config":{"nesting_mode":"list","block":{"attributes":{"allow_null_header":{"type":"bool","description":"Determines whether messages with no header are allowed.","description_kind":"plain","optional":true},"schema":{"type":"string","description":"JSON encoded string for schemas used to parse messages in this\nstore if schematized parsing is desired.","description_kind":"plain","optional":true},"segment_terminator":{"type":"string","description":"Byte(s) to be used as the segment terminator. If this is unset, '\\r' will be used as segment terminator.\n\nA base64-encoded string.","description_kind":"plain","optional":true},"version":{"type":"string","description":"The version of the unschematized parser to be used when a custom 'schema' is not set. Default value: \"V1\" Possible values: [\"V1\", \"V2\", \"V3\"]","description_kind":"plain","optional":true}},"description":"A nested object resource","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_healthcare_hl7_v2_store_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"hl7_v2_store_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_healthcare_hl7_v2_store_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"hl7_v2_store_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_healthcare_hl7_v2_store_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"hl7_v2_store_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_iap_app_engine_service_iam_binding":{"version":0,"block":{"attributes":{"app_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_app_engine_service_iam_member":{"version":0,"block":{"attributes":{"app_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_app_engine_service_iam_policy":{"version":0,"block":{"attributes":{"app_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_iap_app_engine_version_iam_binding":{"version":0,"block":{"attributes":{"app_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"service":{"type":"string","description_kind":"plain","required":true},"version_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_app_engine_version_iam_member":{"version":0,"block":{"attributes":{"app_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"service":{"type":"string","description_kind":"plain","required":true},"version_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_app_engine_version_iam_policy":{"version":0,"block":{"attributes":{"app_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service":{"type":"string","description_kind":"plain","required":true},"version_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_iap_brand":{"version":0,"block":{"attributes":{"application_title":{"type":"string","description":"Application name displayed on OAuth consent screen.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Output only. Identifier of the brand, in the format\n'projects/{project_number}/brands/{brand_id}'. NOTE: The brand\nidentification corresponds to the project number as only one\nbrand per project can be created.","description_kind":"plain","computed":true},"org_internal_only":{"type":"bool","description":"Whether the brand is only intended for usage inside the GSuite organization only.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"support_email":{"type":"string","description":"Support email displayed on the OAuth consent screen. Can be either a\nuser or group email. When a user email is specified, the caller must\nbe the user with the associated email address. When a group email is\nspecified, the caller can be either a user or a service account which\nis an owner of the specified group in Cloud Identity.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_iap_client":{"version":0,"block":{"attributes":{"brand":{"type":"string","description":"Identifier of the brand to which this client\nis attached to. The format is\n'projects/{project_number}/brands/{brand_id}/identityAwareProxyClients/{client_id}'.","description_kind":"plain","required":true},"client_id":{"type":"string","description":"Output only. Unique identifier of the OAuth client.","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"Human-friendly name given to the OAuth client.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secret":{"type":"string","description":"Output only. Client secret of the OAuth client.","description_kind":"plain","computed":true,"sensitive":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_iap_tunnel_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_tunnel_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_tunnel_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_iap_tunnel_instance_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_tunnel_instance_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_tunnel_instance_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_iap_web_backend_service_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"web_backend_service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_web_backend_service_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"web_backend_service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_web_backend_service_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"web_backend_service":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_iap_web_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_web_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_web_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_iap_web_type_app_engine_iam_binding":{"version":0,"block":{"attributes":{"app_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_web_type_app_engine_iam_member":{"version":0,"block":{"attributes":{"app_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_web_type_app_engine_iam_policy":{"version":0,"block":{"attributes":{"app_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_iap_web_type_compute_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_web_type_compute_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_iap_web_type_compute_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_identity_platform_default_supported_idp_config":{"version":0,"block":{"attributes":{"client_id":{"type":"string","description":"OAuth client ID","description_kind":"plain","required":true},"client_secret":{"type":"string","description":"OAuth client secret","description_kind":"plain","required":true},"enabled":{"type":"bool","description":"If this IDP allows the user to sign in","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"idp_id":{"type":"string","description":"ID of the IDP. Possible values include:\n\n* 'apple.com'\n\n* 'facebook.com'\n\n* 'gc.apple.com'\n\n* 'github.com'\n\n* 'google.com'\n\n* 'linkedin.com'\n\n* 'microsoft.com'\n\n* 'playgames.google.com'\n\n* 'twitter.com'\n\n* 'yahoo.com'","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the DefaultSupportedIdpConfig resource","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_identity_platform_inbound_saml_config":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Human friendly display name.","description_kind":"plain","required":true},"enabled":{"type":"bool","description":"If this config allows users to sign in with the provider.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the InboundSamlConfig resource. Must start with 'saml.' and can only have alphanumeric characters,\nhyphens, underscores or periods. The part after 'saml.' must also start with a lowercase letter, end with an\nalphanumeric character, and have at least 2 characters.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"idp_config":{"nesting_mode":"list","block":{"attributes":{"idp_entity_id":{"type":"string","description":"Unique identifier for all SAML entities","description_kind":"plain","required":true},"sign_request":{"type":"bool","description":"Indicates if outbounding SAMLRequest should be signed.","description_kind":"plain","optional":true},"sso_url":{"type":"string","description":"URL to send Authentication request to.","description_kind":"plain","required":true}},"block_types":{"idp_certificates":{"nesting_mode":"list","block":{"attributes":{"x509_certificate":{"type":"string","description":"The IdP's x509 certificate.","description_kind":"plain","optional":true}},"description":"The IdP's certificate data to verify the signature in the SAMLResponse issued by the IDP.","description_kind":"plain"},"min_items":1}},"description":"SAML IdP configuration when the project acts as the relying party","description_kind":"plain"},"min_items":1,"max_items":1},"sp_config":{"nesting_mode":"list","block":{"attributes":{"callback_uri":{"type":"string","description":"Callback URI where responses from IDP are handled. Must start with 'https://'.","description_kind":"plain","optional":true},"sp_certificates":{"type":["list",["object",{"x509_certificate":"string"}]],"description":"The IDP's certificate data to verify the signature in the SAMLResponse issued by the IDP.","description_kind":"plain","computed":true},"sp_entity_id":{"type":"string","description":"Unique identifier for all SAML entities.","description_kind":"plain","optional":true}},"description":"SAML SP (Service Provider) configuration when the project acts as the relying party to receive\nand accept an authentication assertion issued by a SAML identity provider.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_identity_platform_oauth_idp_config":{"version":0,"block":{"attributes":{"client_id":{"type":"string","description":"The client id of an OAuth client.","description_kind":"plain","required":true},"client_secret":{"type":"string","description":"The client secret of the OAuth client, to enable OIDC code flow.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"Human friendly display name.","description_kind":"plain","optional":true},"enabled":{"type":"bool","description":"If this config allows users to sign in with the provider.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"issuer":{"type":"string","description":"For OIDC Idps, the issuer identifier.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the OauthIdpConfig. Must start with 'oidc.'.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_identity_platform_tenant":{"version":0,"block":{"attributes":{"allow_password_signup":{"type":"bool","description":"Whether to allow email/password user authentication.","description_kind":"plain","optional":true},"disable_auth":{"type":"bool","description":"Whether authentication is disabled for the tenant. If true, the users under\nthe disabled tenant are not allowed to sign-in. Admins of the disabled tenant\nare not able to manage its users.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"Human friendly display name of the tenant.","description_kind":"plain","required":true},"enable_email_link_signin":{"type":"bool","description":"Whether to enable email link user authentication.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the tenant that is generated by the server","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_identity_platform_tenant_default_supported_idp_config":{"version":0,"block":{"attributes":{"client_id":{"type":"string","description":"OAuth client ID","description_kind":"plain","required":true},"client_secret":{"type":"string","description":"OAuth client secret","description_kind":"plain","required":true},"enabled":{"type":"bool","description":"If this IDP allows the user to sign in","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"idp_id":{"type":"string","description":"ID of the IDP. Possible values include:\n\n* 'apple.com'\n\n* 'facebook.com'\n\n* 'gc.apple.com'\n\n* 'github.com'\n\n* 'google.com'\n\n* 'linkedin.com'\n\n* 'microsoft.com'\n\n* 'playgames.google.com'\n\n* 'twitter.com'\n\n* 'yahoo.com'","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the default supported IDP config resource","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant":{"type":"string","description":"The name of the tenant where this DefaultSupportedIdpConfig resource exists","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_identity_platform_tenant_inbound_saml_config":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Human friendly display name.","description_kind":"plain","required":true},"enabled":{"type":"bool","description":"If this config allows users to sign in with the provider.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the InboundSamlConfig resource. Must start with 'saml.' and can only have alphanumeric characters,\nhyphens, underscores or periods. The part after 'saml.' must also start with a lowercase letter, end with an\nalphanumeric character, and have at least 2 characters.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant":{"type":"string","description":"The name of the tenant where this inbound SAML config resource exists","description_kind":"plain","required":true}},"block_types":{"idp_config":{"nesting_mode":"list","block":{"attributes":{"idp_entity_id":{"type":"string","description":"Unique identifier for all SAML entities","description_kind":"plain","required":true},"sign_request":{"type":"bool","description":"Indicates if outbounding SAMLRequest should be signed.","description_kind":"plain","optional":true},"sso_url":{"type":"string","description":"URL to send Authentication request to.","description_kind":"plain","required":true}},"block_types":{"idp_certificates":{"nesting_mode":"list","block":{"attributes":{"x509_certificate":{"type":"string","description":"The x509 certificate","description_kind":"plain","optional":true}},"description":"The IDP's certificate data to verify the signature in the SAMLResponse issued by the IDP.","description_kind":"plain"},"min_items":1}},"description":"SAML IdP configuration when the project acts as the relying party","description_kind":"plain"},"min_items":1,"max_items":1},"sp_config":{"nesting_mode":"list","block":{"attributes":{"callback_uri":{"type":"string","description":"Callback URI where responses from IDP are handled. Must start with 'https://'.","description_kind":"plain","required":true},"sp_certificates":{"type":["list",["object",{"x509_certificate":"string"}]],"description":"The IDP's certificate data to verify the signature in the SAMLResponse issued by the IDP.","description_kind":"plain","computed":true},"sp_entity_id":{"type":"string","description":"Unique identifier for all SAML entities.","description_kind":"plain","required":true}},"description":"SAML SP (Service Provider) configuration when the project acts as the relying party to receive\nand accept an authentication assertion issued by a SAML identity provider.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_identity_platform_tenant_oauth_idp_config":{"version":0,"block":{"attributes":{"client_id":{"type":"string","description":"The client id of an OAuth client.","description_kind":"plain","required":true},"client_secret":{"type":"string","description":"The client secret of the OAuth client, to enable OIDC code flow.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"Human friendly display name.","description_kind":"plain","required":true},"enabled":{"type":"bool","description":"If this config allows users to sign in with the provider.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"issuer":{"type":"string","description":"For OIDC Idps, the issuer identifier.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the OauthIdpConfig. Must start with 'oidc.'.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant":{"type":"string","description":"The name of the tenant where this OIDC IDP configuration resource exists","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_kms_crypto_key":{"version":1,"block":{"attributes":{"destroy_scheduled_duration":{"type":"string","description":"The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED.\nIf not specified at creation time, the default duration is 24 hours.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"import_only":{"type":"bool","description":"Whether this key may contain imported versions only.","description_kind":"plain","optional":true,"computed":true},"key_ring":{"type":"string","description":"The KeyRing that this key belongs to.\nFormat: ''projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}''.","description_kind":"plain","required":true},"labels":{"type":["map","string"],"description":"Labels with user-defined metadata to apply to this resource.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource name for the CryptoKey.","description_kind":"plain","required":true},"purpose":{"type":"string","description":"The immutable purpose of this CryptoKey. See the\n[purpose reference](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys#CryptoKeyPurpose)\nfor possible inputs. Default value: \"ENCRYPT_DECRYPT\" Possible values: [\"ENCRYPT_DECRYPT\", \"ASYMMETRIC_SIGN\", \"ASYMMETRIC_DECRYPT\"]","description_kind":"plain","optional":true},"rotation_period":{"type":"string","description":"Every time this period passes, generate a new CryptoKeyVersion and set it as the primary.\nThe first rotation will take place after the specified period. The rotation period has\nthe format of a decimal number with up to 9 fractional digits, followed by the\nletter 's' (seconds). It must be greater than a day (ie, 86400).","description_kind":"plain","optional":true},"skip_initial_version_creation":{"type":"bool","description":"If set to true, the request will create a CryptoKey without any CryptoKeyVersions. \nYou must use the 'google_kms_key_ring_import_job' resource to import the CryptoKeyVersion.","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"version_template":{"nesting_mode":"list","block":{"attributes":{"algorithm":{"type":"string","description":"The algorithm to use when creating a version based on this template.\nSee the [algorithm reference](https://cloud.google.com/kms/docs/reference/rest/v1/CryptoKeyVersionAlgorithm) for possible inputs.","description_kind":"plain","required":true},"protection_level":{"type":"string","description":"The protection level to use when creating a version based on this template. Possible values include \"SOFTWARE\", \"HSM\", \"EXTERNAL\". Defaults to \"SOFTWARE\".","description_kind":"plain","optional":true}},"description":"A template describing settings for new crypto key versions.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_kms_crypto_key_iam_binding":{"version":0,"block":{"attributes":{"crypto_key_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_kms_crypto_key_iam_member":{"version":0,"block":{"attributes":{"crypto_key_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_kms_crypto_key_iam_policy":{"version":0,"block":{"attributes":{"crypto_key_id":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_kms_key_ring":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location for the KeyRing.\nA full list of valid locations can be found by running 'gcloud kms locations list'.","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name for the KeyRing.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_kms_key_ring_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_ring_id":{"type":"string","description_kind":"plain","required":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_kms_key_ring_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_ring_id":{"type":"string","description_kind":"plain","required":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_kms_key_ring_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_ring_id":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_kms_key_ring_import_job":{"version":0,"block":{"attributes":{"attestation":{"type":["list",["object",{"content":"string","format":"string"}]],"description":"Statement that was generated and signed by the key creator (for example, an HSM) at key creation time.\nUse this statement to verify attributes of the key as stored on the HSM, independently of Google.\nOnly present if the chosen ImportMethod is one with a protection level of HSM.","description_kind":"plain","computed":true},"expire_time":{"type":"string","description":"The time at which this resource is scheduled for expiration and can no longer be used.\nThis is in RFC3339 text format.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"import_job_id":{"type":"string","description":"It must be unique within a KeyRing and match the regular expression [a-zA-Z0-9_-]{1,63}","description_kind":"plain","required":true},"import_method":{"type":"string","description":"The wrapping method to be used for incoming key material. Possible values: [\"RSA_OAEP_3072_SHA1_AES_256\", \"RSA_OAEP_4096_SHA1_AES_256\"]","description_kind":"plain","required":true},"key_ring":{"type":"string","description":"The KeyRing that this import job belongs to.\nFormat: ''projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}''.","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name for this ImportJob in the format projects/*/locations/*/keyRings/*/importJobs/*.","description_kind":"plain","computed":true},"protection_level":{"type":"string","description":"The protection level of the ImportJob. This must match the protectionLevel of the\nversionTemplate on the CryptoKey you attempt to import into. Possible values: [\"SOFTWARE\", \"HSM\", \"EXTERNAL\"]","description_kind":"plain","required":true},"public_key":{"type":["list",["object",{"pem":"string"}]],"description":"The public key with which to wrap key material prior to import. Only returned if state is 'ACTIVE'.","description_kind":"plain","computed":true},"state":{"type":"string","description":"The current state of the ImportJob, indicating if it can be used.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_kms_secret_ciphertext":{"version":0,"block":{"attributes":{"additional_authenticated_data":{"type":"string","description":"The additional authenticated data used for integrity checks during encryption and decryption.","description_kind":"plain","optional":true,"sensitive":true},"ciphertext":{"type":"string","description":"Contains the result of encrypting the provided plaintext, encoded in base64.","description_kind":"plain","computed":true},"crypto_key":{"type":"string","description":"The full name of the CryptoKey that will be used to encrypt the provided plaintext.\nFormat: ''projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}/cryptoKeys/{{cryptoKey}}''","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"plaintext":{"type":"string","description":"The plaintext to be encrypted.","description_kind":"plain","required":true,"sensitive":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_logging_billing_account_bucket_config":{"version":0,"block":{"attributes":{"billing_account":{"type":"string","description":"The parent resource that contains the logging bucket.","description_kind":"plain","required":true},"bucket_id":{"type":"string","description":"The name of the logging bucket. Logging automatically creates two log buckets: _Required and _Default.","description_kind":"plain","required":true},"description":{"type":"string","description":"An optional description for this bucket.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifecycle_state":{"type":"string","description":"The bucket's lifecycle such as active or deleted.","description_kind":"plain","computed":true},"location":{"type":"string","description":"The location of the bucket.","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name of the bucket","description_kind":"plain","computed":true},"retention_days":{"type":"number","description":"Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_logging_billing_account_exclusion":{"version":0,"block":{"attributes":{"billing_account":{"type":"string","description_kind":"plain","required":true},"description":{"type":"string","description":"A human-readable description.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"Whether this exclusion rule should be disabled or not. This defaults to false.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"The filter to apply when excluding logs. Only log entries that match the filter are excluded.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the logging exclusion.","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_logging_billing_account_sink":{"version":0,"block":{"attributes":{"billing_account":{"type":"string","description":"The billing account exported to the sink.","description_kind":"plain","required":true},"description":{"type":"string","description":"A description of this sink. The maximum length of the description is 8000 characters.","description_kind":"plain","optional":true},"destination":{"type":"string","description":"The destination of the sink (or, in other words, where logs are written to). Can be a Cloud Storage bucket, a PubSub topic, or a BigQuery dataset. Examples: \"storage.googleapis.com/[GCS_BUCKET]\" \"bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]\" \"pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]\" The writer associated with the sink must have access to write to the above resource.","description_kind":"plain","required":true},"disabled":{"type":"bool","description":"If set to True, then this sink is disabled and it does not export any log entries.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"The filter to apply when exporting logs. Only log entries that match the filter are exported.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the logging sink.","description_kind":"plain","required":true},"writer_identity":{"type":"string","description":"The identity associated with this sink. This identity must be granted write access to the configured destination.","description_kind":"plain","computed":true}},"block_types":{"bigquery_options":{"nesting_mode":"list","block":{"attributes":{"use_partitioned_tables":{"type":"bool","description":"Whether to use BigQuery's partition tables. By default, Logging creates dated tables based on the log entries' timestamps, e.g. syslog_20170523. With partitioned tables the date suffix is no longer present and special query syntax has to be used instead. In both cases, tables are sharded based on UTC timezone.","description_kind":"plain","required":true}},"description":"Options that affect sinks exporting data to BigQuery.","description_kind":"plain"},"max_items":1},"exclusions":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"A description of this exclusion.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If set to True, then this exclusion is disabled and it does not exclude any log entries","description_kind":"plain","optional":true},"filter":{"type":"string","description":"An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries","description_kind":"plain","required":true},"name":{"type":"string","description":"A client-assigned identifier, such as \"load-balancer-exclusion\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.","description_kind":"plain","required":true}},"description":"Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both filter and one of exclusion_filters it will not be exported.","description_kind":"plain"}}},"description_kind":"plain"}},"google_logging_folder_bucket_config":{"version":0,"block":{"attributes":{"bucket_id":{"type":"string","description":"The name of the logging bucket. Logging automatically creates two log buckets: _Required and _Default.","description_kind":"plain","required":true},"description":{"type":"string","description":"An optional description for this bucket.","description_kind":"plain","optional":true,"computed":true},"folder":{"type":"string","description":"The parent resource that contains the logging bucket.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifecycle_state":{"type":"string","description":"The bucket's lifecycle such as active or deleted.","description_kind":"plain","computed":true},"location":{"type":"string","description":"The location of the bucket.","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name of the bucket","description_kind":"plain","computed":true},"retention_days":{"type":"number","description":"Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_logging_folder_exclusion":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A human-readable description.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"Whether this exclusion rule should be disabled or not. This defaults to false.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"The filter to apply when excluding logs. Only log entries that match the filter are excluded.","description_kind":"plain","required":true},"folder":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the logging exclusion.","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_logging_folder_sink":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A description of this sink. The maximum length of the description is 8000 characters.","description_kind":"plain","optional":true},"destination":{"type":"string","description":"The destination of the sink (or, in other words, where logs are written to). Can be a Cloud Storage bucket, a PubSub topic, or a BigQuery dataset. Examples: \"storage.googleapis.com/[GCS_BUCKET]\" \"bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]\" \"pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]\" The writer associated with the sink must have access to write to the above resource.","description_kind":"plain","required":true},"disabled":{"type":"bool","description":"If set to True, then this sink is disabled and it does not export any log entries.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"The filter to apply when exporting logs. Only log entries that match the filter are exported.","description_kind":"plain","optional":true},"folder":{"type":"string","description":"The folder to be exported to the sink. Note that either [FOLDER_ID] or \"folders/[FOLDER_ID]\" is accepted.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"include_children":{"type":"bool","description":"Whether or not to include children folders in the sink export. If true, logs associated with child projects are also exported; otherwise only logs relating to the provided folder are included.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the logging sink.","description_kind":"plain","required":true},"writer_identity":{"type":"string","description":"The identity associated with this sink. This identity must be granted write access to the configured destination.","description_kind":"plain","computed":true}},"block_types":{"bigquery_options":{"nesting_mode":"list","block":{"attributes":{"use_partitioned_tables":{"type":"bool","description":"Whether to use BigQuery's partition tables. By default, Logging creates dated tables based on the log entries' timestamps, e.g. syslog_20170523. With partitioned tables the date suffix is no longer present and special query syntax has to be used instead. In both cases, tables are sharded based on UTC timezone.","description_kind":"plain","required":true}},"description":"Options that affect sinks exporting data to BigQuery.","description_kind":"plain"},"max_items":1},"exclusions":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"A description of this exclusion.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If set to True, then this exclusion is disabled and it does not exclude any log entries","description_kind":"plain","optional":true},"filter":{"type":"string","description":"An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries","description_kind":"plain","required":true},"name":{"type":"string","description":"A client-assigned identifier, such as \"load-balancer-exclusion\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.","description_kind":"plain","required":true}},"description":"Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both filter and one of exclusion_filters it will not be exported.","description_kind":"plain"}}},"description_kind":"plain"}},"google_logging_log_view":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The bucket of the resource","description_kind":"plain","required":true},"create_time":{"type":"string","description":"Output only. The creation timestamp of the view.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Describes this view.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"Filter that restricts which log entries in a bucket are visible in this view. Filters are restricted to be a logical AND of ==/!= of any of the following: - originating project/folder/organization/billing account. - resource type - log id For example: SOURCE(\"projects/myproject\") AND resource.type = \"gce_instance\" AND LOG_ID(\"stdout\")","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location of the resource. The supported locations are: global, us-central1, us-east1, us-west1, asia-east1, europe-west1.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of the view. For example: `projects/my-project/locations/global/buckets/my-bucket/views/my-view`","description_kind":"plain","required":true},"parent":{"type":"string","description":"The parent of the resource.","description_kind":"plain","optional":true,"computed":true},"update_time":{"type":"string","description":"Output only. The last update timestamp of the view.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_logging_metric":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A description of this metric, which is used in documentation. The maximum length of the\ndescription is 8000 characters.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"An advanced logs filter (https://cloud.google.com/logging/docs/view/advanced-filters) which\nis used to match log entries.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label_extractors":{"type":["map","string"],"description":"A map from a label key string to an extractor expression which is used to extract data from a log\nentry field and assign as the label value. Each label key specified in the LabelDescriptor must\nhave an associated extractor expression in this map. The syntax of the extractor expression is\nthe same as for the valueExtractor field.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The client-assigned metric identifier. Examples - \"error_count\", \"nginx/requests\".\nMetric identifiers are limited to 100 characters and can include only the following\ncharacters A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash\ncharacter (/) denotes a hierarchy of name pieces, and it cannot be the first character\nof the name.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_extractor":{"type":"string","description":"A valueExtractor is required when using a distribution logs-based metric to extract the values to\nrecord from a log entry. Two functions are supported for value extraction - EXTRACT(field) or\nREGEXP_EXTRACT(field, regex). The argument are 1. field - The name of the log entry field from which\nthe value is to be extracted. 2. regex - A regular expression using the Google RE2 syntax\n(https://github.com/google/re2/wiki/Syntax) with a single capture group to extract data from the specified\nlog entry field. The value of the field is converted to a string before applying the regex. It is an\nerror to specify a regex that does not include exactly one capture group.","description_kind":"plain","optional":true}},"block_types":{"bucket_options":{"nesting_mode":"list","block":{"block_types":{"explicit_buckets":{"nesting_mode":"list","block":{"attributes":{"bounds":{"type":["list","number"],"description":"The values must be monotonically increasing.","description_kind":"plain","required":true}},"description":"Specifies a set of buckets with arbitrary widths.","description_kind":"plain"},"max_items":1},"exponential_buckets":{"nesting_mode":"list","block":{"attributes":{"growth_factor":{"type":"number","description":"Must be greater than 1.","description_kind":"plain","optional":true},"num_finite_buckets":{"type":"number","description":"Must be greater than 0.","description_kind":"plain","optional":true},"scale":{"type":"number","description":"Must be greater than 0.","description_kind":"plain","optional":true}},"description":"Specifies an exponential sequence of buckets that have a width that is proportional to the value of\nthe lower bound. Each bucket represents a constant relative uncertainty on a specific value in the bucket.","description_kind":"plain"},"max_items":1},"linear_buckets":{"nesting_mode":"list","block":{"attributes":{"num_finite_buckets":{"type":"number","description":"Must be greater than 0.","description_kind":"plain","optional":true},"offset":{"type":"number","description":"Lower bound of the first bucket.","description_kind":"plain","optional":true},"width":{"type":"number","description":"Must be greater than 0.","description_kind":"plain","optional":true}},"description":"Specifies a linear sequence of buckets that all have the same width (except overflow and underflow).\nEach bucket represents a constant absolute uncertainty on the specific value in the bucket.","description_kind":"plain"},"max_items":1}},"description":"The bucketOptions are required when the logs-based metric is using a DISTRIBUTION value type and it\ndescribes the bucket boundaries used to create a histogram of the extracted values.","description_kind":"plain"},"max_items":1},"metric_descriptor":{"nesting_mode":"list","block":{"attributes":{"display_name":{"type":"string","description":"A concise name for the metric, which can be displayed in user interfaces. Use sentence case \nwithout an ending period, for example \"Request count\". This field is optional but it is \nrecommended to be set for any metrics associated with user-visible concepts, such as Quota.","description_kind":"plain","optional":true},"metric_kind":{"type":"string","description":"Whether the metric records instantaneous values, changes to a value, etc.\nSome combinations of metricKind and valueType might not be supported.\nFor counter metrics, set this to DELTA. Possible values: [\"DELTA\", \"GAUGE\", \"CUMULATIVE\"]","description_kind":"plain","required":true},"unit":{"type":"string","description":"The unit in which the metric value is reported. It is only applicable if the valueType is\n'INT64', 'DOUBLE', or 'DISTRIBUTION'. The supported units are a subset of\n[The Unified Code for Units of Measure](http://unitsofmeasure.org/ucum.html) standard","description_kind":"plain","optional":true},"value_type":{"type":"string","description":"Whether the measurement is an integer, a floating-point number, etc.\nSome combinations of metricKind and valueType might not be supported.\nFor counter metrics, set this to INT64. Possible values: [\"BOOL\", \"INT64\", \"DOUBLE\", \"STRING\", \"DISTRIBUTION\", \"MONEY\"]","description_kind":"plain","required":true}},"block_types":{"labels":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"A human-readable description for the label.","description_kind":"plain","optional":true},"key":{"type":"string","description":"The label key.","description_kind":"plain","required":true},"value_type":{"type":"string","description":"The type of data that can be assigned to the label. Default value: \"STRING\" Possible values: [\"BOOL\", \"INT64\", \"STRING\"]","description_kind":"plain","optional":true}},"description":"The set of labels that can be used to describe a specific instance of this metric type. For\nexample, the appengine.googleapis.com/http/server/response_latencies metric type has a label\nfor the HTTP response code, response_code, so you can look at latencies for successful responses\nor just for responses that failed.","description_kind":"plain"}}},"description":"The metric descriptor associated with the logs-based metric.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_logging_organization_bucket_config":{"version":0,"block":{"attributes":{"bucket_id":{"type":"string","description":"The name of the logging bucket. Logging automatically creates two log buckets: _Required and _Default.","description_kind":"plain","required":true},"description":{"type":"string","description":"An optional description for this bucket.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifecycle_state":{"type":"string","description":"The bucket's lifecycle such as active or deleted.","description_kind":"plain","computed":true},"location":{"type":"string","description":"The location of the bucket.","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name of the bucket","description_kind":"plain","computed":true},"organization":{"type":"string","description":"The parent resource that contains the logging bucket.","description_kind":"plain","required":true},"retention_days":{"type":"number","description":"Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_logging_organization_exclusion":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A human-readable description.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"Whether this exclusion rule should be disabled or not. This defaults to false.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"The filter to apply when excluding logs. Only log entries that match the filter are excluded.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the logging exclusion.","description_kind":"plain","required":true},"org_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_logging_organization_sink":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A description of this sink. The maximum length of the description is 8000 characters.","description_kind":"plain","optional":true},"destination":{"type":"string","description":"The destination of the sink (or, in other words, where logs are written to). Can be a Cloud Storage bucket, a PubSub topic, or a BigQuery dataset. Examples: \"storage.googleapis.com/[GCS_BUCKET]\" \"bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]\" \"pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]\" The writer associated with the sink must have access to write to the above resource.","description_kind":"plain","required":true},"disabled":{"type":"bool","description":"If set to True, then this sink is disabled and it does not export any log entries.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"The filter to apply when exporting logs. Only log entries that match the filter are exported.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"include_children":{"type":"bool","description":"Whether or not to include children organizations in the sink export. If true, logs associated with child projects are also exported; otherwise only logs relating to the provided organization are included.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the logging sink.","description_kind":"plain","required":true},"org_id":{"type":"string","description":"The numeric ID of the organization to be exported to the sink.","description_kind":"plain","required":true},"writer_identity":{"type":"string","description":"The identity associated with this sink. This identity must be granted write access to the configured destination.","description_kind":"plain","computed":true}},"block_types":{"bigquery_options":{"nesting_mode":"list","block":{"attributes":{"use_partitioned_tables":{"type":"bool","description":"Whether to use BigQuery's partition tables. By default, Logging creates dated tables based on the log entries' timestamps, e.g. syslog_20170523. With partitioned tables the date suffix is no longer present and special query syntax has to be used instead. In both cases, tables are sharded based on UTC timezone.","description_kind":"plain","required":true}},"description":"Options that affect sinks exporting data to BigQuery.","description_kind":"plain"},"max_items":1},"exclusions":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"A description of this exclusion.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If set to True, then this exclusion is disabled and it does not exclude any log entries","description_kind":"plain","optional":true},"filter":{"type":"string","description":"An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries","description_kind":"plain","required":true},"name":{"type":"string","description":"A client-assigned identifier, such as \"load-balancer-exclusion\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.","description_kind":"plain","required":true}},"description":"Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both filter and one of exclusion_filters it will not be exported.","description_kind":"plain"}}},"description_kind":"plain"}},"google_logging_project_bucket_config":{"version":0,"block":{"attributes":{"bucket_id":{"type":"string","description":"The name of the logging bucket. Logging automatically creates two log buckets: _Required and _Default.","description_kind":"plain","required":true},"description":{"type":"string","description":"An optional description for this bucket.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifecycle_state":{"type":"string","description":"The bucket's lifecycle such as active or deleted.","description_kind":"plain","computed":true},"location":{"type":"string","description":"The location of the bucket.","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name of the bucket","description_kind":"plain","computed":true},"project":{"type":"string","description":"The parent project that contains the logging bucket.","description_kind":"plain","required":true},"retention_days":{"type":"number","description":"Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_logging_project_exclusion":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A human-readable description.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"Whether this exclusion rule should be disabled or not. This defaults to false.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"The filter to apply when excluding logs. Only log entries that match the filter are excluded.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the logging exclusion.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_logging_project_sink":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A description of this sink. The maximum length of the description is 8000 characters.","description_kind":"plain","optional":true},"destination":{"type":"string","description":"The destination of the sink (or, in other words, where logs are written to). Can be a Cloud Storage bucket, a PubSub topic, or a BigQuery dataset. Examples: \"storage.googleapis.com/[GCS_BUCKET]\" \"bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]\" \"pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]\" The writer associated with the sink must have access to write to the above resource.","description_kind":"plain","required":true},"disabled":{"type":"bool","description":"If set to True, then this sink is disabled and it does not export any log entries.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"The filter to apply when exporting logs. Only log entries that match the filter are exported.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the logging sink.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project to create the sink in. If omitted, the project associated with the provider is used.","description_kind":"plain","optional":true,"computed":true},"unique_writer_identity":{"type":"bool","description":"Whether or not to create a unique identity associated with this sink. If false (the default), then the writer_identity used is serviceAccount:cloud-logs@system.gserviceaccount.com. If true, then a unique service account is created and used for this sink. If you wish to publish logs across projects, you must set unique_writer_identity to true.","description_kind":"plain","optional":true},"writer_identity":{"type":"string","description":"The identity associated with this sink. This identity must be granted write access to the configured destination.","description_kind":"plain","computed":true}},"block_types":{"bigquery_options":{"nesting_mode":"list","block":{"attributes":{"use_partitioned_tables":{"type":"bool","description":"Whether to use BigQuery's partition tables. By default, Logging creates dated tables based on the log entries' timestamps, e.g. syslog_20170523. With partitioned tables the date suffix is no longer present and special query syntax has to be used instead. In both cases, tables are sharded based on UTC timezone.","description_kind":"plain","required":true}},"description":"Options that affect sinks exporting data to BigQuery.","description_kind":"plain"},"max_items":1},"exclusions":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"A description of this exclusion.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If set to True, then this exclusion is disabled and it does not exclude any log entries","description_kind":"plain","optional":true},"filter":{"type":"string","description":"An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries","description_kind":"plain","required":true},"name":{"type":"string","description":"A client-assigned identifier, such as \"load-balancer-exclusion\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.","description_kind":"plain","required":true}},"description":"Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both filter and one of exclusion_filters it will not be exported.","description_kind":"plain"}}},"description_kind":"plain"}},"google_memcache_instance":{"version":0,"block":{"attributes":{"authorized_network":{"type":"string","description":"The full name of the GCE network to connect the instance to. If not provided,\n'default' will be used.","description_kind":"plain","optional":true,"computed":true},"create_time":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"discovery_endpoint":{"type":"string","description":"Endpoint for Discovery API","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"A user-visible name for the instance.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Resource labels to represent user-provided metadata.","description_kind":"plain","optional":true},"memcache_full_version":{"type":"string","description":"The full version of memcached server running on this instance.","description_kind":"plain","computed":true},"memcache_nodes":{"type":["list",["object",{"host":"string","node_id":"string","port":"number","state":"string","zone":"string"}]],"description":"Additional information about the instance state, if available.","description_kind":"plain","computed":true},"memcache_version":{"type":"string","description":"The major version of Memcached software. If not provided, latest supported version will be used.\nCurrently the latest supported major version is MEMCACHE_1_5. The minor version will be automatically\ndetermined by our system based on the latest supported minor version. Default value: \"MEMCACHE_1_5\" Possible values: [\"MEMCACHE_1_5\"]","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource name of the instance.","description_kind":"plain","required":true},"node_count":{"type":"number","description":"Number of nodes in the memcache instance.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region of the Memcache instance. If it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"zones":{"type":["set","string"],"description":"Zones where memcache nodes should be provisioned. If not\nprovided, all zones will be used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"memcache_parameters":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description":"This is a unique ID associated with this set of parameters.","description_kind":"plain","computed":true},"params":{"type":["map","string"],"description":"User-defined set of parameters to use in the memcache process.","description_kind":"plain","optional":true}},"description":"User-specified parameters for this memcache instance.","description_kind":"plain"},"max_items":1},"node_config":{"nesting_mode":"list","block":{"attributes":{"cpu_count":{"type":"number","description":"Number of CPUs per node.","description_kind":"plain","required":true},"memory_size_mb":{"type":"number","description":"Memory size in Mebibytes for each memcache node.","description_kind":"plain","required":true}},"description":"Configuration for memcache nodes.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_ml_engine_model":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description specified for the model when it was created.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"One or more labels that you can add, to organize your models.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name specified for the model.","description_kind":"plain","required":true},"online_prediction_console_logging":{"type":"bool","description":"If true, online prediction nodes send stderr and stdout streams to Stackdriver Logging","description_kind":"plain","optional":true},"online_prediction_logging":{"type":"bool","description":"If true, online prediction access logs are sent to StackDriver Logging.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"regions":{"type":["list","string"],"description":"The list of regions where the model is going to be deployed.\nCurrently only one region per model is supported","description_kind":"plain","optional":true}},"block_types":{"default_version":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"The name specified for the version when it was created.","description_kind":"plain","required":true}},"description":"The default version of the model. This version will be used to handle\nprediction requests that do not specify a version.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_monitoring_alert_policy":{"version":0,"block":{"attributes":{"combiner":{"type":"string","description":"How to combine the results of multiple conditions to\ndetermine if an incident should be opened. Possible values: [\"AND\", \"OR\", \"AND_WITH_MATCHING_RESOURCE\"]","description_kind":"plain","required":true},"creation_record":{"type":["list",["object",{"mutate_time":"string","mutated_by":"string"}]],"description":"A read-only record of the creation of the alerting policy.\nIf provided in a call to create or update, this field will\nbe ignored.","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"A short name or phrase used to identify the policy in\ndashboards, notifications, and incidents. To avoid confusion, don't use\nthe same display name for multiple policies in the same project. The\nname is limited to 512 Unicode characters.","description_kind":"plain","required":true},"enabled":{"type":"bool","description":"Whether or not the policy is enabled. The default is true.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The unique resource name for this policy.\nIts syntax is: projects/[PROJECT_ID]/alertPolicies/[ALERT_POLICY_ID]","description_kind":"plain","computed":true},"notification_channels":{"type":["list","string"],"description":"Identifies the notification channels to which notifications should be\nsent when incidents are opened or closed or when new violations occur\non an already opened incident. Each element of this array corresponds\nto the name field in each of the NotificationChannel objects that are\nreturned from the notificationChannels.list method. The syntax of the\nentries in this field is\n'projects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]'","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"user_labels":{"type":["map","string"],"description":"This field is intended to be used for organizing and identifying the AlertPolicy\nobjects.The field can contain up to 64 entries. Each key and value is limited\nto 63 Unicode characters or 128 bytes, whichever is smaller. Labels and values\ncan contain only lowercase letters, numerals, underscores, and dashes. Keys\nmust begin with a letter.","description_kind":"plain","optional":true}},"block_types":{"alert_strategy":{"nesting_mode":"list","block":{"attributes":{"auto_close":{"type":"string","description":"If an alert policy that was active has no data for this long, any open incidents will close.","description_kind":"plain","optional":true}},"block_types":{"notification_rate_limit":{"nesting_mode":"list","block":{"attributes":{"period":{"type":"string","description":"Not more than one notification per period.","description_kind":"plain","optional":true}},"description":"Required for alert policies with a LogMatch condition.\nThis limit is not implemented for alert policies that are not log-based.","description_kind":"plain"},"max_items":1}},"description":"Control over how this alert policy's notification channels are notified.","description_kind":"plain"},"max_items":1},"conditions":{"nesting_mode":"list","block":{"attributes":{"display_name":{"type":"string","description":"A short name or phrase used to identify the\ncondition in dashboards, notifications, and\nincidents. To avoid confusion, don't use the same\ndisplay name for multiple conditions in the same\npolicy.","description_kind":"plain","required":true},"name":{"type":"string","description":"The unique resource name for this condition.\nIts syntax is:\nprojects/[PROJECT_ID]/alertPolicies/[POLICY_ID]/conditions/[CONDITION_ID]\n[CONDITION_ID] is assigned by Stackdriver Monitoring when\nthe condition is created as part of a new or updated alerting\npolicy.","description_kind":"plain","computed":true}},"block_types":{"condition_absent":{"nesting_mode":"list","block":{"attributes":{"duration":{"type":"string","description":"The amount of time that a time series must\nfail to report new data to be considered\nfailing. Currently, only values that are a\nmultiple of a minute--e.g. 60s, 120s, or 300s\n--are supported.","description_kind":"plain","required":true},"filter":{"type":"string","description":"A filter that identifies which time series\nshould be compared with the threshold.The\nfilter is similar to the one that is\nspecified in the\nMetricService.ListTimeSeries request (that\ncall is useful to verify the time series\nthat will be retrieved / processed) and must\nspecify the metric type and optionally may\ncontain restrictions on resource type,\nresource labels, and metric labels. This\nfield may not exceed 2048 Unicode characters\nin length.","description_kind":"plain","optional":true}},"block_types":{"aggregations":{"nesting_mode":"list","block":{"attributes":{"alignment_period":{"type":"string","description":"The alignment period for per-time\nseries alignment. If present,\nalignmentPeriod must be at least\n60 seconds. After per-time series\nalignment, each time series will\ncontain data points only on the\nperiod boundaries. If\nperSeriesAligner is not specified\nor equals ALIGN_NONE, then this\nfield is ignored. If\nperSeriesAligner is specified and\ndoes not equal ALIGN_NONE, then\nthis field must be defined;\notherwise an error is returned.","description_kind":"plain","optional":true},"cross_series_reducer":{"type":"string","description":"The approach to be used to combine\ntime series. Not all reducer\nfunctions may be applied to all\ntime series, depending on the\nmetric type and the value type of\nthe original time series.\nReduction may change the metric\ntype of value type of the time\nseries.Time series data must be\naligned in order to perform cross-\ntime series reduction. If\ncrossSeriesReducer is specified,\nthen perSeriesAligner must be\nspecified and not equal ALIGN_NONE\nand alignmentPeriod must be\nspecified; otherwise, an error is\nreturned. Possible values: [\"REDUCE_NONE\", \"REDUCE_MEAN\", \"REDUCE_MIN\", \"REDUCE_MAX\", \"REDUCE_SUM\", \"REDUCE_STDDEV\", \"REDUCE_COUNT\", \"REDUCE_COUNT_TRUE\", \"REDUCE_COUNT_FALSE\", \"REDUCE_FRACTION_TRUE\", \"REDUCE_PERCENTILE_99\", \"REDUCE_PERCENTILE_95\", \"REDUCE_PERCENTILE_50\", \"REDUCE_PERCENTILE_05\"]","description_kind":"plain","optional":true},"group_by_fields":{"type":["list","string"],"description":"The set of fields to preserve when\ncrossSeriesReducer is specified.\nThe groupByFields determine how\nthe time series are partitioned\ninto subsets prior to applying the\naggregation function. Each subset\ncontains time series that have the\nsame value for each of the\ngrouping fields. Each individual\ntime series is a member of exactly\none subset. The crossSeriesReducer\nis applied to each subset of time\nseries. It is not possible to\nreduce across different resource\ntypes, so this field implicitly\ncontains resource.type. Fields not\nspecified in groupByFields are\naggregated away. If groupByFields\nis not specified and all the time\nseries have the same resource\ntype, then the time series are\naggregated into a single output\ntime series. If crossSeriesReducer\nis not defined, this field is\nignored.","description_kind":"plain","optional":true},"per_series_aligner":{"type":"string","description":"The approach to be used to align\nindividual time series. Not all\nalignment functions may be applied\nto all time series, depending on\nthe metric type and value type of\nthe original time series.\nAlignment may change the metric\ntype or the value type of the time\nseries.Time series data must be\naligned in order to perform cross-\ntime series reduction. If\ncrossSeriesReducer is specified,\nthen perSeriesAligner must be\nspecified and not equal ALIGN_NONE\nand alignmentPeriod must be\nspecified; otherwise, an error is\nreturned. Possible values: [\"ALIGN_NONE\", \"ALIGN_DELTA\", \"ALIGN_RATE\", \"ALIGN_INTERPOLATE\", \"ALIGN_NEXT_OLDER\", \"ALIGN_MIN\", \"ALIGN_MAX\", \"ALIGN_MEAN\", \"ALIGN_COUNT\", \"ALIGN_SUM\", \"ALIGN_STDDEV\", \"ALIGN_COUNT_TRUE\", \"ALIGN_COUNT_FALSE\", \"ALIGN_FRACTION_TRUE\", \"ALIGN_PERCENTILE_99\", \"ALIGN_PERCENTILE_95\", \"ALIGN_PERCENTILE_50\", \"ALIGN_PERCENTILE_05\", \"ALIGN_PERCENT_CHANGE\"]","description_kind":"plain","optional":true}},"description":"Specifies the alignment of data points in\nindividual time series as well as how to\ncombine the retrieved time series together\n(such as when aggregating multiple streams\non each resource to a single stream for each\nresource or when aggregating streams across\nall members of a group of resources).\nMultiple aggregations are applied in the\norder specified.","description_kind":"plain"}},"trigger":{"nesting_mode":"list","block":{"attributes":{"count":{"type":"number","description":"The absolute number of time series\nthat must fail the predicate for the\ncondition to be triggered.","description_kind":"plain","optional":true},"percent":{"type":"number","description":"The percentage of time series that\nmust fail the predicate for the\ncondition to be triggered.","description_kind":"plain","optional":true}},"description":"The number/percent of time series for which\nthe comparison must hold in order for the\ncondition to trigger. If unspecified, then\nthe condition will trigger if the comparison\nis true for any of the time series that have\nbeen identified by filter and aggregations.","description_kind":"plain"},"max_items":1}},"description":"A condition that checks that a time series\ncontinues to receive new data points.","description_kind":"plain"},"max_items":1},"condition_matched_log":{"nesting_mode":"list","block":{"attributes":{"filter":{"type":"string","description":"A logs-based filter.","description_kind":"plain","required":true},"label_extractors":{"type":["map","string"],"description":"A map from a label key to an extractor expression, which is used to\nextract the value for this label key. Each entry in this map is\na specification for how data should be extracted from log entries that\nmatch filter. Each combination of extracted values is treated as\na separate rule for the purposes of triggering notifications.\nLabel keys and corresponding values can be used in notifications\ngenerated by this condition.","description_kind":"plain","optional":true}},"description":"A condition that checks for log messages matching given constraints.\nIf set, no other conditions can be present.","description_kind":"plain"},"max_items":1},"condition_monitoring_query_language":{"nesting_mode":"list","block":{"attributes":{"duration":{"type":"string","description":"The amount of time that a time series must\nviolate the threshold to be considered\nfailing. Currently, only values that are a\nmultiple of a minute--e.g., 0, 60, 120, or\n300 seconds--are supported. If an invalid\nvalue is given, an error will be returned.\nWhen choosing a duration, it is useful to\nkeep in mind the frequency of the underlying\ntime series data (which may also be affected\nby any alignments specified in the\naggregations field); a good duration is long\nenough so that a single outlier does not\ngenerate spurious alerts, but short enough\nthat unhealthy states are detected and\nalerted on quickly.","description_kind":"plain","required":true},"query":{"type":"string","description":"Monitoring Query Language query that outputs a boolean stream.","description_kind":"plain","required":true}},"block_types":{"trigger":{"nesting_mode":"list","block":{"attributes":{"count":{"type":"number","description":"The absolute number of time series\nthat must fail the predicate for the\ncondition to be triggered.","description_kind":"plain","optional":true},"percent":{"type":"number","description":"The percentage of time series that\nmust fail the predicate for the\ncondition to be triggered.","description_kind":"plain","optional":true}},"description":"The number/percent of time series for which\nthe comparison must hold in order for the\ncondition to trigger. If unspecified, then\nthe condition will trigger if the comparison\nis true for any of the time series that have\nbeen identified by filter and aggregations,\nor by the ratio, if denominator_filter and\ndenominator_aggregations are specified.","description_kind":"plain"},"max_items":1}},"description":"A Monitoring Query Language query that outputs a boolean stream","description_kind":"plain"},"max_items":1},"condition_threshold":{"nesting_mode":"list","block":{"attributes":{"comparison":{"type":"string","description":"The comparison to apply between the time\nseries (indicated by filter and aggregation)\nand the threshold (indicated by\nthreshold_value). The comparison is applied\non each time series, with the time series on\nthe left-hand side and the threshold on the\nright-hand side. Only COMPARISON_LT and\nCOMPARISON_GT are supported currently. Possible values: [\"COMPARISON_GT\", \"COMPARISON_GE\", \"COMPARISON_LT\", \"COMPARISON_LE\", \"COMPARISON_EQ\", \"COMPARISON_NE\"]","description_kind":"plain","required":true},"denominator_filter":{"type":"string","description":"A filter that identifies a time series that\nshould be used as the denominator of a ratio\nthat will be compared with the threshold. If\na denominator_filter is specified, the time\nseries specified by the filter field will be\nused as the numerator.The filter is similar\nto the one that is specified in the\nMetricService.ListTimeSeries request (that\ncall is useful to verify the time series\nthat will be retrieved / processed) and must\nspecify the metric type and optionally may\ncontain restrictions on resource type,\nresource labels, and metric labels. This\nfield may not exceed 2048 Unicode characters\nin length.","description_kind":"plain","optional":true},"duration":{"type":"string","description":"The amount of time that a time series must\nviolate the threshold to be considered\nfailing. Currently, only values that are a\nmultiple of a minute--e.g., 0, 60, 120, or\n300 seconds--are supported. If an invalid\nvalue is given, an error will be returned.\nWhen choosing a duration, it is useful to\nkeep in mind the frequency of the underlying\ntime series data (which may also be affected\nby any alignments specified in the\naggregations field); a good duration is long\nenough so that a single outlier does not\ngenerate spurious alerts, but short enough\nthat unhealthy states are detected and\nalerted on quickly.","description_kind":"plain","required":true},"filter":{"type":"string","description":"A filter that identifies which time series\nshould be compared with the threshold.The\nfilter is similar to the one that is\nspecified in the\nMetricService.ListTimeSeries request (that\ncall is useful to verify the time series\nthat will be retrieved / processed) and must\nspecify the metric type and optionally may\ncontain restrictions on resource type,\nresource labels, and metric labels. This\nfield may not exceed 2048 Unicode characters\nin length.","description_kind":"plain","optional":true},"threshold_value":{"type":"number","description":"A value against which to compare the time\nseries.","description_kind":"plain","optional":true}},"block_types":{"aggregations":{"nesting_mode":"list","block":{"attributes":{"alignment_period":{"type":"string","description":"The alignment period for per-time\nseries alignment. If present,\nalignmentPeriod must be at least\n60 seconds. After per-time series\nalignment, each time series will\ncontain data points only on the\nperiod boundaries. If\nperSeriesAligner is not specified\nor equals ALIGN_NONE, then this\nfield is ignored. If\nperSeriesAligner is specified and\ndoes not equal ALIGN_NONE, then\nthis field must be defined;\notherwise an error is returned.","description_kind":"plain","optional":true},"cross_series_reducer":{"type":"string","description":"The approach to be used to combine\ntime series. Not all reducer\nfunctions may be applied to all\ntime series, depending on the\nmetric type and the value type of\nthe original time series.\nReduction may change the metric\ntype of value type of the time\nseries.Time series data must be\naligned in order to perform cross-\ntime series reduction. If\ncrossSeriesReducer is specified,\nthen perSeriesAligner must be\nspecified and not equal ALIGN_NONE\nand alignmentPeriod must be\nspecified; otherwise, an error is\nreturned. Possible values: [\"REDUCE_NONE\", \"REDUCE_MEAN\", \"REDUCE_MIN\", \"REDUCE_MAX\", \"REDUCE_SUM\", \"REDUCE_STDDEV\", \"REDUCE_COUNT\", \"REDUCE_COUNT_TRUE\", \"REDUCE_COUNT_FALSE\", \"REDUCE_FRACTION_TRUE\", \"REDUCE_PERCENTILE_99\", \"REDUCE_PERCENTILE_95\", \"REDUCE_PERCENTILE_50\", \"REDUCE_PERCENTILE_05\"]","description_kind":"plain","optional":true},"group_by_fields":{"type":["list","string"],"description":"The set of fields to preserve when\ncrossSeriesReducer is specified.\nThe groupByFields determine how\nthe time series are partitioned\ninto subsets prior to applying the\naggregation function. Each subset\ncontains time series that have the\nsame value for each of the\ngrouping fields. Each individual\ntime series is a member of exactly\none subset. The crossSeriesReducer\nis applied to each subset of time\nseries. It is not possible to\nreduce across different resource\ntypes, so this field implicitly\ncontains resource.type. Fields not\nspecified in groupByFields are\naggregated away. If groupByFields\nis not specified and all the time\nseries have the same resource\ntype, then the time series are\naggregated into a single output\ntime series. If crossSeriesReducer\nis not defined, this field is\nignored.","description_kind":"plain","optional":true},"per_series_aligner":{"type":"string","description":"The approach to be used to align\nindividual time series. Not all\nalignment functions may be applied\nto all time series, depending on\nthe metric type and value type of\nthe original time series.\nAlignment may change the metric\ntype or the value type of the time\nseries.Time series data must be\naligned in order to perform cross-\ntime series reduction. If\ncrossSeriesReducer is specified,\nthen perSeriesAligner must be\nspecified and not equal ALIGN_NONE\nand alignmentPeriod must be\nspecified; otherwise, an error is\nreturned. Possible values: [\"ALIGN_NONE\", \"ALIGN_DELTA\", \"ALIGN_RATE\", \"ALIGN_INTERPOLATE\", \"ALIGN_NEXT_OLDER\", \"ALIGN_MIN\", \"ALIGN_MAX\", \"ALIGN_MEAN\", \"ALIGN_COUNT\", \"ALIGN_SUM\", \"ALIGN_STDDEV\", \"ALIGN_COUNT_TRUE\", \"ALIGN_COUNT_FALSE\", \"ALIGN_FRACTION_TRUE\", \"ALIGN_PERCENTILE_99\", \"ALIGN_PERCENTILE_95\", \"ALIGN_PERCENTILE_50\", \"ALIGN_PERCENTILE_05\", \"ALIGN_PERCENT_CHANGE\"]","description_kind":"plain","optional":true}},"description":"Specifies the alignment of data points in\nindividual time series as well as how to\ncombine the retrieved time series together\n(such as when aggregating multiple streams\non each resource to a single stream for each\nresource or when aggregating streams across\nall members of a group of resources).\nMultiple aggregations are applied in the\norder specified.This field is similar to the\none in the MetricService.ListTimeSeries\nrequest. It is advisable to use the\nListTimeSeries method when debugging this\nfield.","description_kind":"plain"}},"denominator_aggregations":{"nesting_mode":"list","block":{"attributes":{"alignment_period":{"type":"string","description":"The alignment period for per-time\nseries alignment. If present,\nalignmentPeriod must be at least\n60 seconds. After per-time series\nalignment, each time series will\ncontain data points only on the\nperiod boundaries. If\nperSeriesAligner is not specified\nor equals ALIGN_NONE, then this\nfield is ignored. If\nperSeriesAligner is specified and\ndoes not equal ALIGN_NONE, then\nthis field must be defined;\notherwise an error is returned.","description_kind":"plain","optional":true},"cross_series_reducer":{"type":"string","description":"The approach to be used to combine\ntime series. Not all reducer\nfunctions may be applied to all\ntime series, depending on the\nmetric type and the value type of\nthe original time series.\nReduction may change the metric\ntype of value type of the time\nseries.Time series data must be\naligned in order to perform cross-\ntime series reduction. If\ncrossSeriesReducer is specified,\nthen perSeriesAligner must be\nspecified and not equal ALIGN_NONE\nand alignmentPeriod must be\nspecified; otherwise, an error is\nreturned. Possible values: [\"REDUCE_NONE\", \"REDUCE_MEAN\", \"REDUCE_MIN\", \"REDUCE_MAX\", \"REDUCE_SUM\", \"REDUCE_STDDEV\", \"REDUCE_COUNT\", \"REDUCE_COUNT_TRUE\", \"REDUCE_COUNT_FALSE\", \"REDUCE_FRACTION_TRUE\", \"REDUCE_PERCENTILE_99\", \"REDUCE_PERCENTILE_95\", \"REDUCE_PERCENTILE_50\", \"REDUCE_PERCENTILE_05\"]","description_kind":"plain","optional":true},"group_by_fields":{"type":["list","string"],"description":"The set of fields to preserve when\ncrossSeriesReducer is specified.\nThe groupByFields determine how\nthe time series are partitioned\ninto subsets prior to applying the\naggregation function. Each subset\ncontains time series that have the\nsame value for each of the\ngrouping fields. Each individual\ntime series is a member of exactly\none subset. The crossSeriesReducer\nis applied to each subset of time\nseries. It is not possible to\nreduce across different resource\ntypes, so this field implicitly\ncontains resource.type. Fields not\nspecified in groupByFields are\naggregated away. If groupByFields\nis not specified and all the time\nseries have the same resource\ntype, then the time series are\naggregated into a single output\ntime series. If crossSeriesReducer\nis not defined, this field is\nignored.","description_kind":"plain","optional":true},"per_series_aligner":{"type":"string","description":"The approach to be used to align\nindividual time series. Not all\nalignment functions may be applied\nto all time series, depending on\nthe metric type and value type of\nthe original time series.\nAlignment may change the metric\ntype or the value type of the time\nseries.Time series data must be\naligned in order to perform cross-\ntime series reduction. If\ncrossSeriesReducer is specified,\nthen perSeriesAligner must be\nspecified and not equal ALIGN_NONE\nand alignmentPeriod must be\nspecified; otherwise, an error is\nreturned. Possible values: [\"ALIGN_NONE\", \"ALIGN_DELTA\", \"ALIGN_RATE\", \"ALIGN_INTERPOLATE\", \"ALIGN_NEXT_OLDER\", \"ALIGN_MIN\", \"ALIGN_MAX\", \"ALIGN_MEAN\", \"ALIGN_COUNT\", \"ALIGN_SUM\", \"ALIGN_STDDEV\", \"ALIGN_COUNT_TRUE\", \"ALIGN_COUNT_FALSE\", \"ALIGN_FRACTION_TRUE\", \"ALIGN_PERCENTILE_99\", \"ALIGN_PERCENTILE_95\", \"ALIGN_PERCENTILE_50\", \"ALIGN_PERCENTILE_05\", \"ALIGN_PERCENT_CHANGE\"]","description_kind":"plain","optional":true}},"description":"Specifies the alignment of data points in\nindividual time series selected by\ndenominatorFilter as well as how to combine\nthe retrieved time series together (such as\nwhen aggregating multiple streams on each\nresource to a single stream for each\nresource or when aggregating streams across\nall members of a group of resources).When\ncomputing ratios, the aggregations and\ndenominator_aggregations fields must use the\nsame alignment period and produce time\nseries that have the same periodicity and\nlabels.This field is similar to the one in\nthe MetricService.ListTimeSeries request. It\nis advisable to use the ListTimeSeries\nmethod when debugging this field.","description_kind":"plain"}},"trigger":{"nesting_mode":"list","block":{"attributes":{"count":{"type":"number","description":"The absolute number of time series\nthat must fail the predicate for the\ncondition to be triggered.","description_kind":"plain","optional":true},"percent":{"type":"number","description":"The percentage of time series that\nmust fail the predicate for the\ncondition to be triggered.","description_kind":"plain","optional":true}},"description":"The number/percent of time series for which\nthe comparison must hold in order for the\ncondition to trigger. If unspecified, then\nthe condition will trigger if the comparison\nis true for any of the time series that have\nbeen identified by filter and aggregations,\nor by the ratio, if denominator_filter and\ndenominator_aggregations are specified.","description_kind":"plain"},"max_items":1}},"description":"A condition that compares a time series against a\nthreshold.","description_kind":"plain"},"max_items":1}},"description":"A list of conditions for the policy. The conditions are combined by\nAND or OR according to the combiner field. If the combined conditions\nevaluate to true, then an incident is created. A policy can have from\none to six conditions.","description_kind":"plain"},"min_items":1},"documentation":{"nesting_mode":"list","block":{"attributes":{"content":{"type":"string","description":"The text of the documentation, interpreted according to mimeType.\nThe content may not exceed 8,192 Unicode characters and may not\nexceed more than 10,240 bytes when encoded in UTF-8 format,\nwhichever is smaller.","description_kind":"plain","optional":true},"mime_type":{"type":"string","description":"The format of the content field. Presently, only the value\n\"text/markdown\" is supported.","description_kind":"plain","optional":true}},"description":"Documentation that is included with notifications and incidents related\nto this policy. Best practice is for the documentation to include information\nto help responders understand, mitigate, escalate, and correct the underlying\nproblems detected by the alerting policy. Notification channels that have\nlimited capacity might not show this documentation.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_monitoring_custom_service":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Name used for UI elements listing this Service.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The full resource name for this service. The syntax is:\nprojects/[PROJECT_ID]/services/[SERVICE_ID].","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_id":{"type":"string","description":"An optional service ID to use. If not given, the server will generate a\nservice ID.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"telemetry":{"nesting_mode":"list","block":{"attributes":{"resource_name":{"type":"string","description":"The full name of the resource that defines this service.\nFormatted as described in\nhttps://cloud.google.com/apis/design/resource_names.","description_kind":"plain","optional":true}},"description":"Configuration for how to query telemetry on a Service.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_monitoring_dashboard":{"version":0,"block":{"attributes":{"dashboard_json":{"type":"string","description":"The JSON representation of a dashboard, following the format at https://cloud.google.com/monitoring/api/ref_v3/rest/v1/projects.dashboards.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_monitoring_group":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"A user-assigned name for this group, used only for display\npurposes.","description_kind":"plain","required":true},"filter":{"type":"string","description":"The filter used to determine which monitored resources\nbelong to this group.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_cluster":{"type":"bool","description":"If true, the members of this group are considered to be a\ncluster. The system can perform additional analysis on\ngroups that are clusters.","description_kind":"plain","optional":true},"name":{"type":"string","description":"A unique identifier for this group. The format is\n\"projects/{project_id_or_number}/groups/{group_id}\".","description_kind":"plain","computed":true},"parent_name":{"type":"string","description":"The name of the group's parent, if it has one. The format is\n\"projects/{project_id_or_number}/groups/{group_id}\". For\ngroups with no parent, parentName is the empty string, \"\".","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_monitoring_metric_descriptor":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A detailed description of the metric, which can be used in documentation.","description_kind":"plain","required":true},"display_name":{"type":"string","description":"A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example \"Request count\".","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"launch_stage":{"type":"string","description":"The launch stage of the metric definition. Possible values: [\"LAUNCH_STAGE_UNSPECIFIED\", \"UNIMPLEMENTED\", \"PRELAUNCH\", \"EARLY_ACCESS\", \"ALPHA\", \"BETA\", \"GA\", \"DEPRECATED\"]","description_kind":"plain","optional":true},"metric_kind":{"type":"string","description":"Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported. Possible values: [\"METRIC_KIND_UNSPECIFIED\", \"GAUGE\", \"DELTA\", \"CUMULATIVE\"]","description_kind":"plain","required":true},"monitored_resource_types":{"type":["list","string"],"description":"If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that is associated with this metric type can only be associated with one of the monitored resource types listed here. This field allows time series to be associated with the intersection of this metric type and the monitored resource types in this list.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The resource name of the metric descriptor.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"The metric type, including its DNS name prefix. The type is not URL-encoded. All service defined metrics must be prefixed with the service name, in the format of {service name}/{relative metric name}, such as cloudsql.googleapis.com/database/cpu/utilization. The relative metric name must have only upper and lower-case letters, digits, '/' and underscores '_' are allowed. Additionally, the maximum number of characters allowed for the relative_metric_name is 100. All user-defined metric types have the DNS name custom.googleapis.com, external.googleapis.com, or logging.googleapis.com/user/.","description_kind":"plain","required":true},"unit":{"type":"string","description":"The units in which the metric value is reported. It is only applicable if the\nvalueType is INT64, DOUBLE, or DISTRIBUTION. The unit defines the representation of\nthe stored metric values.\n\nDifferent systems may scale the values to be more easily displayed (so a value of\n0.02KBy might be displayed as 20By, and a value of 3523KBy might be displayed as\n3.5MBy). However, if the unit is KBy, then the value of the metric is always in\nthousands of bytes, no matter how it may be displayed.\n\nIf you want a custom metric to record the exact number of CPU-seconds used by a job,\nyou can create an INT64 CUMULATIVE metric whose unit is s{CPU} (or equivalently\n1s{CPU} or just s). If the job uses 12,005 CPU-seconds, then the value is written as\n12005.\n\nAlternatively, if you want a custom metric to record data in a more granular way, you\ncan create a DOUBLE CUMULATIVE metric whose unit is ks{CPU}, and then write the value\n12.005 (which is 12005/1000), or use Kis{CPU} and write 11.723 (which is 12005/1024).\nThe supported units are a subset of The Unified Code for Units of Measure standard.\nMore info can be found in the API documentation\n(https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors).","description_kind":"plain","optional":true},"value_type":{"type":"string","description":"Whether the measurement is an integer, a floating-point number, etc. Some combinations of metricKind and valueType might not be supported. Possible values: [\"BOOL\", \"INT64\", \"DOUBLE\", \"STRING\", \"DISTRIBUTION\"]","description_kind":"plain","required":true}},"block_types":{"labels":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"A human-readable description for the label.","description_kind":"plain","optional":true},"key":{"type":"string","description":"The key for this label. The key must not exceed 100 characters. The first character of the key must be an upper- or lower-case letter, the remaining characters must be letters, digits or underscores, and the key must match the regular expression [a-zA-Z][a-zA-Z0-9_]*","description_kind":"plain","required":true},"value_type":{"type":"string","description":"The type of data that can be assigned to the label. Default value: \"STRING\" Possible values: [\"STRING\", \"BOOL\", \"INT64\"]","description_kind":"plain","optional":true}},"description":"The set of labels that can be used to describe a specific instance of this metric type. In order to delete a label, the entire resource must be deleted, then created with the desired labels.","description_kind":"plain"}},"metadata":{"nesting_mode":"list","block":{"attributes":{"ingest_delay":{"type":"string","description":"The delay of data points caused by ingestion. Data points older than this age are guaranteed to be ingested and available to be read, excluding data loss due to errors. In '[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?\u0026_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)'.","description_kind":"plain","optional":true},"sample_period":{"type":"string","description":"The sampling period of metric data points. For metrics which are written periodically, consecutive data points are stored at this time interval, excluding data loss due to errors. Metrics with a higher granularity have a smaller sampling period. In '[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?\u0026_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)'.","description_kind":"plain","optional":true}},"description":"Metadata which can be used to guide usage of the metric.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_monitoring_notification_channel":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional human-readable description of this notification channel. This description may provide additional details, beyond the display name, for the channel. This may not exceed 1024 Unicode characters.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"An optional human-readable name for this notification channel. It is recommended that you specify a non-empty and unique name in order to make it easier to identify the channels in your project, though this is not enforced. The display name is limited to 512 Unicode characters.","description_kind":"plain","optional":true},"enabled":{"type":"bool","description":"Whether notifications are forwarded to the described channel. This makes it possible to disable delivery of notifications to a particular channel without removing the channel from all alerting policies that reference the channel. This is a more convenient approach when the change is temporary and you want to receive notifications from the same set of alerting policies on the channel at some point in the future.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Configuration fields that define the channel and its behavior. The\npermissible and required labels are specified in the\nNotificationChannelDescriptor corresponding to the type field.\n\nLabels with sensitive data are obfuscated by the API and therefore Terraform cannot\ndetermine if there are upstream changes to these fields. They can also be configured via\nthe sensitive_labels block, but cannot be configured in both places.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The full REST resource name for this channel. The syntax is:\nprojects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]\nThe [CHANNEL_ID] is automatically assigned by the server on creation.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"The type of the notification channel. This field matches the value of the NotificationChannelDescriptor.type field. See https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.notificationChannelDescriptors/list to get the list of valid values such as \"email\", \"slack\", etc...","description_kind":"plain","required":true},"user_labels":{"type":["map","string"],"description":"User-supplied key/value data that does not need to conform to the corresponding NotificationChannelDescriptor's schema, unlike the labels field. This field is intended to be used for organizing and identifying the NotificationChannel objects.The field can contain up to 64 entries. Each key and value is limited to 63 Unicode characters or 128 bytes, whichever is smaller. Labels and values can contain only lowercase letters, numerals, underscores, and dashes. Keys must begin with a letter.","description_kind":"plain","optional":true},"verification_status":{"type":"string","description":"Indicates whether this channel has been verified or not. On a ListNotificationChannels or GetNotificationChannel operation, this field is expected to be populated.If the value is UNVERIFIED, then it indicates that the channel is non-functioning (it both requires verification and lacks verification); otherwise, it is assumed that the channel works.If the channel is neither VERIFIED nor UNVERIFIED, it implies that the channel is of a type that does not require verification or that this specific channel has been exempted from verification because it was created prior to verification being required for channels of this type.This field cannot be modified using a standard UpdateNotificationChannel operation. To change the value of this field, you must call VerifyNotificationChannel.","description_kind":"plain","computed":true}},"block_types":{"sensitive_labels":{"nesting_mode":"list","block":{"attributes":{"auth_token":{"type":"string","description":"An authorization token for a notification channel. Channel types that support this field include: slack","description_kind":"plain","optional":true,"sensitive":true},"password":{"type":"string","description":"An password for a notification channel. Channel types that support this field include: webhook_basicauth","description_kind":"plain","optional":true,"sensitive":true},"service_key":{"type":"string","description":"An servicekey token for a notification channel. Channel types that support this field include: pagerduty","description_kind":"plain","optional":true,"sensitive":true}},"description":"Different notification type behaviors are configured primarily using the the 'labels' field on this\nresource. This block contains the labels which contain secrets or passwords so that they can be marked\nsensitive and hidden from plan output. The name of the field, eg: password, will be the key\nin the 'labels' map in the api request.\n\nCredentials may not be specified in both locations and will cause an error. Changing from one location\nto a different credential configuration in the config will require an apply to update state.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_monitoring_slo":{"version":0,"block":{"attributes":{"calendar_period":{"type":"string","description":"A calendar period, semantically \"since the start of the current\n\u003ccalendarPeriod\u003e\". Possible values: [\"DAY\", \"WEEK\", \"FORTNIGHT\", \"MONTH\"]","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"Name used for UI elements listing this SLO.","description_kind":"plain","optional":true},"goal":{"type":"number","description":"The fraction of service that must be good in order for this objective\nto be met. 0 \u003c goal \u003c= 0.999","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The full resource name for this service. The syntax is:\nprojects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_NAME]","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"rolling_period_days":{"type":"number","description":"A rolling time period, semantically \"in the past X days\".\nMust be between 1 to 30 days, inclusive.","description_kind":"plain","optional":true},"service":{"type":"string","description":"ID of the service to which this SLO belongs.","description_kind":"plain","required":true},"slo_id":{"type":"string","description":"The id to use for this ServiceLevelObjective. If omitted, an id will be generated instead.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"basic_sli":{"nesting_mode":"list","block":{"attributes":{"location":{"type":["set","string"],"description":"An optional set of locations to which this SLI is relevant.\nTelemetry from other locations will not be used to calculate\nperformance for this SLI. If omitted, this SLI applies to all\nlocations in which the Service has activity. For service types\nthat don't support breaking down by location, setting this\nfield will result in an error.","description_kind":"plain","optional":true},"method":{"type":["set","string"],"description":"An optional set of RPCs to which this SLI is relevant.\nTelemetry from other methods will not be used to calculate\nperformance for this SLI. If omitted, this SLI applies to all\nthe Service's methods. For service types that don't support\nbreaking down by method, setting this field will result in an\nerror.","description_kind":"plain","optional":true},"version":{"type":["set","string"],"description":"The set of API versions to which this SLI is relevant.\nTelemetry from other API versions will not be used to\ncalculate performance for this SLI. If omitted,\nthis SLI applies to all API versions. For service types\nthat don't support breaking down by version, setting this\nfield will result in an error.","description_kind":"plain","optional":true}},"block_types":{"availability":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Whether an availability SLI is enabled or not. Must be set to true. Defaults to 'true'.","description_kind":"plain","optional":true}},"description":"Availability based SLI, dervied from count of requests made to this service that return successfully.","description_kind":"plain"},"max_items":1},"latency":{"nesting_mode":"list","block":{"attributes":{"threshold":{"type":"string","description":"A duration string, e.g. 10s.\nGood service is defined to be the count of requests made to\nthis service that return in no more than threshold.","description_kind":"plain","required":true}},"description":"Parameters for a latency threshold SLI.","description_kind":"plain"},"max_items":1}},"description":"Basic Service-Level Indicator (SLI) on a well-known service type.\nPerformance will be computed on the basis of pre-defined metrics.\n\nSLIs are used to measure and calculate the quality of the Service's\nperformance with respect to a single aspect of service quality.\n\nExactly one of the following must be set:\n'basic_sli', 'request_based_sli', 'windows_based_sli'","description_kind":"plain"},"max_items":1},"request_based_sli":{"nesting_mode":"list","block":{"block_types":{"distribution_cut":{"nesting_mode":"list","block":{"attributes":{"distribution_filter":{"type":"string","description":"A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\naggregating values to quantify the good service provided.\n\nMust have ValueType = DISTRIBUTION and\nMetricKind = DELTA or MetricKind = CUMULATIVE.","description_kind":"plain","required":true}},"block_types":{"range":{"nesting_mode":"list","block":{"attributes":{"max":{"type":"number","description":"max value for the range (inclusive). If not given,\nwill be set to \"infinity\", defining an open range\n\"\u003e= range.min\"","description_kind":"plain","optional":true},"min":{"type":"number","description":"Min value for the range (inclusive). If not given,\nwill be set to \"-infinity\", defining an open range\n\"\u003c range.max\"","description_kind":"plain","optional":true}},"description":"Range of numerical values. The computed good_service\nwill be the count of values x in the Distribution such\nthat range.min \u003c= x \u003c= range.max. inclusive of min and\nmax. Open ranges can be defined by setting\njust one of min or max.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Used when good_service is defined by a count of values aggregated in a\nDistribution that fall into a good range. The total_service is the\ntotal count of all values aggregated in the Distribution.\nDefines a distribution TimeSeries filter and thresholds used for\nmeasuring good service and total service.\n\nExactly one of 'distribution_cut' or 'good_total_ratio' can be set.","description_kind":"plain"},"max_items":1},"good_total_ratio":{"nesting_mode":"list","block":{"attributes":{"bad_service_filter":{"type":"string","description":"A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nquantifying bad service provided, either demanded service that\nwas not provided or demanded service that was of inadequate\nquality.\n\nMust have ValueType = DOUBLE or ValueType = INT64 and\nmust have MetricKind = DELTA or MetricKind = CUMULATIVE.\n\nExactly two of 'good_service_filter','bad_service_filter','total_service_filter'\nmust be set (good + bad = total is assumed).","description_kind":"plain","optional":true},"good_service_filter":{"type":"string","description":"A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nquantifying good service provided.\nMust have ValueType = DOUBLE or ValueType = INT64 and\nmust have MetricKind = DELTA or MetricKind = CUMULATIVE.\n\nExactly two of 'good_service_filter','bad_service_filter','total_service_filter'\nmust be set (good + bad = total is assumed).","description_kind":"plain","optional":true},"total_service_filter":{"type":"string","description":"A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nquantifying total demanded service.\n\nMust have ValueType = DOUBLE or ValueType = INT64 and\nmust have MetricKind = DELTA or MetricKind = CUMULATIVE.\n\nExactly two of 'good_service_filter','bad_service_filter','total_service_filter'\nmust be set (good + bad = total is assumed).","description_kind":"plain","optional":true}},"description":"A means to compute a ratio of 'good_service' to 'total_service'.\nDefines computing this ratio with two TimeSeries [monitoring filters](https://cloud.google.com/monitoring/api/v3/filters)\nMust specify exactly two of good, bad, and total service filters.\nThe relationship good_service + bad_service = total_service\nwill be assumed.\n\nExactly one of 'distribution_cut' or 'good_total_ratio' can be set.","description_kind":"plain"},"max_items":1}},"description":"A request-based SLI defines a SLI for which atomic units of\nservice are counted directly.\n\nA SLI describes a good service.\nIt is used to measure and calculate the quality of the Service's\nperformance with respect to a single aspect of service quality.\nExactly one of the following must be set:\n'basic_sli', 'request_based_sli', 'windows_based_sli'","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"windows_based_sli":{"nesting_mode":"list","block":{"attributes":{"good_bad_metric_filter":{"type":"string","description":"A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nwith ValueType = BOOL. The window is good if any true values\nappear in the window. One of 'good_bad_metric_filter',\n'good_total_ratio_threshold', 'metric_mean_in_range',\n'metric_sum_in_range' must be set for 'windows_based_sli'.","description_kind":"plain","optional":true},"window_period":{"type":"string","description":"Duration over which window quality is evaluated, given as a\nduration string \"{X}s\" representing X seconds. Must be an\ninteger fraction of a day and at least 60s.","description_kind":"plain","optional":true}},"block_types":{"good_total_ratio_threshold":{"nesting_mode":"list","block":{"attributes":{"threshold":{"type":"number","description":"If window performance \u003e= threshold, the window is counted\nas good.","description_kind":"plain","optional":true}},"block_types":{"basic_sli_performance":{"nesting_mode":"list","block":{"attributes":{"location":{"type":["set","string"],"description":"An optional set of locations to which this SLI is relevant.\nTelemetry from other locations will not be used to calculate\nperformance for this SLI. If omitted, this SLI applies to all\nlocations in which the Service has activity. For service types\nthat don't support breaking down by location, setting this\nfield will result in an error.","description_kind":"plain","optional":true},"method":{"type":["set","string"],"description":"An optional set of RPCs to which this SLI is relevant.\nTelemetry from other methods will not be used to calculate\nperformance for this SLI. If omitted, this SLI applies to all\nthe Service's methods. For service types that don't support\nbreaking down by method, setting this field will result in an\nerror.","description_kind":"plain","optional":true},"version":{"type":["set","string"],"description":"The set of API versions to which this SLI is relevant.\nTelemetry from other API versions will not be used to\ncalculate performance for this SLI. If omitted,\nthis SLI applies to all API versions. For service types\nthat don't support breaking down by version, setting this\nfield will result in an error.","description_kind":"plain","optional":true}},"block_types":{"availability":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Whether an availability SLI is enabled or not. Must be set to 'true. Defaults to 'true'.","description_kind":"plain","optional":true}},"description":"Availability based SLI, dervied from count of requests made to this service that return successfully.","description_kind":"plain"},"max_items":1},"latency":{"nesting_mode":"list","block":{"attributes":{"threshold":{"type":"string","description":"A duration string, e.g. 10s.\nGood service is defined to be the count of requests made to\nthis service that return in no more than threshold.","description_kind":"plain","required":true}},"description":"Parameters for a latency threshold SLI.","description_kind":"plain"},"max_items":1}},"description":"Basic SLI to evaluate to judge window quality.","description_kind":"plain"},"max_items":1},"performance":{"nesting_mode":"list","block":{"block_types":{"distribution_cut":{"nesting_mode":"list","block":{"attributes":{"distribution_filter":{"type":"string","description":"A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\naggregating values to quantify the good service provided.\n\nMust have ValueType = DISTRIBUTION and\nMetricKind = DELTA or MetricKind = CUMULATIVE.","description_kind":"plain","required":true}},"block_types":{"range":{"nesting_mode":"list","block":{"attributes":{"max":{"type":"number","description":"max value for the range (inclusive). If not given,\nwill be set to \"infinity\", defining an open range\n\"\u003e= range.min\"","description_kind":"plain","optional":true},"min":{"type":"number","description":"Min value for the range (inclusive). If not given,\nwill be set to \"-infinity\", defining an open range\n\"\u003c range.max\"","description_kind":"plain","optional":true}},"description":"Range of numerical values. The computed good_service\nwill be the count of values x in the Distribution such\nthat range.min \u003c= x \u003c= range.max. inclusive of min and\nmax. Open ranges can be defined by setting\njust one of min or max.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Used when good_service is defined by a count of values aggregated in a\nDistribution that fall into a good range. The total_service is the\ntotal count of all values aggregated in the Distribution.\nDefines a distribution TimeSeries filter and thresholds used for\nmeasuring good service and total service.","description_kind":"plain"},"max_items":1},"good_total_ratio":{"nesting_mode":"list","block":{"attributes":{"bad_service_filter":{"type":"string","description":"A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nquantifying bad service provided, either demanded service that\nwas not provided or demanded service that was of inadequate\nquality. Exactly two of\ngood, bad, or total service filter must be defined (where\ngood + bad = total is assumed)\n\nMust have ValueType = DOUBLE or ValueType = INT64 and\nmust have MetricKind = DELTA or MetricKind = CUMULATIVE.","description_kind":"plain","optional":true},"good_service_filter":{"type":"string","description":"A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nquantifying good service provided. Exactly two of\ngood, bad, or total service filter must be defined (where\ngood + bad = total is assumed)\n\nMust have ValueType = DOUBLE or ValueType = INT64 and\nmust have MetricKind = DELTA or MetricKind = CUMULATIVE.","description_kind":"plain","optional":true},"total_service_filter":{"type":"string","description":"A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nquantifying total demanded service. Exactly two of\ngood, bad, or total service filter must be defined (where\ngood + bad = total is assumed)\n\nMust have ValueType = DOUBLE or ValueType = INT64 and\nmust have MetricKind = DELTA or MetricKind = CUMULATIVE.","description_kind":"plain","optional":true}},"description":"A means to compute a ratio of 'good_service' to 'total_service'.\nDefines computing this ratio with two TimeSeries [monitoring filters](https://cloud.google.com/monitoring/api/v3/filters)\nMust specify exactly two of good, bad, and total service filters.\nThe relationship good_service + bad_service = total_service\nwill be assumed.","description_kind":"plain"},"max_items":1}},"description":"Request-based SLI to evaluate to judge window quality.","description_kind":"plain"},"max_items":1}},"description":"Criterion that describes a window as good if its performance is\nhigh enough. One of 'good_bad_metric_filter',\n'good_total_ratio_threshold', 'metric_mean_in_range',\n'metric_sum_in_range' must be set for 'windows_based_sli'.","description_kind":"plain"},"max_items":1},"metric_mean_in_range":{"nesting_mode":"list","block":{"attributes":{"time_series":{"type":"string","description":"A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nspecifying the TimeSeries to use for evaluating window\nThe provided TimeSeries must have ValueType = INT64 or\nValueType = DOUBLE and MetricKind = GAUGE. Mean value 'X'\nshould satisfy 'range.min \u003c= X \u003c= range.max'\nunder good service.","description_kind":"plain","required":true}},"block_types":{"range":{"nesting_mode":"list","block":{"attributes":{"max":{"type":"number","description":"max value for the range (inclusive). If not given,\nwill be set to \"infinity\", defining an open range\n\"\u003e= range.min\"","description_kind":"plain","optional":true},"min":{"type":"number","description":"Min value for the range (inclusive). If not given,\nwill be set to \"-infinity\", defining an open range\n\"\u003c range.max\"","description_kind":"plain","optional":true}},"description":"Range of numerical values. The computed good_service\nwill be the count of values x in the Distribution such\nthat range.min \u003c= x \u003c= range.max. inclusive of min and\nmax. Open ranges can be defined by setting\njust one of min or max. Mean value 'X' of 'time_series'\nvalues should satisfy 'range.min \u003c= X \u003c= range.max' for a\ngood service.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Criterion that describes a window as good if the metric's value\nis in a good range, *averaged* across returned streams.\nOne of 'good_bad_metric_filter',\n\n'good_total_ratio_threshold', 'metric_mean_in_range',\n'metric_sum_in_range' must be set for 'windows_based_sli'.\nAverage value X of 'time_series' should satisfy\n'range.min \u003c= X \u003c= range.max' for a good window.","description_kind":"plain"},"max_items":1},"metric_sum_in_range":{"nesting_mode":"list","block":{"attributes":{"time_series":{"type":"string","description":"A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nspecifying the TimeSeries to use for evaluating window\nquality. The provided TimeSeries must have\nValueType = INT64 or ValueType = DOUBLE and\nMetricKind = GAUGE.\n\nSummed value 'X' should satisfy\n'range.min \u003c= X \u003c= range.max' for a good window.","description_kind":"plain","required":true}},"block_types":{"range":{"nesting_mode":"list","block":{"attributes":{"max":{"type":"number","description":"max value for the range (inclusive). If not given,\nwill be set to \"infinity\", defining an open range\n\"\u003e= range.min\"","description_kind":"plain","optional":true},"min":{"type":"number","description":"Min value for the range (inclusive). If not given,\nwill be set to \"-infinity\", defining an open range\n\"\u003c range.max\"","description_kind":"plain","optional":true}},"description":"Range of numerical values. The computed good_service\nwill be the count of values x in the Distribution such\nthat range.min \u003c= x \u003c= range.max. inclusive of min and\nmax. Open ranges can be defined by setting\njust one of min or max. Summed value 'X' should satisfy\n'range.min \u003c= X \u003c= range.max' for a good window.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Criterion that describes a window as good if the metric's value\nis in a good range, *summed* across returned streams.\nSummed value 'X' of 'time_series' should satisfy\n'range.min \u003c= X \u003c= range.max' for a good window.\n\nOne of 'good_bad_metric_filter',\n'good_total_ratio_threshold', 'metric_mean_in_range',\n'metric_sum_in_range' must be set for 'windows_based_sli'.","description_kind":"plain"},"max_items":1}},"description":"A windows-based SLI defines the criteria for time windows.\ngood_service is defined based off the count of these time windows\nfor which the provided service was of good quality.\n\nA SLI describes a good service. It is used to measure and calculate\nthe quality of the Service's performance with respect to a single\naspect of service quality.\n\nExactly one of the following must be set:\n'basic_sli', 'request_based_sli', 'windows_based_sli'","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_monitoring_uptime_check_config":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"A human-friendly name for the uptime check configuration. The display name should be unique within a Stackdriver Workspace in order to make it easier to identify; however, uniqueness is not enforced.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"A unique resource name for this UptimeCheckConfig. The format is projects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID].","description_kind":"plain","computed":true},"period":{"type":"string","description":"How often, in seconds, the uptime check is performed. Currently, the only supported values are 60s (1 minute), 300s (5 minutes), 600s (10 minutes), and 900s (15 minutes). Optional, defaults to 300s.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"selected_regions":{"type":["list","string"],"description":"The list of regions from which the check will be run. Some regions contain one location, and others contain more than one. If this field is specified, enough regions to include a minimum of 3 locations must be provided, or an error message is returned. Not specifying this field will result in uptime checks running from all regions.","description_kind":"plain","optional":true},"timeout":{"type":"string","description":"The maximum amount of time to wait for the request to complete (must be between 1 and 60 seconds). Accepted formats https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration","description_kind":"plain","required":true},"uptime_check_id":{"type":"string","description":"The id of the uptime check","description_kind":"plain","computed":true}},"block_types":{"content_matchers":{"nesting_mode":"list","block":{"attributes":{"content":{"type":"string","description":"String or regex content to match (max 1024 bytes)","description_kind":"plain","required":true},"matcher":{"type":"string","description":"The type of content matcher that will be applied to the server output, compared to the content string when the check is run. Default value: \"CONTAINS_STRING\" Possible values: [\"CONTAINS_STRING\", \"NOT_CONTAINS_STRING\", \"MATCHES_REGEX\", \"NOT_MATCHES_REGEX\"]","description_kind":"plain","optional":true}},"description":"The expected content on the page the check is run against. Currently, only the first entry in the list is supported, and other entries will be ignored. The server will look for an exact match of the string in the page response's content. This field is optional and should only be specified if a content match is required.","description_kind":"plain"}},"http_check":{"nesting_mode":"list","block":{"attributes":{"body":{"type":"string","description":"The request body associated with the HTTP POST request. If contentType is URL_ENCODED, the body passed in must be URL-encoded. Users can provide a Content-Length header via the headers field or the API will do so. If the requestMethod is GET and body is not empty, the API will return an error. The maximum byte size is 1 megabyte. Note - As with all bytes fields JSON representations are base64 encoded. e.g. \"foo=bar\" in URL-encoded form is \"foo%3Dbar\" and in base64 encoding is \"Zm9vJTI1M0RiYXI=\".","description_kind":"plain","optional":true},"content_type":{"type":"string","description":"The content type to use for the check. Possible values: [\"TYPE_UNSPECIFIED\", \"URL_ENCODED\"]","description_kind":"plain","optional":true},"headers":{"type":["map","string"],"description":"The list of headers to send as part of the uptime check request. If two headers have the same key and different values, they should be entered as a single header, with the value being a comma-separated list of all the desired values as described at https://www.w3.org/Protocols/rfc2616/rfc2616.txt (page 31). Entering two separate headers with the same key in a Create call will cause the first to be overwritten by the second. The maximum number of headers allowed is 100.","description_kind":"plain","optional":true,"computed":true},"mask_headers":{"type":"bool","description":"Boolean specifying whether to encrypt the header information. Encryption should be specified for any headers related to authentication that you do not wish to be seen when retrieving the configuration. The server will be responsible for encrypting the headers. On Get/List calls, if mask_headers is set to True then the headers will be obscured with ******.","description_kind":"plain","optional":true},"path":{"type":"string","description":"The path to the page to run the check against. Will be combined with the host (specified within the MonitoredResource) and port to construct the full URL. If the provided path does not begin with \"/\", a \"/\" will be prepended automatically. Optional (defaults to \"/\").","description_kind":"plain","optional":true},"port":{"type":"number","description":"The port to the page to run the check against. Will be combined with host (specified within the MonitoredResource) and path to construct the full URL. Optional (defaults to 80 without SSL, or 443 with SSL).","description_kind":"plain","optional":true,"computed":true},"request_method":{"type":"string","description":"The HTTP request method to use for the check. If set to METHOD_UNSPECIFIED then requestMethod defaults to GET. Default value: \"GET\" Possible values: [\"METHOD_UNSPECIFIED\", \"GET\", \"POST\"]","description_kind":"plain","optional":true},"use_ssl":{"type":"bool","description":"If true, use HTTPS instead of HTTP to run the check.","description_kind":"plain","optional":true},"validate_ssl":{"type":"bool","description":"Boolean specifying whether to include SSL certificate validation as a part of the Uptime check. Only applies to checks where monitoredResource is set to uptime_url. If useSsl is false, setting validateSsl to true has no effect.","description_kind":"plain","optional":true}},"block_types":{"auth_info":{"nesting_mode":"list","block":{"attributes":{"password":{"type":"string","description":"The password to authenticate.","description_kind":"plain","required":true,"sensitive":true},"username":{"type":"string","description":"The username to authenticate.","description_kind":"plain","required":true}},"description":"The authentication information. Optional when creating an HTTP check; defaults to empty.","description_kind":"plain"},"max_items":1}},"description":"Contains information needed to make an HTTP or HTTPS check.","description_kind":"plain"},"max_items":1},"monitored_resource":{"nesting_mode":"list","block":{"attributes":{"labels":{"type":["map","string"],"description":"Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels \"project_id\", \"instance_id\", and \"zone\".","description_kind":"plain","required":true},"type":{"type":"string","description":"The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.monitoredResourceDescriptors#MonitoredResourceDescriptor) object. For example, the type of a Compute Engine VM instance is gce_instance. For a list of types, see Monitoring resource types (https://cloud.google.com/monitoring/api/resources) and Logging resource types (https://cloud.google.com/logging/docs/api/v2/resource-list).","description_kind":"plain","required":true}},"description":"The monitored resource (https://cloud.google.com/monitoring/api/resources) associated with the configuration. The following monitored resource types are supported for uptime checks: uptime_url gce_instance gae_app aws_ec2_instance aws_elb_load_balancer","description_kind":"plain"},"max_items":1},"resource_group":{"nesting_mode":"list","block":{"attributes":{"group_id":{"type":"string","description":"The group of resources being monitored. Should be the 'name' of a group","description_kind":"plain","optional":true},"resource_type":{"type":"string","description":"The resource type of the group members. Possible values: [\"RESOURCE_TYPE_UNSPECIFIED\", \"INSTANCE\", \"AWS_ELB_LOAD_BALANCER\"]","description_kind":"plain","optional":true}},"description":"The group resource associated with the configuration.","description_kind":"plain"},"max_items":1},"tcp_check":{"nesting_mode":"list","block":{"attributes":{"port":{"type":"number","description":"The port to the page to run the check against. Will be combined with host (specified within the MonitoredResource) to construct the full URL.","description_kind":"plain","required":true}},"description":"Contains information needed to make a TCP check.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_network_connectivity_hub":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Output only. The time the hub was created.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of the hub.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).","description_kind":"plain","optional":true},"name":{"type":"string","description":"Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}`","description_kind":"plain","required":true},"project":{"type":"string","description":"The project for the resource","description_kind":"plain","optional":true,"computed":true},"routing_vpcs":{"type":["list",["object",{"uri":"string"}]],"description":"The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub.","description_kind":"plain","computed":true},"state":{"type":"string","description":"Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING","description_kind":"plain","computed":true},"unique_id":{"type":"string","description":"Output only. The Google-generated UUID for the hub. This value is unique across all hub resources. If a hub is deleted and another with the same name is created, the new hub is assigned a different unique_id.","description_kind":"plain","computed":true},"update_time":{"type":"string","description":"Output only. The time the hub was last updated.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_network_connectivity_spoke":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Output only. The time the spoke was created.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of the spoke.","description_kind":"plain","optional":true},"hub":{"type":"string","description":"Immutable. The URI of the hub that this spoke is attached to.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).","description_kind":"plain","optional":true},"location":{"type":"string","description":"The location for the resource","description_kind":"plain","required":true},"name":{"type":"string","description":"Immutable. The name of the spoke. Spoke names must be unique.","description_kind":"plain","required":true},"project":{"type":"string","description":"The project for the resource","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description":"Output only. The current lifecycle state of this spoke. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING","description_kind":"plain","computed":true},"unique_id":{"type":"string","description":"Output only. The Google-generated UUID for the spoke. This value is unique across all spoke resources. If a spoke is deleted and another with the same name is created, the new spoke is assigned a different unique_id.","description_kind":"plain","computed":true},"update_time":{"type":"string","description":"Output only. The time the spoke was last updated.","description_kind":"plain","computed":true}},"block_types":{"linked_interconnect_attachments":{"nesting_mode":"list","block":{"attributes":{"site_to_site_data_transfer":{"type":"bool","description":"A value that controls whether site-to-site data transfer is enabled for these resources. Note that data transfer is available only in supported locations.","description_kind":"plain","required":true},"uris":{"type":["list","string"],"description":"The URIs of linked interconnect attachment resources","description_kind":"plain","required":true}},"description":"A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes.","description_kind":"plain"},"max_items":1},"linked_router_appliance_instances":{"nesting_mode":"list","block":{"attributes":{"site_to_site_data_transfer":{"type":"bool","description":"A value that controls whether site-to-site data transfer is enabled for these resources. Note that data transfer is available only in supported locations.","description_kind":"plain","required":true}},"block_types":{"instances":{"nesting_mode":"list","block":{"attributes":{"ip_address":{"type":"string","description":"The IP address on the VM to use for peering.","description_kind":"plain","optional":true},"virtual_machine":{"type":"string","description":"The URI of the virtual machine resource","description_kind":"plain","optional":true}},"description":"The list of router appliance instances","description_kind":"plain"},"min_items":1}},"description":"The URIs of linked Router appliance resources","description_kind":"plain"},"max_items":1},"linked_vpn_tunnels":{"nesting_mode":"list","block":{"attributes":{"site_to_site_data_transfer":{"type":"bool","description":"A value that controls whether site-to-site data transfer is enabled for these resources. Note that data transfer is available only in supported locations.","description_kind":"plain","required":true},"uris":{"type":["list","string"],"description":"The URIs of linked VPN tunnel resources.","description_kind":"plain","required":true}},"description":"The URIs of linked VPN tunnel resources","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_network_management_connectivity_test":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The user-supplied description of the Connectivity Test.\nMaximum of 512 characters.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Resource labels to represent user-provided metadata.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Unique name for the connectivity test.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description":"IP Protocol of the test. When not provided, \"TCP\" is assumed.","description_kind":"plain","optional":true},"related_projects":{"type":["list","string"],"description":"Other projects that may be relevant for reachability analysis.\nThis is applicable to scenarios where a test can cross project\nboundaries.","description_kind":"plain","optional":true}},"block_types":{"destination":{"nesting_mode":"list","block":{"attributes":{"instance":{"type":"string","description":"A Compute Engine instance URI.","description_kind":"plain","optional":true},"ip_address":{"type":"string","description":"The IP address of the endpoint, which can be an external or\ninternal IP. An IPv6 address is only allowed when the test's\ndestination is a global load balancer VIP.","description_kind":"plain","optional":true},"network":{"type":"string","description":"A Compute Engine network URI.","description_kind":"plain","optional":true},"port":{"type":"number","description":"The IP protocol port of the endpoint. Only applicable when\nprotocol is TCP or UDP.","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"Project ID where the endpoint is located. The Project ID can be\nderived from the URI if you provide a VM instance or network URI.\nThe following are two cases where you must provide the project ID:\n1. Only the IP address is specified, and the IP address is within\na GCP project. 2. When you are using Shared VPC and the IP address\nthat you provide is from the service project. In this case, the\nnetwork that the IP address resides in is defined in the host\nproject.","description_kind":"plain","optional":true}},"description":"Required. Destination specification of the Connectivity Test.\n\nYou can use a combination of destination IP address, Compute\nEngine VM instance, or VPC network to uniquely identify the\ndestination location.\n\nEven if the destination IP address is not unique, the source IP\nlocation is unique. Usually, the analysis can infer the destination\nendpoint from route information.\n\nIf the destination you specify is a VM instance and the instance has\nmultiple network interfaces, then you must also specify either a\ndestination IP address or VPC network to identify the destination\ninterface.\n\nA reachability analysis proceeds even if the destination location\nis ambiguous. However, the result can include endpoints that you\ndon't intend to test.","description_kind":"plain"},"min_items":1,"max_items":1},"source":{"nesting_mode":"list","block":{"attributes":{"instance":{"type":"string","description":"A Compute Engine instance URI.","description_kind":"plain","optional":true},"ip_address":{"type":"string","description":"The IP address of the endpoint, which can be an external or\ninternal IP. An IPv6 address is only allowed when the test's\ndestination is a global load balancer VIP.","description_kind":"plain","optional":true},"network":{"type":"string","description":"A Compute Engine network URI.","description_kind":"plain","optional":true},"network_type":{"type":"string","description":"Type of the network where the endpoint is located. Possible values: [\"GCP_NETWORK\", \"NON_GCP_NETWORK\"]","description_kind":"plain","optional":true},"port":{"type":"number","description":"The IP protocol port of the endpoint. Only applicable when\nprotocol is TCP or UDP.","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"Project ID where the endpoint is located. The Project ID can be\nderived from the URI if you provide a VM instance or network URI.\nThe following are two cases where you must provide the project ID:\n\n1. Only the IP address is specified, and the IP address is\n within a GCP project.\n2. When you are using Shared VPC and the IP address\n that you provide is from the service project. In this case,\n the network that the IP address resides in is defined in the\n host project.","description_kind":"plain","optional":true}},"description":"Required. Source specification of the Connectivity Test.\n\nYou can use a combination of source IP address, virtual machine\n(VM) instance, or Compute Engine network to uniquely identify the\nsource location.\n\nExamples: If the source IP address is an internal IP address within\na Google Cloud Virtual Private Cloud (VPC) network, then you must\nalso specify the VPC network. Otherwise, specify the VM instance,\nwhich already contains its internal IP address and VPC network\ninformation.\n\nIf the source of the test is within an on-premises network, then\nyou must provide the destination VPC network.\n\nIf the source endpoint is a Compute Engine VM instance with multiple\nnetwork interfaces, the instance itself is not sufficient to\nidentify the endpoint. So, you must also specify the source IP\naddress or VPC network.\n\nA reachability analysis proceeds even if the source location is\nambiguous. However, the test result may include endpoints that\nyou don't intend to test.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_network_services_edge_cache_keyset":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A human-readable description of the resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Set of label tags associated with the EdgeCache resource.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is created.\nThe name must be 1-64 characters long, and match the regular expression [a-zA-Z][a-zA-Z0-9_-]* which means the first character must be a letter,\nand all following characters must be a dash, underscore, letter or digit.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"public_key":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description":"The ID of the public key. The ID must be 1-63 characters long, and comply with RFC1035.\nThe name must be 1-64 characters long, and match the regular expression [a-zA-Z][a-zA-Z0-9_-]*\nwhich means the first character must be a letter, and all following characters must be a dash, underscore, letter or digit.","description_kind":"plain","required":true},"value":{"type":"string","description":"The base64-encoded value of the Ed25519 public key. The base64 encoding can be padded (44 bytes) or unpadded (43 bytes).\nRepresentations or encodings of the public key other than this will be rejected with an error.","description_kind":"plain","required":true,"sensitive":true}},"description":"An ordered list of Ed25519 public keys to use for validating signed requests.\nYou must specify at least one (1) key, and may have up to three (3) keys.\n\nEd25519 public keys are not secret, and only allow Google to validate a request was signed by your corresponding private key.\nYou should ensure that the private key is kept secret, and that only authorized users can add public keys to a keyset.","description_kind":"plain"},"min_items":1,"max_items":3},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_network_services_edge_cache_origin":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A human-readable description of the resource.","description_kind":"plain","optional":true},"failover_origin":{"type":"string","description":"The Origin resource to try when the current origin cannot be reached.\nAfter maxAttempts is reached, the configured failoverOrigin will be used to fulfil the request.\n\nThe value of timeout.maxAttemptsTimeout dictates the timeout across all origins.\nA reference to a Topic resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Set of label tags associated with the EdgeCache resource.","description_kind":"plain","optional":true},"max_attempts":{"type":"number","description":"The maximum number of attempts to cache fill from this origin. Another attempt is made when a cache fill fails with one of the retryConditions.\n\nOnce maxAttempts to this origin have failed the failoverOrigin will be used, if one is specified. That failoverOrigin may specify its own maxAttempts,\nretryConditions and failoverOrigin to control its own cache fill failures.\n\nThe total number of allowed attempts to cache fill across this and failover origins is limited to four.\nThe total time allowed for cache fill attempts across this and failover origins can be controlled with maxAttemptsTimeout.\n\nThe last valid, non-retried response from all origins will be returned to the client.\nIf no origin returns a valid response, an HTTP 502 will be returned to the client.\n\nDefaults to 1. Must be a value greater than 0 and less than 4.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is created.\nThe name must be 1-64 characters long, and match the regular expression [a-zA-Z][a-zA-Z0-9_-]* which means the first character must be a letter,\nand all following characters must be a dash, underscore, letter or digit.","description_kind":"plain","required":true},"origin_address":{"type":"string","description":"A fully qualified domain name (FQDN) or IP address reachable over the public Internet, or the address of a Google Cloud Storage bucket.\n\nThis address will be used as the origin for cache requests - e.g. FQDN: media-backend.example.com, IPv4: 35.218.1.1, IPv6: 2607:f8b0:4012:809::200e, Cloud Storage: gs://bucketname\n\nWhen providing an FQDN (hostname), it must be publicly resolvable (e.g. via Google public DNS) and IP addresses must be publicly routable. It must not contain a protocol (e.g., https://) and it must not contain any slashes.\nIf a Cloud Storage bucket is provided, it must be in the canonical \"gs://bucketname\" format. Other forms, such as \"storage.googleapis.com\", will be rejected.","description_kind":"plain","required":true},"port":{"type":"number","description":"The port to connect to the origin on.\nDefaults to port 443 for HTTP2 and HTTPS protocols, and port 80 for HTTP.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description":"The protocol to use to connect to the configured origin. Defaults to HTTP2, and it is strongly recommended that users use HTTP2 for both security \u0026 performance.\n\nWhen using HTTP2 or HTTPS as the protocol, a valid, publicly-signed, unexpired TLS (SSL) certificate must be presented by the origin server. Possible values: [\"HTTP2\", \"HTTPS\", \"HTTP\"]","description_kind":"plain","optional":true,"computed":true},"retry_conditions":{"type":["list","string"],"description":"Specifies one or more retry conditions for the configured origin.\n\nIf the failure mode during a connection attempt to the origin matches the configured retryCondition(s),\nthe origin request will be retried up to maxAttempts times. The failoverOrigin, if configured, will then be used to satisfy the request.\n\nThe default retryCondition is \"CONNECT_FAILURE\".\n\nretryConditions apply to this origin, and not subsequent failoverOrigin(s),\nwhich may specify their own retryConditions and maxAttempts.\n\nValid values are:\n\n- CONNECT_FAILURE: Retry on failures connecting to origins, for example due to connection timeouts.\n- HTTP_5XX: Retry if the origin responds with any 5xx response code, or if the origin does not respond at all, example: disconnects, reset, read timeout, connection failure, and refused streams.\n- GATEWAY_ERROR: Similar to 5xx, but only applies to response codes 502, 503 or 504.\n- RETRIABLE_4XX: Retry for retriable 4xx response codes, which include HTTP 409 (Conflict) and HTTP 429 (Too Many Requests)\n- NOT_FOUND: Retry if the origin returns a HTTP 404 (Not Found). This can be useful when generating video content, and the segment is not available yet.\n- FORBIDDEN: Retry if the origin returns a HTTP 403 (Forbidden). Possible values: [\"CONNECT_FAILURE\", \"HTTP_5XX\", \"GATEWAY_ERROR\", \"RETRIABLE_4XX\", \"NOT_FOUND\", \"FORBIDDEN\"]","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeout":{"nesting_mode":"list","block":{"attributes":{"connect_timeout":{"type":"string","description":"The maximum duration to wait for a single origin connection to be established, including DNS lookup, TLS handshake and TCP/QUIC connection establishment.\n\nDefaults to 5 seconds. The timeout must be a value between 1s and 15s.\n\nThe connectTimeout capped by the deadline set by the request's maxAttemptsTimeout. The last connection attempt may have a smaller connectTimeout in order to adhere to the overall maxAttemptsTimeout.","description_kind":"plain","optional":true},"max_attempts_timeout":{"type":"string","description":"The maximum time across all connection attempts to the origin, including failover origins, before returning an error to the client. A HTTP 504 will be returned if the timeout is reached before a response is returned.\n\nDefaults to 15 seconds. The timeout must be a value between 1s and 30s.\n\nIf a failoverOrigin is specified, the maxAttemptsTimeout of the first configured origin sets the deadline for all connection attempts across all failoverOrigins.","description_kind":"plain","optional":true},"read_timeout":{"type":"string","description":"The maximum duration to wait between reads of a single HTTP connection/stream.\n\nDefaults to 15 seconds. The timeout must be a value between 1s and 30s.\n\nThe readTimeout is capped by the responseTimeout. All reads of the HTTP connection/stream must be completed by the deadline set by the responseTimeout.\n\nIf the response headers have already been written to the connection, the response will be truncated and logged.","description_kind":"plain","optional":true},"response_timeout":{"type":"string","description":"The maximum duration to wait for the last byte of a response to arrive when reading from the HTTP connection/stream.\n\nDefaults to 30 seconds. The timeout must be a value between 1s and 120s.\n\nThe responseTimeout starts after the connection has been established.\n\nThis also applies to HTTP Chunked Transfer Encoding responses, and/or when an open-ended Range request is made to the origin. Origins that take longer to write additional bytes to the response than the configured responseTimeout will result in an error being returned to the client.\n\nIf the response headers have already been written to the connection, the response will be truncated and logged.","description_kind":"plain","optional":true}},"description":"The connection and HTTP timeout configuration for this origin.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_network_services_edge_cache_service":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"A human-readable description of the resource.","description_kind":"plain","optional":true},"disable_http2":{"type":"bool","description":"Disables HTTP/2.\n\nHTTP/2 (h2) is enabled by default and recommended for performance. HTTP/2 improves connection re-use and reduces connection setup overhead by sending multiple streams over the same connection.\n\nSome legacy HTTP clients may have issues with HTTP/2 connections due to broken HTTP/2 implementations. Setting this to true will prevent HTTP/2 from being advertised and negotiated.","description_kind":"plain","optional":true},"disable_quic":{"type":"bool","description":"HTTP/3 (IETF QUIC) and Google QUIC are enabled by default.","description_kind":"plain","optional":true,"computed":true},"edge_security_policy":{"type":"string","description":"Resource URL that points at the Cloud Armor edge security policy that is applied on each request against the EdgeCacheService.","description_kind":"plain","optional":true},"edge_ssl_certificates":{"type":["list","string"],"description":"URLs to sslCertificate resources that are used to authenticate connections between users and the EdgeCacheService.\n\nNote that only \"global\" certificates with a \"scope\" of \"EDGE_CACHE\" can be attached to an EdgeCacheService.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipv4_addresses":{"type":["list","string"],"description":"The IPv4 addresses associated with this service. Addresses are static for the lifetime of the service.","description_kind":"plain","computed":true},"ipv6_addresses":{"type":["list","string"],"description":"The IPv6 addresses associated with this service. Addresses are static for the lifetime of the service.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Set of label tags associated with the EdgeCache resource.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is created.\nThe name must be 1-64 characters long, and match the regular expression [a-zA-Z][a-zA-Z0-9_-]* which means the first character must be a letter,\nand all following characters must be a dash, underscore, letter or digit.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"require_tls":{"type":"bool","description":"Require TLS (HTTPS) for all clients connecting to this service.\n\nClients who connect over HTTP (port 80) will receive a HTTP 301 to the same URL over HTTPS (port 443).\nYou must have at least one (1) edgeSslCertificate specified to enable this.","description_kind":"plain","optional":true,"computed":true},"ssl_policy":{"type":"string","description":"URL of the SslPolicy resource that will be associated with the EdgeCacheService.\n\nIf not set, the EdgeCacheService has no SSL policy configured, and will default to the \"COMPATIBLE\" policy.","description_kind":"plain","optional":true}},"block_types":{"log_config":{"nesting_mode":"list","block":{"attributes":{"enable":{"type":"bool","description":"Specifies whether to enable logging for traffic served by this service.","description_kind":"plain","optional":true,"computed":true},"sample_rate":{"type":"number","description":"Configures the sampling rate of requests, where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. The default value is 1.0, and the value of the field must be in [0, 1].\n\nThis field can only be specified if logging is enabled for this service.","description_kind":"plain","optional":true}},"description":"Specifies the logging options for the traffic served by this service. If logging is enabled, logs will be exported to Cloud Logging.","description_kind":"plain"},"max_items":1},"routing":{"nesting_mode":"list","block":{"block_types":{"host_rule":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"A human-readable description of the hostRule.","description_kind":"plain","optional":true},"hosts":{"type":["list","string"],"description":"The list of host patterns to match.\n\nHost patterns must be valid hostnames. Ports are not allowed. Wildcard hosts are supported in the suffix or prefix form. * matches any string of ([a-z0-9-.]*). It does not match the empty string.\n\nWhen multiple hosts are specified, hosts are matched in the following priority:\n\n 1. Exact domain names: ''www.foo.com''.\n 2. Suffix domain wildcards: ''*.foo.com'' or ''*-bar.foo.com''.\n 3. Prefix domain wildcards: ''foo.*'' or ''foo-*''.\n 4. Special wildcard ''*'' matching any domain.\n\n Notes:\n\n The wildcard will not match the empty string. e.g. ''*-bar.foo.com'' will match ''baz-bar.foo.com'' but not ''-bar.foo.com''. The longest wildcards match first. Only a single host in the entire service can match on ''*''. A domain must be unique across all configured hosts within a service.\n\n Hosts are matched against the HTTP Host header, or for HTTP/2 and HTTP/3, the \":authority\" header, from the incoming request.\n\n You may specify up to 10 hosts.","description_kind":"plain","required":true},"path_matcher":{"type":"string","description":"The name of the pathMatcher associated with this hostRule.","description_kind":"plain","required":true}},"description":"The list of hostRules to match against. These rules define which hostnames the EdgeCacheService will match against, and which route configurations apply.","description_kind":"plain"},"min_items":1,"max_items":5},"path_matcher":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"A human-readable description of the resource.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name to which this PathMatcher is referred by the HostRule.","description_kind":"plain","required":true}},"block_types":{"route_rule":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"A human-readable description of the routeRule.","description_kind":"plain","optional":true},"origin":{"type":"string","description":"The Origin resource that requests to this route should fetch from when a matching response is not in cache. Origins can be defined as short names (\"my-origin\") or fully-qualified resource URLs - e.g. \"networkservices.googleapis.com/projects/my-project/global/edgecacheorigins/my-origin\"\n\nOnly one of origin or urlRedirect can be set.","description_kind":"plain","optional":true},"priority":{"type":"string","description":"The priority of this route rule, where 1 is the highest priority.\n\nYou cannot configure two or more routeRules with the same priority. Priority for each rule must be set to a number between 1 and 999 inclusive.\n\nPriority numbers can have gaps, which enable you to add or remove rules in the future without affecting the rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers\nto which you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the future without any impact on existing rules.","description_kind":"plain","required":true}},"block_types":{"header_action":{"nesting_mode":"list","block":{"block_types":{"request_header_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header to add.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"Whether to replace all existing headers with the same name.","description_kind":"plain","optional":true,"computed":true}},"description":"Describes a header to add.","description_kind":"plain"},"max_items":5},"request_header_to_remove":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header to remove.","description_kind":"plain","required":true}},"description":"A list of header names for headers that need to be removed from the request prior to forwarding the request to the origin.","description_kind":"plain"},"max_items":10},"response_header_to_add":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"The name of the header to add.","description_kind":"plain","required":true},"header_value":{"type":"string","description":"The value of the header to add.","description_kind":"plain","required":true},"replace":{"type":"bool","description":"Whether to replace all existing headers with the same name.","description_kind":"plain","optional":true,"computed":true}},"description":"Headers to add to the response prior to sending it back to the client.\n\nResponse headers are only sent to the client, and do not have an effect on the cache serving the response.","description_kind":"plain"},"max_items":5},"response_header_to_remove":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description":"Headers to remove from the response prior to sending it back to the client.\n\nResponse headers are only sent to the client, and do not have an effect on the cache serving the response.","description_kind":"plain","required":true}},"description":"A list of header names for headers that need to be removed from the request prior to forwarding the request to the origin.","description_kind":"plain"},"max_items":10}},"description":"The header actions, including adding \u0026 removing headers, for requests that match this route.","description_kind":"plain"},"max_items":1},"match_rule":{"nesting_mode":"list","block":{"attributes":{"full_path_match":{"type":"string","description":"For satisfying the matchRule condition, the path of the request must exactly match the value specified in fullPathMatch after removing any query parameters and anchor that may be part of the original URL.","description_kind":"plain","optional":true},"ignore_case":{"type":"bool","description":"Specifies that prefixMatch and fullPathMatch matches are case sensitive.","description_kind":"plain","optional":true,"computed":true},"path_template_match":{"type":"string","description":"For satisfying the matchRule condition, the path of the request\nmust match the wildcard pattern specified in pathTemplateMatch\nafter removing any query parameters and anchor that may be part\nof the original URL.\n\npathTemplateMatch must be between 1 and 255 characters\n(inclusive). The pattern specified by pathTemplateMatch may\nhave at most 5 wildcard operators and at most 5 variable\ncaptures in total.","description_kind":"plain","optional":true},"prefix_match":{"type":"string","description":"For satisfying the matchRule condition, the request's path must begin with the specified prefixMatch. prefixMatch must begin with a /.","description_kind":"plain","optional":true}},"block_types":{"header_match":{"nesting_mode":"list","block":{"attributes":{"exact_match":{"type":"string","description":"The value of the header should exactly match contents of exactMatch.","description_kind":"plain","optional":true},"header_name":{"type":"string","description":"The header name to match on.","description_kind":"plain","required":true},"invert_match":{"type":"bool","description":"If set to false (default), the headerMatch is considered a match if the match criteria above are met.\nIf set to true, the headerMatch is considered a match if the match criteria above are NOT met.","description_kind":"plain","optional":true,"computed":true},"prefix_match":{"type":"string","description":"The value of the header must start with the contents of prefixMatch.","description_kind":"plain","optional":true},"present_match":{"type":"bool","description":"A header with the contents of headerName must exist. The match takes place whether or not the request's header has a value.","description_kind":"plain","optional":true},"suffix_match":{"type":"string","description":"The value of the header must end with the contents of suffixMatch.","description_kind":"plain","optional":true}},"description":"Specifies a list of header match criteria, all of which must match corresponding headers in the request.","description_kind":"plain"},"max_items":3},"query_parameter_match":{"nesting_mode":"list","block":{"attributes":{"exact_match":{"type":"string","description":"The queryParameterMatch matches if the value of the parameter exactly matches the contents of exactMatch.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the query parameter to match. The query parameter must exist in the request, in the absence of which the request match fails.","description_kind":"plain","required":true},"present_match":{"type":"bool","description":"Specifies that the queryParameterMatch matches if the request contains the query parameter, irrespective of whether the parameter has a value or not.","description_kind":"plain","optional":true}},"description":"Specifies a list of query parameter match criteria, all of which must match corresponding query parameters in the request.","description_kind":"plain"},"max_items":5}},"description":"The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates\nwithin a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.","description_kind":"plain"},"min_items":1,"max_items":5},"route_action":{"nesting_mode":"list","block":{"block_types":{"cdn_policy":{"nesting_mode":"list","block":{"attributes":{"cache_mode":{"type":"string","description":"Cache modes allow users to control the behaviour of the cache, what content it should cache automatically, whether to respect origin headers, or whether to unconditionally cache all responses.\n\nFor all cache modes, Cache-Control headers will be passed to the client. Use clientTtl to override what is sent to the client. Possible values: [\"CACHE_ALL_STATIC\", \"USE_ORIGIN_HEADERS\", \"FORCE_CACHE_ALL\", \"BYPASS_CACHE\"]","description_kind":"plain","optional":true,"computed":true},"client_ttl":{"type":"string","description":"Specifies a separate client (e.g. browser client) TTL, separate from the TTL used by the edge caches. Leaving this empty will use the same cache TTL for both the CDN and the client-facing response.\n\n- The TTL must be \u003e 0 and \u003c= 86400s (1 day)\n- The clientTtl cannot be larger than the defaultTtl (if set)\n- Fractions of a second are not allowed.\n\nOmit this field to use the defaultTtl, or the max-age set by the origin, as the client-facing TTL.\n\nWhen the cache mode is set to \"USE_ORIGIN_HEADERS\" or \"BYPASS_CACHE\", you must omit this field.\nA duration in seconds terminated by 's'. Example: \"3s\".","description_kind":"plain","optional":true},"default_ttl":{"type":"string","description":"Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age).\n\nDefaults to 3600s (1 hour).\n\n- The TTL must be \u003e= 0 and \u003c= 31,536,000 seconds (1 year)\n- Setting a TTL of \"0\" means \"always revalidate\" (equivalent to must-revalidate)\n- The value of defaultTTL cannot be set to a value greater than that of maxTTL.\n- Fractions of a second are not allowed.\n- When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses.\n\nNote that infrequently accessed objects may be evicted from the cache before the defined TTL. Objects that expire will be revalidated with the origin.\n\nWhen the cache mode is set to \"USE_ORIGIN_HEADERS\" or \"BYPASS_CACHE\", you must omit this field.\n\nA duration in seconds terminated by 's'. Example: \"3s\".","description_kind":"plain","optional":true,"computed":true},"max_ttl":{"type":"string","description":"Specifies the maximum allowed TTL for cached content served by this origin.\n\nDefaults to 86400s (1 day).\n\nCache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTtl seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive.\n\n- The TTL must be \u003e= 0 and \u003c= 31,536,000 seconds (1 year)\n- Setting a TTL of \"0\" means \"always revalidate\"\n- The value of maxTtl must be equal to or greater than defaultTtl.\n- Fractions of a second are not allowed.\n\nWhen the cache mode is set to \"USE_ORIGIN_HEADERS\", \"FORCE_CACHE_ALL\", or \"BYPASS_CACHE\", you must omit this field.\n\nA duration in seconds terminated by 's'. Example: \"3s\".","description_kind":"plain","optional":true,"computed":true},"negative_caching":{"type":"bool","description":"Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency.\n\nBy default, the CDNPolicy will apply the following default TTLs to these status codes:\n\n- HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m\n- HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s\n- HTTP 405 (Method Not Found), 414 (URI Too Long), 501 (Not Implemented): 60s\n\nThese defaults can be overridden in negativeCachingPolicy","description_kind":"plain","optional":true},"negative_caching_policy":{"type":["map","string"],"description":"Sets a cache TTL for the specified HTTP status code. negativeCaching must be enabled to configure negativeCachingPolicy.\n\n- Omitting the policy and leaving negativeCaching enabled will use the default TTLs for each status code, defined in negativeCaching.\n- TTLs must be \u003e= 0 (where 0 is \"always revalidate\") and \u003c= 86400s (1 day)\n\nNote that when specifying an explicit negativeCachingPolicy, you should take care to specify a cache TTL for all response codes that you wish to cache. The CDNPolicy will not apply any default negative caching when a policy exists.","description_kind":"plain","optional":true},"signed_request_keyset":{"type":"string","description":"The EdgeCacheKeyset containing the set of public keys used to validate signed requests at the edge.","description_kind":"plain","optional":true,"computed":true},"signed_request_mode":{"type":"string","description":"Whether to enforce signed requests. The default value is DISABLED, which means all content is public, and does not authorize access.\n\nYou must also set a signedRequestKeyset to enable signed requests.\n\nWhen set to REQUIRE_SIGNATURES, all matching requests will have their signature validated. Requests that were not signed with the corresponding private key, or that are otherwise invalid (expired, do not match the signature, IP address, or header) will be rejected with a HTTP 403 and (if enabled) logged. Possible values: [\"DISABLED\", \"REQUIRE_SIGNATURES\"]","description_kind":"plain","optional":true,"computed":true}},"block_types":{"cache_key_policy":{"nesting_mode":"list","block":{"attributes":{"exclude_host":{"type":"bool","description":"If true, requests to different hosts will be cached separately.\n\nNote: this should only be enabled if hosts share the same origin and content. Removing the host from the cache key may inadvertently result in different objects being cached than intended, depending on which route the first user matched.","description_kind":"plain","optional":true,"computed":true},"exclude_query_string":{"type":"bool","description":"If true, exclude query string parameters from the cache key\n\nIf false (the default), include the query string parameters in\nthe cache key according to includeQueryParameters and\nexcludeQueryParameters. If neither includeQueryParameters nor\nexcludeQueryParameters is set, the entire query string will be\nincluded.","description_kind":"plain","optional":true},"excluded_query_parameters":{"type":["list","string"],"description":"Names of query string parameters to exclude from cache keys. All other parameters will be included.\n\nEither specify includedQueryParameters or excludedQueryParameters, not both. '\u0026' and '=' will be percent encoded and not treated as delimiters.","description_kind":"plain","optional":true},"include_protocol":{"type":"bool","description":"If true, http and https requests will be cached separately.","description_kind":"plain","optional":true,"computed":true},"included_cookie_names":{"type":["list","string"],"description":"Names of Cookies to include in cache keys. The cookie name and cookie value of each cookie named will be used as part of the cache key.\n\nCookie names:\n - must be valid RFC 6265 \"cookie-name\" tokens\n - are case sensitive\n - cannot start with \"Edge-Cache-\" (case insensitive)\n\n Note that specifying several cookies, and/or cookies that have a large range of values (e.g., per-user) will dramatically impact the cache hit rate, and may result in a higher eviction rate and reduced performance.\n\n You may specify up to three cookie names.","description_kind":"plain","optional":true},"included_header_names":{"type":["list","string"],"description":"Names of HTTP request headers to include in cache keys. The value of the header field will be used as part of the cache key.\n\n- Header names must be valid HTTP RFC 7230 header field values.\n- Header field names are case insensitive\n- To include the HTTP method, use \":method\"\n\nNote that specifying several headers, and/or headers that have a large range of values (e.g. per-user) will dramatically impact the cache hit rate, and may result in a higher eviction rate and reduced performance.","description_kind":"plain","optional":true},"included_query_parameters":{"type":["list","string"],"description":"Names of query string parameters to include in cache keys. All other parameters will be excluded.\n\nEither specify includedQueryParameters or excludedQueryParameters, not both. '\u0026' and '=' will be percent encoded and not treated as delimiters.","description_kind":"plain","optional":true}},"description":"Defines the request parameters that contribute to the cache key.","description_kind":"plain"},"max_items":1}},"description":"The policy to use for defining caching and signed request behaviour for requests that match this route.","description_kind":"plain"},"max_items":1},"cors_policy":{"nesting_mode":"list","block":{"attributes":{"allow_credentials":{"type":"bool","description":"In response to a preflight request, setting this to true indicates that the actual request can include user credentials.\n\nThis translates to the Access-Control-Allow-Credentials response header.","description_kind":"plain","optional":true},"allow_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Headers response header.","description_kind":"plain","optional":true},"allow_methods":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Methods response header.","description_kind":"plain","optional":true},"allow_origins":{"type":["list","string"],"description":"Specifies the list of origins that will be allowed to do CORS requests.\n\nThis translates to the Access-Control-Allow-Origin response header.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect.","description_kind":"plain","optional":true},"expose_headers":{"type":["list","string"],"description":"Specifies the content for the Access-Control-Allow-Headers response header.","description_kind":"plain","optional":true},"max_age":{"type":"string","description":"Specifies how long results of a preflight request can be cached by a client in seconds. Note that many browser clients enforce a maximum TTL of 600s (10 minutes).\n\n- Setting the value to -1 forces a pre-flight check for all requests (not recommended)\n- A maximum TTL of 86400s can be set, but note that (as above) some clients may force pre-flight checks at a more regular interval.\n- This translates to the Access-Control-Max-Age header.\n\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","required":true}},"description":"CORSPolicy defines Cross-Origin-Resource-Sharing configuration, including which CORS response headers will be set.","description_kind":"plain"},"max_items":1},"url_rewrite":{"nesting_mode":"list","block":{"attributes":{"host_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected origin, the request's host header is replaced with contents of hostRewrite.","description_kind":"plain","optional":true},"path_prefix_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected origin, the matching portion of the request's path is replaced by pathPrefixRewrite.","description_kind":"plain","optional":true},"path_template_rewrite":{"type":"string","description":"Prior to forwarding the request to the selected origin, if the\nrequest matched a pathTemplateMatch, the matching portion of the\nrequest's path is replaced re-written using the pattern specified\nby pathTemplateRewrite.\n\npathTemplateRewrite must be between 1 and 255 characters\n(inclusive), must start with a '/', and must only use variables\ncaptured by the route's pathTemplate matchers.\n\npathTemplateRewrite may only be used when all of a route's\nMatchRules specify pathTemplate.\n\nOnly one of pathPrefixRewrite and pathTemplateRewrite may be\nspecified.","description_kind":"plain","optional":true}},"description":"The URL rewrite configuration for requests that match this route.","description_kind":"plain"},"max_items":1}},"description":"In response to a matching path, the routeAction performs advanced routing actions like URL rewrites, header transformations, etc. prior to forwarding the request to the selected origin.","description_kind":"plain"},"max_items":1},"url_redirect":{"nesting_mode":"list","block":{"attributes":{"host_redirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one that was supplied in the request.","description_kind":"plain","optional":true},"https_redirect":{"type":"bool","description":"If set to true, the URL scheme in the redirected request is set to https. If set to false, the URL scheme of the redirected request will remain the same as that of the request.\n\nThis can only be set if there is at least one (1) edgeSslCertificate set on the service.","description_kind":"plain","optional":true,"computed":true},"path_redirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one that was supplied in the request.\n\npathRedirect cannot be supplied together with prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the original request will be used for the redirect.\n\nThe path value must be between 1 and 1024 characters.","description_kind":"plain","optional":true},"prefix_redirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the routeRule, retaining the remaining portion of the URL before redirecting the request.\n\nprefixRedirect cannot be supplied together with pathRedirect. Supply one alone or neither. If neither is supplied, the path of the original request will be used for the redirect.","description_kind":"plain","optional":true},"redirect_response_code":{"type":"string","description":"The HTTP Status code to use for this RedirectAction.\n\nThe supported values are:\n\n- 'MOVED_PERMANENTLY_DEFAULT', which is the default value and corresponds to 301.\n- 'FOUND', which corresponds to 302.\n- 'SEE_OTHER' which corresponds to 303.\n- 'TEMPORARY_REDIRECT', which corresponds to 307. in this case, the request method will be retained.\n- 'PERMANENT_REDIRECT', which corresponds to 308. in this case, the request method will be retained. Possible values: [\"MOVED_PERMANENTLY_DEFAULT\", \"FOUND\", \"SEE_OTHER\", \"TEMPORARY_REDIRECT\", \"PERMANENT_REDIRECT\"]","description_kind":"plain","optional":true,"computed":true},"strip_query":{"type":"bool","description":"If set to true, any accompanying query portion of the original URL is removed prior to redirecting the request. If set to false, the query portion of the original URL is retained.","description_kind":"plain","optional":true,"computed":true}},"description":"The URL redirect configuration for requests that match this route.","description_kind":"plain"},"max_items":1}},"description":"The routeRules to match against. routeRules support advanced routing behaviour, and can match on paths, headers and query parameters, as well as status codes and HTTP methods.","description_kind":"plain"},"min_items":1,"max_items":64}},"description":"The list of pathMatchers referenced via name by hostRules. PathMatcher is used to match the path portion of the URL when a HostRule matches the URL's host portion.","description_kind":"plain"},"min_items":1,"max_items":10}},"description":"Defines how requests are routed, modified, cached and/or which origin content is filled from.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_notebooks_environment":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Instance creation time","description_kind":"plain","computed":true},"description":{"type":"string","description":"A brief description of this environment.","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"Display name of this environment for the UI.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"A reference to the zone where the machine resides.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name specified for the Environment instance.\nFormat: projects/{project_id}/locations/{location}/environments/{environmentId}","description_kind":"plain","required":true},"post_startup_script":{"type":"string","description":"Path to a Bash script that automatically runs after a notebook instance fully boots up.\nThe path must be a URL or Cloud Storage path. Example: \"gs://path-to-file/file-name\"","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"container_image":{"nesting_mode":"list","block":{"attributes":{"repository":{"type":"string","description":"The path to the container image repository.\nFor example: gcr.io/{project_id}/{imageName}","description_kind":"plain","required":true},"tag":{"type":"string","description":"The tag of the container image. If not specified, this defaults to the latest tag.","description_kind":"plain","optional":true}},"description":"Use a container image to start the notebook instance.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"vm_image":{"nesting_mode":"list","block":{"attributes":{"image_family":{"type":"string","description":"Use this VM image family to find the image; the newest image in this family will be used.","description_kind":"plain","optional":true},"image_name":{"type":"string","description":"Use VM image name to find the image.","description_kind":"plain","optional":true},"project":{"type":"string","description":"The name of the Google Cloud project that this VM image belongs to.\nFormat: projects/{project_id}","description_kind":"plain","required":true}},"description":"Use a Compute Engine VM image to start the notebook instance.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_notebooks_instance":{"version":0,"block":{"attributes":{"boot_disk_size_gb":{"type":"number","description":"The size of the boot disk in GB attached to this instance,\nup to a maximum of 64000 GB (64 TB). The minimum recommended value is 100 GB.\nIf not specified, this defaults to 100.","description_kind":"plain","optional":true},"boot_disk_type":{"type":"string","description":"Possible disk types for notebook instances. Possible values: [\"DISK_TYPE_UNSPECIFIED\", \"PD_STANDARD\", \"PD_SSD\", \"PD_BALANCED\"]","description_kind":"plain","optional":true},"create_time":{"type":"string","description":"Instance creation time","description_kind":"plain","optional":true,"computed":true},"custom_gpu_driver_path":{"type":"string","description":"Specify a custom Cloud Storage path where the GPU driver is stored.\nIf not specified, we'll automatically choose from official GPU drivers.","description_kind":"plain","optional":true},"data_disk_size_gb":{"type":"number","description":"The size of the data disk in GB attached to this instance,\nup to a maximum of 64000 GB (64 TB).\nYou can choose the size of the data disk based on how big your notebooks and data are.\nIf not specified, this defaults to 100.","description_kind":"plain","optional":true},"data_disk_type":{"type":"string","description":"Possible disk types for notebook instances. Possible values: [\"DISK_TYPE_UNSPECIFIED\", \"PD_STANDARD\", \"PD_SSD\", \"PD_BALANCED\"]","description_kind":"plain","optional":true},"disk_encryption":{"type":"string","description":"Disk encryption method used on the boot and data disks, defaults to GMEK. Possible values: [\"DISK_ENCRYPTION_UNSPECIFIED\", \"GMEK\", \"CMEK\"]","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"install_gpu_driver":{"type":"bool","description":"Whether the end user authorizes Google Cloud to install GPU driver\non this instance. If this field is empty or set to false, the GPU driver\nwon't be installed. Only applicable to instances with GPUs.","description_kind":"plain","optional":true},"instance_owners":{"type":["list","string"],"description":"The list of owners of this instance after creation.\nFormat: alias@example.com.\nCurrently supports one owner only.\nIf not specified, all of the service account users of\nyour VM instance's service account can use the instance.","description_kind":"plain","optional":true},"kms_key":{"type":"string","description":"The KMS key used to encrypt the disks, only applicable if diskEncryption is CMEK.\nFormat: projects/{project_id}/locations/{location}/keyRings/{key_ring_id}/cryptoKeys/{key_id}","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"Labels to apply to this instance. These can be later modified by the setLabels method.\nAn object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"A reference to the zone where the machine resides.","description_kind":"plain","required":true},"machine_type":{"type":"string","description":"A reference to a machine type which defines VM kind.","description_kind":"plain","required":true},"metadata":{"type":["map","string"],"description":"Custom metadata to apply to this instance.\nAn object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name specified for the Notebook instance.","description_kind":"plain","required":true},"network":{"type":"string","description":"The name of the VPC that this instance is in.\nFormat: projects/{project_id}/global/networks/{network_id}","description_kind":"plain","optional":true,"computed":true},"no_proxy_access":{"type":"bool","description":"The notebook instance will not register with the proxy..","description_kind":"plain","optional":true},"no_public_ip":{"type":"bool","description":"No public IP will be assigned to this instance.","description_kind":"plain","optional":true},"no_remove_data_disk":{"type":"bool","description":"If true, the data disk will not be auto deleted when deleting the instance.","description_kind":"plain","optional":true},"post_startup_script":{"type":"string","description":"Path to a Bash script that automatically runs after a\nnotebook instance fully boots up. The path must be a URL\nor Cloud Storage path (gs://path-to-file/file-name).","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"proxy_uri":{"type":"string","description":"The proxy endpoint that is used to access the Jupyter notebook.","description_kind":"plain","computed":true},"service_account":{"type":"string","description":"The service account on this instance, giving access to other\nGoogle Cloud services. You can use any service account within\nthe same project, but you must have the service account user\npermission to use the instance. If not specified,\nthe Compute Engine default service account is used.","description_kind":"plain","optional":true,"computed":true},"service_account_scopes":{"type":["list","string"],"description":"Optional. The URIs of service account scopes to be included in Compute Engine instances.\nIf not specified, the following scopes are defined:\n- https://www.googleapis.com/auth/cloud-platform\n- https://www.googleapis.com/auth/userinfo.email","description_kind":"plain","optional":true},"state":{"type":"string","description":"The state of this instance.","description_kind":"plain","computed":true},"subnet":{"type":"string","description":"The name of the subnet that this instance is in.\nFormat: projects/{project_id}/regions/{region}/subnetworks/{subnetwork_id}","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The Compute Engine tags to add to instance.","description_kind":"plain","optional":true},"update_time":{"type":"string","description":"Instance update time.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"accelerator_config":{"nesting_mode":"list","block":{"attributes":{"core_count":{"type":"number","description":"Count of cores of this accelerator.","description_kind":"plain","required":true},"type":{"type":"string","description":"Type of this accelerator. Possible values: [\"ACCELERATOR_TYPE_UNSPECIFIED\", \"NVIDIA_TESLA_K80\", \"NVIDIA_TESLA_P100\", \"NVIDIA_TESLA_V100\", \"NVIDIA_TESLA_P4\", \"NVIDIA_TESLA_T4\", \"NVIDIA_TESLA_T4_VWS\", \"NVIDIA_TESLA_P100_VWS\", \"NVIDIA_TESLA_P4_VWS\", \"NVIDIA_TESLA_A100\", \"TPU_V2\", \"TPU_V3\"]","description_kind":"plain","required":true}},"description":"The hardware accelerator used on this instance. If you use accelerators,\nmake sure that your configuration has enough vCPUs and memory to support the\nmachineType you have selected.","description_kind":"plain"},"max_items":1},"container_image":{"nesting_mode":"list","block":{"attributes":{"repository":{"type":"string","description":"The path to the container image repository.\nFor example: gcr.io/{project_id}/{imageName}","description_kind":"plain","required":true},"tag":{"type":"string","description":"The tag of the container image. If not specified, this defaults to the latest tag.","description_kind":"plain","optional":true}},"description":"Use a container image to start the notebook instance.","description_kind":"plain"},"max_items":1},"shielded_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description":"Defines whether the instance has integrity monitoring enabled. Enables monitoring and attestation of the\nboot integrity of the instance. The attestation is performed against the integrity policy baseline.\nThis baseline is initially derived from the implicitly trusted boot image when the instance is created.\nEnabled by default.","description_kind":"plain","optional":true},"enable_secure_boot":{"type":"bool","description":"Defines whether the instance has Secure Boot enabled. Secure Boot helps ensure that the system only runs\nauthentic software by verifying the digital signature of all boot components, and halting the boot process\nif signature verification fails.\nDisabled by default.","description_kind":"plain","optional":true},"enable_vtpm":{"type":"bool","description":"Defines whether the instance has the vTPM enabled.\nEnabled by default.","description_kind":"plain","optional":true}},"description":"A set of Shielded Instance options. Check [Images using supported Shielded VM features]\nNot all combinations are valid","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"vm_image":{"nesting_mode":"list","block":{"attributes":{"image_family":{"type":"string","description":"Use this VM image family to find the image; the newest image in this family will be used.","description_kind":"plain","optional":true},"image_name":{"type":"string","description":"Use VM image name to find the image.","description_kind":"plain","optional":true},"project":{"type":"string","description":"The name of the Google Cloud project that this VM image belongs to.\nFormat: projects/{project_id}","description_kind":"plain","required":true}},"description":"Use a Compute Engine VM image to start the notebook instance.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_notebooks_instance_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_name":{"type":"string","description_kind":"plain","required":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_notebooks_instance_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_name":{"type":"string","description_kind":"plain","required":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_notebooks_instance_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_name":{"type":"string","description_kind":"plain","required":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_notebooks_location":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the Location resource.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_notebooks_runtime":{"version":0,"block":{"attributes":{"health_state":{"type":"string","description":"The health state of this runtime. For a list of possible output\nvalues, see 'https://cloud.google.com/vertex-ai/docs/workbench/\nreference/rest/v1/projects.locations.runtimes#healthstate'.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"A reference to the zone where the machine resides.","description_kind":"plain","required":true},"metrics":{"type":["list",["object",{"system_metrics":["map","string"]}]],"description":"Contains Runtime daemon metrics such as Service status and JupyterLab\nstatus","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name specified for the Notebook instance.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description":"The state of this runtime.","description_kind":"plain","computed":true}},"block_types":{"access_config":{"nesting_mode":"list","block":{"attributes":{"access_type":{"type":"string","description":"The type of access mode this instance. For valid values, see\n'https://cloud.google.com/vertex-ai/docs/workbench/reference/\nrest/v1/projects.locations.runtimes#RuntimeAccessType'.","description_kind":"plain","optional":true},"proxy_uri":{"type":"string","description":"The proxy endpoint that is used to access the runtime.","description_kind":"plain","computed":true},"runtime_owner":{"type":"string","description":"The owner of this runtime after creation. Format: 'alias@example.com'.\nCurrently supports one owner only.","description_kind":"plain","optional":true}},"description":"The config settings for accessing runtime.","description_kind":"plain"},"max_items":1},"software_config":{"nesting_mode":"list","block":{"attributes":{"custom_gpu_driver_path":{"type":"string","description":"Specify a custom Cloud Storage path where the GPU driver is stored.\nIf not specified, we'll automatically choose from official GPU drivers.","description_kind":"plain","optional":true},"enable_health_monitoring":{"type":"bool","description":"Verifies core internal services are running. Default: True.","description_kind":"plain","optional":true},"idle_shutdown":{"type":"bool","description":"Runtime will automatically shutdown after idle_shutdown_time.\nDefault: True","description_kind":"plain","optional":true},"idle_shutdown_timeout":{"type":"number","description":"Time in minutes to wait before shuting down runtime.\nDefault: 180 minutes","description_kind":"plain","optional":true},"install_gpu_driver":{"type":"bool","description":"Install Nvidia Driver automatically.","description_kind":"plain","optional":true},"notebook_upgrade_schedule":{"type":"string","description":"Cron expression in UTC timezone for schedule instance auto upgrade.\nPlease follow the [cron format](https://en.wikipedia.org/wiki/Cron).","description_kind":"plain","optional":true},"post_startup_script":{"type":"string","description":"Path to a Bash script that automatically runs after a notebook instance\nfully boots up. The path must be a URL or\nCloud Storage path (gs://path-to-file/file-name).","description_kind":"plain","optional":true}},"description":"The config settings for software inside the runtime.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"virtual_machine":{"nesting_mode":"list","block":{"attributes":{"instance_id":{"type":"string","description":"The unique identifier of the Managed Compute Engine instance.","description_kind":"plain","computed":true},"instance_name":{"type":"string","description":"The user-friendly name of the Managed Compute Engine instance.","description_kind":"plain","computed":true}},"block_types":{"virtual_machine_config":{"nesting_mode":"list","block":{"attributes":{"guest_attributes":{"type":["map","string"],"description":"The Compute Engine guest attributes. (see [Project and instance\nguest attributes](https://cloud.google.com/compute/docs/\nstoring-retrieving-metadata#guest_attributes)).","description_kind":"plain","computed":true},"internal_ip_only":{"type":"bool","description":"If true, runtime will only have internal IP addresses. By default,\nruntimes are not restricted to internal IP addresses, and will\nhave ephemeral external IP addresses assigned to each vm. This\n'internal_ip_only' restriction can only be enabled for subnetwork\nenabled networks, and all dependencies must be configured to be\naccessible without external IP addresses.","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"The labels to associate with this runtime. Label **keys** must\ncontain 1 to 63 characters, and must conform to [RFC 1035]\n(https://www.ietf.org/rfc/rfc1035.txt). Label **values** may be\nempty, but, if present, must contain 1 to 63 characters, and must\nconform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). No\nmore than 32 labels can be associated with a cluster.","description_kind":"plain","optional":true,"computed":true},"machine_type":{"type":"string","description":"The Compute Engine machine type used for runtimes.","description_kind":"plain","required":true},"metadata":{"type":["map","string"],"description":"The Compute Engine metadata entries to add to virtual machine.\n(see [Project and instance metadata](https://cloud.google.com\n/compute/docs/storing-retrieving-metadata#project_and_instance\n_metadata)).","description_kind":"plain","optional":true,"computed":true},"network":{"type":"string","description":"The Compute Engine network to be used for machine communications.\nCannot be specified with subnetwork. If neither 'network' nor\n'subnet' is specified, the \"default\" network of the project is\nused, if it exists. A full URL or partial URI. Examples:\n * 'https://www.googleapis.com/compute/v1/projects/[project_id]/\n regions/global/default'\n * 'projects/[project_id]/regions/global/default'\nRuntimes are managed resources inside Google Infrastructure.\nRuntimes support the following network configurations:\n * Google Managed Network (Network \u0026 subnet are empty)\n * Consumer Project VPC (network \u0026 subnet are required). Requires\n configuring Private Service Access.\n * Shared VPC (network \u0026 subnet are required). Requires\n configuring Private Service Access.","description_kind":"plain","optional":true},"nic_type":{"type":"string","description":"The type of vNIC to be used on this interface. This may be gVNIC\nor VirtioNet. Possible values: [\"UNSPECIFIED_NIC_TYPE\", \"VIRTIO_NET\", \"GVNIC\"]","description_kind":"plain","optional":true},"subnet":{"type":"string","description":"The Compute Engine subnetwork to be used for machine\ncommunications. Cannot be specified with network. A full URL or\npartial URI are valid. Examples:\n * 'https://www.googleapis.com/compute/v1/projects/[project_id]/\n regions/us-east1/subnetworks/sub0'\n * 'projects/[project_id]/regions/us-east1/subnetworks/sub0'","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"The Compute Engine tags to add to runtime (see [Tagging instances]\n(https://cloud.google.com/compute/docs/\nlabel-or-tag-resources#tags)).","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone where the virtual machine is located.","description_kind":"plain","computed":true}},"block_types":{"accelerator_config":{"nesting_mode":"list","block":{"attributes":{"core_count":{"type":"number","description":"Count of cores of this accelerator.","description_kind":"plain","optional":true},"type":{"type":"string","description":"Accelerator model. For valid values, see\n'https://cloud.google.com/vertex-ai/docs/workbench/reference/\nrest/v1/projects.locations.runtimes#AcceleratorType'","description_kind":"plain","optional":true}},"description":"The Compute Engine accelerator configuration for this runtime.","description_kind":"plain"},"max_items":1},"container_images":{"nesting_mode":"list","block":{"attributes":{"repository":{"type":"string","description":"The path to the container image repository.\nFor example: gcr.io/{project_id}/{imageName}","description_kind":"plain","required":true},"tag":{"type":"string","description":"The tag of the container image. If not specified, this defaults to the latest tag.","description_kind":"plain","optional":true}},"description":"Use a list of container images to start the notebook instance.","description_kind":"plain"}},"data_disk":{"nesting_mode":"list","block":{"attributes":{"auto_delete":{"type":"bool","description":"Optional. Specifies whether the disk will be auto-deleted\nwhen the instance is deleted (but not when the disk is\ndetached from the instance).","description_kind":"plain","computed":true},"boot":{"type":"bool","description":"Optional. Indicates that this is a boot disk. The virtual\nmachine will use the first partition of the disk for its\nroot filesystem.","description_kind":"plain","computed":true},"device_name":{"type":"string","description":"Optional. Specifies a unique device name of your choice\nthat is reflected into the /dev/disk/by-id/google-* tree\nof a Linux operating system running within the instance.\nThis name can be used to reference the device for mounting,\nresizing, and so on, from within the instance.\nIf not specified, the server chooses a default device name\nto apply to this disk, in the form persistent-disk-x, where\nx is a number assigned by Google Compute Engine. This field\nis only applicable for persistent disks.","description_kind":"plain","computed":true},"guest_os_features":{"type":["list","string"],"description":"Indicates a list of features to enable on the guest operating\nsystem. Applicable only for bootable images. To see a list of\navailable features, read 'https://cloud.google.com/compute/docs/\nimages/create-delete-deprecate-private-images#guest-os-features'\noptions. ''","description_kind":"plain","computed":true},"index":{"type":"number","description":"Output only. A zero-based index to this disk, where 0 is\nreserved for the boot disk. If you have many disks attached\nto an instance, each disk would have a unique index number.","description_kind":"plain","computed":true},"interface":{"type":"string","description":"\"Specifies the disk interface to use for attaching this disk,\nwhich is either SCSI or NVME. The default is SCSI. Persistent\ndisks must always use SCSI and the request will fail if you attempt\nto attach a persistent disk in any other format than SCSI. Local SSDs\ncan use either NVME or SCSI. For performance characteristics of SCSI\nover NVMe, see Local SSD performance. Valid values: * NVME * SCSI\".","description_kind":"plain","optional":true},"kind":{"type":"string","description":"Type of the resource. Always compute#attachedDisk for attached\ndisks.","description_kind":"plain","computed":true},"licenses":{"type":["list","string"],"description":"Output only. Any valid publicly visible licenses.","description_kind":"plain","computed":true},"mode":{"type":"string","description":"The mode in which to attach this disk, either READ_WRITE\nor READ_ONLY. If not specified, the default is to attach\nthe disk in READ_WRITE mode.","description_kind":"plain","optional":true},"source":{"type":"string","description":"Specifies a valid partial or full URL to an existing\nPersistent Disk resource.","description_kind":"plain","optional":true},"type":{"type":"string","description":"Specifies the type of the disk, either SCRATCH or PERSISTENT.\nIf not specified, the default is PERSISTENT.","description_kind":"plain","optional":true}},"block_types":{"initialize_params":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Provide this property when creating the disk.","description_kind":"plain","optional":true},"disk_name":{"type":"string","description":"Specifies the disk name. If not specified, the default is\nto use the name of the instance. If the disk with the\ninstance name exists already in the given zone/region, a\nnew name will be automatically generated.","description_kind":"plain","optional":true},"disk_size_gb":{"type":"number","description":"Specifies the size of the disk in base-2 GB. If not\nspecified, the disk will be the same size as the image\n(usually 10GB). If specified, the size must be equal to\nor larger than 10GB. Default 100 GB.","description_kind":"plain","optional":true},"disk_type":{"type":"string","description":"The type of the boot disk attached to this runtime,\ndefaults to standard persistent disk. For valid values,\nsee 'https://cloud.google.com/vertex-ai/docs/workbench/\nreference/rest/v1/projects.locations.runtimes#disktype'","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"Labels to apply to this disk. These can be later modified\nby the disks.setLabels method. This field is only\napplicable for persistent disks.","description_kind":"plain","optional":true,"computed":true}},"description":"Input only. Specifies the parameters for a new disk that will\nbe created alongside the new instance. Use initialization\nparameters to create boot disks or local SSDs attached to the\nnew instance. This property is mutually exclusive with the\nsource property; you can only define one or the other, but not\nboth.","description_kind":"plain"},"max_items":1}},"description":"Data disk option configuration settings.","description_kind":"plain"},"min_items":1,"max_items":1},"encryption_config":{"nesting_mode":"list","block":{"attributes":{"kms_key":{"type":"string","description":"The Cloud KMS resource identifier of the customer-managed\nencryption key used to protect a resource, such as a disks.\nIt has the following format:\n'projects/{PROJECT_ID}/locations/{REGION}/keyRings/\n{KEY_RING_NAME}/cryptoKeys/{KEY_NAME}'","description_kind":"plain","optional":true}},"description":"Encryption settings for virtual machine data disk.","description_kind":"plain"},"max_items":1},"shielded_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description":"Defines whether the instance has integrity monitoring enabled.\nEnables monitoring and attestation of the boot integrity of\nthe instance. The attestation is performed against the\nintegrity policy baseline. This baseline is initially derived\nfrom the implicitly trusted boot image when the instance is\ncreated. Enabled by default.","description_kind":"plain","optional":true},"enable_secure_boot":{"type":"bool","description":"Defines whether the instance has Secure Boot enabled.Secure\nBoot helps ensure that the system only runs authentic software\nby verifying the digital signature of all boot components, and\nhalting the boot process if signature verification fails.\nDisabled by default.","description_kind":"plain","optional":true},"enable_vtpm":{"type":"bool","description":"Defines whether the instance has the vTPM enabled. Enabled by\ndefault.","description_kind":"plain","optional":true}},"description":"Shielded VM Instance configuration settings.","description_kind":"plain"},"max_items":1}},"description":"Virtual Machine configuration settings.","description_kind":"plain"},"max_items":1}},"description":"Use a Compute Engine VM image to start the managed notebook instance.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_notebooks_runtime_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"runtime_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_notebooks_runtime_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"runtime_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_notebooks_runtime_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"runtime_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_org_policy_policy":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, \"projects/123/policies/compute.disableSerialPortAccess\". Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.","description_kind":"plain","required":true},"parent":{"type":"string","description":"The parent of the resource.","description_kind":"plain","required":true}},"block_types":{"spec":{"nesting_mode":"list","block":{"attributes":{"etag":{"type":"string","description":"An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.","description_kind":"plain","computed":true},"inherit_from_parent":{"type":"bool","description":"Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.","description_kind":"plain","optional":true},"reset":{"type":"bool","description":"Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.","description_kind":"plain","optional":true},"update_time":{"type":"string","description":"Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.","description_kind":"plain","computed":true}},"block_types":{"rules":{"nesting_mode":"list","block":{"attributes":{"allow_all":{"type":"string","description":"Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.","description_kind":"plain","optional":true},"deny_all":{"type":"string","description":"Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.","description_kind":"plain","optional":true},"enforce":{"type":"string","description":"If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.","description_kind":"plain","optional":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.","description_kind":"plain","optional":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.","description_kind":"plain","optional":true},"location":{"type":"string","description":"Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.","description_kind":"plain","optional":true},"title":{"type":"string","description":"Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.","description_kind":"plain","optional":true}},"description":"A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr' must include from 1 to 10 subexpressions, joined by the \"||\" or \"\u0026\u0026\" operators. Each subexpression must be of the form \"resource.matchTag('/tag_key_short_name, 'tag_value_short_name')\". or \"resource.matchTagId('tagKeys/key_id', 'tagValues/value_id')\". where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: \"resource.matchTag('123456789/environment, 'prod')\". or \"resource.matchTagId('tagKeys/123', 'tagValues/456')\".","description_kind":"plain"},"max_items":1},"values":{"nesting_mode":"list","block":{"attributes":{"allowed_values":{"type":["list","string"],"description":"List of values allowed at this resource.","description_kind":"plain","optional":true},"denied_values":{"type":["list","string"],"description":"List of values denied at this resource.","description_kind":"plain","optional":true}},"description":"List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.","description_kind":"plain"},"max_items":1}},"description":"Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.","description_kind":"plain"}}},"description":"Basic information about the Organization Policy.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_organization_access_approval_settings":{"version":0,"block":{"attributes":{"active_key_version":{"type":"string","description":"The asymmetric crypto key version to use for signing approval requests.\nEmpty active_key_version indicates that a Google-managed key should be used for signing.","description_kind":"plain","optional":true},"ancestor_has_active_key_version":{"type":"bool","description":"This field will always be unset for the organization since organizations do not have ancestors.","description_kind":"plain","computed":true},"enrolled_ancestor":{"type":"bool","description":"This field will always be unset for the organization since organizations do not have ancestors.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"invalid_key_version":{"type":"bool","description":"If the field is true, that indicates that there is some configuration issue with the active_key_version\nconfigured on this Organization (e.g. it doesn't exist or the Access Approval service account doesn't have the\ncorrect permissions on it, etc.).","description_kind":"plain","computed":true},"name":{"type":"string","description":"The resource name of the settings. Format is \"organizations/{organization_id}/accessApprovalSettings\"","description_kind":"plain","computed":true},"notification_emails":{"type":["set","string"],"description":"A list of email addresses to which notifications relating to approval requests should be sent.\nNotifications relating to a resource will be sent to all emails in the settings of ancestor\nresources of that resource. A maximum of 50 email addresses are allowed.","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"ID of the organization of the access approval settings.","description_kind":"plain","required":true}},"block_types":{"enrolled_services":{"nesting_mode":"set","block":{"attributes":{"cloud_product":{"type":"string","description":"The product for which Access Approval will be enrolled. Allowed values are listed (case-sensitive):\n all\n appengine.googleapis.com\n bigquery.googleapis.com\n bigtable.googleapis.com\n cloudkms.googleapis.com\n compute.googleapis.com\n dataflow.googleapis.com\n iam.googleapis.com\n pubsub.googleapis.com\n storage.googleapis.com","description_kind":"plain","required":true},"enrollment_level":{"type":"string","description":"The enrollment level of the service. Default value: \"BLOCK_ALL\" Possible values: [\"BLOCK_ALL\"]","description_kind":"plain","optional":true}},"description":"A list of Google Cloud Services for which the given resource has Access Approval enrolled.\nAccess requests for the resource given by name against any of these services contained here will be required\nto have explicit approval. Enrollment can be done for individual services.\n\nA maximum of 10 enrolled services will be enforced, to be expanded as the set of supported services is expanded.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_organization_iam_audit_config":{"version":0,"block":{"attributes":{"etag":{"type":"string","description":"The etag of iam policy","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"org_id":{"type":"string","description":"The numeric ID of the organization in which you want to manage the audit logging config.","description_kind":"plain","required":true},"service":{"type":"string","description":"Service which will be enabled for audit logging. The special value allServices covers all services.","description_kind":"plain","required":true}},"block_types":{"audit_log_config":{"nesting_mode":"set","block":{"attributes":{"exempted_members":{"type":["set","string"],"description":"Identities that do not cause logging for this type of permission. Each entry can have one of the following values:user:{emailid}: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com. serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. domain:{domain}: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.","description_kind":"plain","optional":true},"log_type":{"type":"string","description":"Permission type for which logging is to be configured. Must be one of DATA_READ, DATA_WRITE, or ADMIN_READ.","description_kind":"plain","required":true}},"description":"The configuration for logging of each type of permission. This can be specified multiple times.","description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"google_organization_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"org_id":{"type":"string","description":"The numeric ID of the organization in which you want to manage the audit logging config.","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_organization_iam_custom_role":{"version":0,"block":{"attributes":{"deleted":{"type":"bool","description":"The current deleted state of the role.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A human-readable description for the role.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the role in the format organizations/{{org_id}}/roles/{{role_id}}. Like id, this field can be used as a reference in other resources such as IAM role bindings.","description_kind":"plain","computed":true},"org_id":{"type":"string","description":"The numeric ID of the organization in which you want to create a custom role.","description_kind":"plain","required":true},"permissions":{"type":["set","string"],"description":"The names of the permissions this role grants when bound in an IAM policy. At least one permission must be specified.","description_kind":"plain","required":true},"role_id":{"type":"string","description":"The role id to use for this role.","description_kind":"plain","required":true},"stage":{"type":"string","description":"The current launch stage of the role. Defaults to GA.","description_kind":"plain","optional":true},"title":{"type":"string","description":"A human-readable title for the role.","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_organization_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"org_id":{"type":"string","description":"The numeric ID of the organization in which you want to manage the audit logging config.","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_organization_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"org_id":{"type":"string","description":"The numeric ID of the organization in which you want to manage the audit logging config.","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_organization_policy":{"version":0,"block":{"attributes":{"constraint":{"type":"string","description":"The name of the Constraint the Policy is configuring, for example, serviceuser.services.","description_kind":"plain","required":true},"etag":{"type":"string","description":"The etag of the organization policy. etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"org_id":{"type":"string","description_kind":"plain","required":true},"update_time":{"type":"string","description":"The timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds, representing when the variable was last updated. Example: \"2016-10-09T12:33:37.578138407Z\".","description_kind":"plain","computed":true},"version":{"type":"number","description":"Version of the Policy. Default version is 0.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"boolean_policy":{"nesting_mode":"list","block":{"attributes":{"enforced":{"type":"bool","description":"If true, then the Policy is enforced. If false, then any configuration is acceptable.","description_kind":"plain","required":true}},"description":"A boolean policy is a constraint that is either enforced or not.","description_kind":"plain"},"max_items":1},"list_policy":{"nesting_mode":"list","block":{"attributes":{"inherit_from_parent":{"type":"bool","description":"If set to true, the values from the effective Policy of the parent resource are inherited, meaning the values set in this Policy are added to the values inherited up the hierarchy.","description_kind":"plain","optional":true},"suggested_value":{"type":"string","description":"The Google Cloud Console will try to default to a configuration that matches the value specified in this field.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"allow":{"nesting_mode":"list","block":{"attributes":{"all":{"type":"bool","description":"The policy allows or denies all values.","description_kind":"plain","optional":true},"values":{"type":["set","string"],"description":"The policy can define specific values that are allowed or denied.","description_kind":"plain","optional":true}},"description":"One or the other must be set.","description_kind":"plain"},"max_items":1},"deny":{"nesting_mode":"list","block":{"attributes":{"all":{"type":"bool","description":"The policy allows or denies all values.","description_kind":"plain","optional":true},"values":{"type":["set","string"],"description":"The policy can define specific values that are allowed or denied.","description_kind":"plain","optional":true}},"description":"One or the other must be set.","description_kind":"plain"},"max_items":1}},"description":"A policy that can define specific values that are allowed or denied for the given constraint. It can also be used to allow or deny all values. ","description_kind":"plain"},"max_items":1},"restore_policy":{"nesting_mode":"list","block":{"attributes":{"default":{"type":"bool","description":"May only be set to true. If set, then the default Policy is restored.","description_kind":"plain","required":true}},"description":"A restore policy is a constraint to restore the default policy.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_os_config_os_policy_assignment":{"version":0,"block":{"attributes":{"baseline":{"type":"bool","description":"Output only. Indicates that this revision has been successfully rolled out in this zone and new VMs will be assigned OS policies from this revision. For a given OS policy assignment, there is only one revision with a value of `true` for this field.","description_kind":"plain","computed":true},"deleted":{"type":"bool","description":"Output only. Indicates that this revision deletes the OS policy assignment.","description_kind":"plain","computed":true},"description":{"type":"string","description":"OS policy assignment description. Length of the description is limited to 1024 characters.","description_kind":"plain","optional":true},"etag":{"type":"string","description":"The etag for this OS policy assignment. If this is provided on update, it must match the server's etag.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location for the resource","description_kind":"plain","required":true},"name":{"type":"string","description":"Resource name.","description_kind":"plain","required":true},"project":{"type":"string","description":"The project for the resource","description_kind":"plain","optional":true,"computed":true},"reconciling":{"type":"bool","description":"Output only. Indicates that reconciliation is in progress for the revision. This value is `true` when the `rollout_state` is one of: * IN_PROGRESS * CANCELLING","description_kind":"plain","computed":true},"revision_create_time":{"type":"string","description":"Output only. The timestamp that the revision was created.","description_kind":"plain","computed":true},"revision_id":{"type":"string","description":"Output only. The assignment revision ID A new revision is committed whenever a rollout is triggered for a OS policy assignment","description_kind":"plain","computed":true},"rollout_state":{"type":"string","description":"Output only. OS policy assignment rollout state Possible values: ROLLOUT_STATE_UNSPECIFIED, IN_PROGRESS, CANCELLING, CANCELLED, SUCCEEDED","description_kind":"plain","computed":true},"uid":{"type":"string","description":"Output only. Server generated unique id for the OS policy assignment resource.","description_kind":"plain","computed":true}},"block_types":{"instance_filter":{"nesting_mode":"list","block":{"attributes":{"all":{"type":"bool","description":"Target all VMs in the project. If true, no other criteria is permitted.","description_kind":"plain","optional":true}},"block_types":{"exclusion_labels":{"nesting_mode":"list","block":{"attributes":{"labels":{"type":["map","string"],"description":"Labels are identified by key/value pairs in this map. A VM should contain all the key/value pairs specified in this map to be selected.","description_kind":"plain","optional":true}},"description":"List of label sets used for VM exclusion. If the list has more than one label set, the VM is excluded if any of the label sets are applicable for the VM.","description_kind":"plain"}},"inclusion_labels":{"nesting_mode":"list","block":{"attributes":{"labels":{"type":["map","string"],"description":"Labels are identified by key/value pairs in this map. A VM should contain all the key/value pairs specified in this map to be selected.","description_kind":"plain","optional":true}},"description":"List of label sets used for VM inclusion. If the list has more than one `LabelSet`, the VM is included if any of the label sets are applicable for the VM.","description_kind":"plain"}},"inventories":{"nesting_mode":"list","block":{"attributes":{"os_short_name":{"type":"string","description":"Required. The OS short name","description_kind":"plain","required":true},"os_version":{"type":"string","description":"The OS version Prefix matches are supported if asterisk(*) is provided as the last character. For example, to match all versions with a major version of `7`, specify the following value for this field `7.*` An empty string matches all OS versions.","description_kind":"plain","optional":true}},"description":"List of inventories to select VMs. A VM is selected if its inventory data matches at least one of the following inventories.","description_kind":"plain"}}},"description":"Required. Filter to select VMs.","description_kind":"plain"},"min_items":1,"max_items":1},"os_policies":{"nesting_mode":"list","block":{"attributes":{"allow_no_resource_group_match":{"type":"bool","description":"This flag determines the OS policy compliance status when none of the resource groups within the policy are applicable for a VM. Set this value to `true` if the policy needs to be reported as compliant even if the policy has nothing to validate or enforce.","description_kind":"plain","optional":true},"description":{"type":"string","description":"Policy description. Length of the description is limited to 1024 characters.","description_kind":"plain","optional":true},"id":{"type":"string","description":"Required. The id of the OS policy with the following restrictions: * Must contain only lowercase letters, numbers, and hyphens. * Must start with a letter. * Must be between 1-63 characters. * Must end with a number or a letter. * Must be unique within the assignment.","description_kind":"plain","required":true},"mode":{"type":"string","description":"Required. Policy mode Possible values: MODE_UNSPECIFIED, VALIDATION, ENFORCEMENT","description_kind":"plain","required":true}},"block_types":{"resource_groups":{"nesting_mode":"list","block":{"block_types":{"inventory_filters":{"nesting_mode":"list","block":{"attributes":{"os_short_name":{"type":"string","description":"Required. The OS short name","description_kind":"plain","required":true},"os_version":{"type":"string","description":"The OS version Prefix matches are supported if asterisk(*) is provided as the last character. For example, to match all versions with a major version of `7`, specify the following value for this field `7.*` An empty string matches all OS versions.","description_kind":"plain","optional":true}},"description":"List of inventory filters for the resource group. The resources in this resource group are applied to the target VM if it satisfies at least one of the following inventory filters. For example, to apply this resource group to VMs running either `RHEL` or `CentOS` operating systems, specify 2 items for the list with following values: inventory_filters[0].os_short_name='rhel' and inventory_filters[1].os_short_name='centos' If the list is empty, this resource group will be applied to the target VM unconditionally.","description_kind":"plain"}},"resources":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description":"Required. The id of the resource with the following restrictions: * Must contain only lowercase letters, numbers, and hyphens. * Must start with a letter. * Must be between 1-63 characters. * Must end with a number or a letter. * Must be unique within the OS policy.","description_kind":"plain","required":true}},"block_types":{"exec":{"nesting_mode":"list","block":{"block_types":{"enforce":{"nesting_mode":"list","block":{"attributes":{"args":{"type":["list","string"],"description":"Optional arguments to pass to the source during execution.","description_kind":"plain","optional":true},"interpreter":{"type":"string","description":"Required. The script interpreter to use. Possible values: INTERPRETER_UNSPECIFIED, NONE, SHELL, POWERSHELL","description_kind":"plain","required":true},"output_file_path":{"type":"string","description":"Only recorded for enforce Exec. Path to an output file (that is created by this Exec) whose content will be recorded in OSPolicyResourceCompliance after a successful run. Absence or failure to read this file will result in this ExecResource being non-compliant. Output file size is limited to 100K bytes.","description_kind":"plain","optional":true},"script":{"type":"string","description":"An inline script. The size of the script is limited to 1024 characters.","description_kind":"plain","optional":true}},"block_types":{"file":{"nesting_mode":"list","block":{"attributes":{"allow_insecure":{"type":"bool","description":"Defaults to false. When false, files are subject to validations based on the file type: Remote: A checksum must be specified. Cloud Storage: An object generation number must be specified.","description_kind":"plain","optional":true},"local_path":{"type":"string","description":"A local path within the VM to use.","description_kind":"plain","optional":true}},"block_types":{"gcs":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description":"Required. Bucket of the Cloud Storage object.","description_kind":"plain","required":true},"generation":{"type":"number","description":"Generation number of the Cloud Storage object.","description_kind":"plain","optional":true},"object":{"type":"string","description":"Required. Name of the Cloud Storage object.","description_kind":"plain","required":true}},"description":"A Cloud Storage object.","description_kind":"plain"},"max_items":1},"remote":{"nesting_mode":"list","block":{"attributes":{"sha256_checksum":{"type":"string","description":"SHA256 checksum of the remote file.","description_kind":"plain","optional":true},"uri":{"type":"string","description":"Required. URI from which to fetch the object. It should contain both the protocol and path following the format `{protocol}://{location}`.","description_kind":"plain","required":true}},"description":"A generic remote file.","description_kind":"plain"},"max_items":1}},"description":"A remote or local file.","description_kind":"plain"},"max_items":1}},"description":"What to run to bring this resource into the desired state. An exit code of 100 indicates \"success\", any other exit code indicates a failure running enforce.","description_kind":"plain"},"max_items":1},"validate":{"nesting_mode":"list","block":{"attributes":{"args":{"type":["list","string"],"description":"Optional arguments to pass to the source during execution.","description_kind":"plain","optional":true},"interpreter":{"type":"string","description":"Required. The script interpreter to use. Possible values: INTERPRETER_UNSPECIFIED, NONE, SHELL, POWERSHELL","description_kind":"plain","required":true},"output_file_path":{"type":"string","description":"Only recorded for enforce Exec. Path to an output file (that is created by this Exec) whose content will be recorded in OSPolicyResourceCompliance after a successful run. Absence or failure to read this file will result in this ExecResource being non-compliant. Output file size is limited to 100K bytes.","description_kind":"plain","optional":true},"script":{"type":"string","description":"An inline script. The size of the script is limited to 1024 characters.","description_kind":"plain","optional":true}},"block_types":{"file":{"nesting_mode":"list","block":{"attributes":{"allow_insecure":{"type":"bool","description":"Defaults to false. When false, files are subject to validations based on the file type: Remote: A checksum must be specified. Cloud Storage: An object generation number must be specified.","description_kind":"plain","optional":true},"local_path":{"type":"string","description":"A local path within the VM to use.","description_kind":"plain","optional":true}},"block_types":{"gcs":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description":"Required. Bucket of the Cloud Storage object.","description_kind":"plain","required":true},"generation":{"type":"number","description":"Generation number of the Cloud Storage object.","description_kind":"plain","optional":true},"object":{"type":"string","description":"Required. Name of the Cloud Storage object.","description_kind":"plain","required":true}},"description":"A Cloud Storage object.","description_kind":"plain"},"max_items":1},"remote":{"nesting_mode":"list","block":{"attributes":{"sha256_checksum":{"type":"string","description":"SHA256 checksum of the remote file.","description_kind":"plain","optional":true},"uri":{"type":"string","description":"Required. URI from which to fetch the object. It should contain both the protocol and path following the format `{protocol}://{location}`.","description_kind":"plain","required":true}},"description":"A generic remote file.","description_kind":"plain"},"max_items":1}},"description":"A remote or local file.","description_kind":"plain"},"max_items":1}},"description":"Required. What to run to validate this resource is in the desired state. An exit code of 100 indicates \"in desired state\", and exit code of 101 indicates \"not in desired state\". Any other exit code indicates a failure running validate.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Exec resource","description_kind":"plain"},"max_items":1},"file":{"nesting_mode":"list","block":{"attributes":{"content":{"type":"string","description":"A a file with this content. The size of the content is limited to 1024 characters.","description_kind":"plain","optional":true},"path":{"type":"string","description":"Required. The absolute path of the file within the VM.","description_kind":"plain","required":true},"permissions":{"type":"string","description":"Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one bit corresponds to the execute permission. Default behavior is 755. Below are some examples of permissions and their associated values: read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4","description_kind":"plain","computed":true},"state":{"type":"string","description":"Required. Desired state of the file. Possible values: OS_POLICY_COMPLIANCE_STATE_UNSPECIFIED, COMPLIANT, NON_COMPLIANT, UNKNOWN, NO_OS_POLICIES_APPLICABLE","description_kind":"plain","required":true}},"block_types":{"file":{"nesting_mode":"list","block":{"attributes":{"allow_insecure":{"type":"bool","description":"Defaults to false. When false, files are subject to validations based on the file type: Remote: A checksum must be specified. Cloud Storage: An object generation number must be specified.","description_kind":"plain","optional":true},"local_path":{"type":"string","description":"A local path within the VM to use.","description_kind":"plain","optional":true}},"block_types":{"gcs":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description":"Required. Bucket of the Cloud Storage object.","description_kind":"plain","required":true},"generation":{"type":"number","description":"Generation number of the Cloud Storage object.","description_kind":"plain","optional":true},"object":{"type":"string","description":"Required. Name of the Cloud Storage object.","description_kind":"plain","required":true}},"description":"A Cloud Storage object.","description_kind":"plain"},"max_items":1},"remote":{"nesting_mode":"list","block":{"attributes":{"sha256_checksum":{"type":"string","description":"SHA256 checksum of the remote file.","description_kind":"plain","optional":true},"uri":{"type":"string","description":"Required. URI from which to fetch the object. It should contain both the protocol and path following the format `{protocol}://{location}`.","description_kind":"plain","required":true}},"description":"A generic remote file.","description_kind":"plain"},"max_items":1}},"description":"A remote or local source.","description_kind":"plain"},"max_items":1}},"description":"File resource","description_kind":"plain"},"max_items":1},"pkg":{"nesting_mode":"list","block":{"attributes":{"desired_state":{"type":"string","description":"Required. The desired state the agent should maintain for this package. Possible values: DESIRED_STATE_UNSPECIFIED, INSTALLED, REMOVED","description_kind":"plain","required":true}},"block_types":{"apt":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Required. Package name.","description_kind":"plain","required":true}},"description":"A package managed by Apt.","description_kind":"plain"},"max_items":1},"deb":{"nesting_mode":"list","block":{"attributes":{"pull_deps":{"type":"bool","description":"Whether dependencies should also be installed. - install when false: `dpkg -i package` - install when true: `apt-get update \u0026\u0026 apt-get -y install package.deb`","description_kind":"plain","optional":true}},"block_types":{"source":{"nesting_mode":"list","block":{"attributes":{"allow_insecure":{"type":"bool","description":"Defaults to false. When false, files are subject to validations based on the file type: Remote: A checksum must be specified. Cloud Storage: An object generation number must be specified.","description_kind":"plain","optional":true},"local_path":{"type":"string","description":"A local path within the VM to use.","description_kind":"plain","optional":true}},"block_types":{"gcs":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description":"Required. Bucket of the Cloud Storage object.","description_kind":"plain","required":true},"generation":{"type":"number","description":"Generation number of the Cloud Storage object.","description_kind":"plain","optional":true},"object":{"type":"string","description":"Required. Name of the Cloud Storage object.","description_kind":"plain","required":true}},"description":"A Cloud Storage object.","description_kind":"plain"},"max_items":1},"remote":{"nesting_mode":"list","block":{"attributes":{"sha256_checksum":{"type":"string","description":"SHA256 checksum of the remote file.","description_kind":"plain","optional":true},"uri":{"type":"string","description":"Required. URI from which to fetch the object. It should contain both the protocol and path following the format `{protocol}://{location}`.","description_kind":"plain","required":true}},"description":"A generic remote file.","description_kind":"plain"},"max_items":1}},"description":"Required. A deb package.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"A deb package file.","description_kind":"plain"},"max_items":1},"googet":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Required. Package name.","description_kind":"plain","required":true}},"description":"A package managed by GooGet.","description_kind":"plain"},"max_items":1},"msi":{"nesting_mode":"list","block":{"attributes":{"properties":{"type":["list","string"],"description":"Additional properties to use during installation. This should be in the format of Property=Setting. Appended to the defaults of `ACTION=INSTALL REBOOT=ReallySuppress`.","description_kind":"plain","optional":true}},"block_types":{"source":{"nesting_mode":"list","block":{"attributes":{"allow_insecure":{"type":"bool","description":"Defaults to false. When false, files are subject to validations based on the file type: Remote: A checksum must be specified. Cloud Storage: An object generation number must be specified.","description_kind":"plain","optional":true},"local_path":{"type":"string","description":"A local path within the VM to use.","description_kind":"plain","optional":true}},"block_types":{"gcs":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description":"Required. Bucket of the Cloud Storage object.","description_kind":"plain","required":true},"generation":{"type":"number","description":"Generation number of the Cloud Storage object.","description_kind":"plain","optional":true},"object":{"type":"string","description":"Required. Name of the Cloud Storage object.","description_kind":"plain","required":true}},"description":"A Cloud Storage object.","description_kind":"plain"},"max_items":1},"remote":{"nesting_mode":"list","block":{"attributes":{"sha256_checksum":{"type":"string","description":"SHA256 checksum of the remote file.","description_kind":"plain","optional":true},"uri":{"type":"string","description":"Required. URI from which to fetch the object. It should contain both the protocol and path following the format `{protocol}://{location}`.","description_kind":"plain","required":true}},"description":"A generic remote file.","description_kind":"plain"},"max_items":1}},"description":"Required. The MSI package.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"An MSI package.","description_kind":"plain"},"max_items":1},"rpm":{"nesting_mode":"list","block":{"attributes":{"pull_deps":{"type":"bool","description":"Whether dependencies should also be installed. - install when false: `rpm --upgrade --replacepkgs package.rpm` - install when true: `yum -y install package.rpm` or `zypper -y install package.rpm`","description_kind":"plain","optional":true}},"block_types":{"source":{"nesting_mode":"list","block":{"attributes":{"allow_insecure":{"type":"bool","description":"Defaults to false. When false, files are subject to validations based on the file type: Remote: A checksum must be specified. Cloud Storage: An object generation number must be specified.","description_kind":"plain","optional":true},"local_path":{"type":"string","description":"A local path within the VM to use.","description_kind":"plain","optional":true}},"block_types":{"gcs":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description":"Required. Bucket of the Cloud Storage object.","description_kind":"plain","required":true},"generation":{"type":"number","description":"Generation number of the Cloud Storage object.","description_kind":"plain","optional":true},"object":{"type":"string","description":"Required. Name of the Cloud Storage object.","description_kind":"plain","required":true}},"description":"A Cloud Storage object.","description_kind":"plain"},"max_items":1},"remote":{"nesting_mode":"list","block":{"attributes":{"sha256_checksum":{"type":"string","description":"SHA256 checksum of the remote file.","description_kind":"plain","optional":true},"uri":{"type":"string","description":"Required. URI from which to fetch the object. It should contain both the protocol and path following the format `{protocol}://{location}`.","description_kind":"plain","required":true}},"description":"A generic remote file.","description_kind":"plain"},"max_items":1}},"description":"Required. An rpm package.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"An rpm package file.","description_kind":"plain"},"max_items":1},"yum":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Required. Package name.","description_kind":"plain","required":true}},"description":"A package managed by YUM.","description_kind":"plain"},"max_items":1},"zypper":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Required. Package name.","description_kind":"plain","required":true}},"description":"A package managed by Zypper.","description_kind":"plain"},"max_items":1}},"description":"Package resource","description_kind":"plain"},"max_items":1},"repository":{"nesting_mode":"list","block":{"block_types":{"apt":{"nesting_mode":"list","block":{"attributes":{"archive_type":{"type":"string","description":"Required. Type of archive files in this repository. Possible values: ARCHIVE_TYPE_UNSPECIFIED, DEB, DEB_SRC","description_kind":"plain","required":true},"components":{"type":["list","string"],"description":"Required. List of components for this repository. Must contain at least one item.","description_kind":"plain","required":true},"distribution":{"type":"string","description":"Required. Distribution of this repository.","description_kind":"plain","required":true},"gpg_key":{"type":"string","description":"URI of the key file for this repository. The agent maintains a keyring at `/etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg`.","description_kind":"plain","optional":true},"uri":{"type":"string","description":"Required. URI for this repository.","description_kind":"plain","required":true}},"description":"An Apt Repository.","description_kind":"plain"},"max_items":1},"goo":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Required. The name of the repository.","description_kind":"plain","required":true},"url":{"type":"string","description":"Required. The url of the repository.","description_kind":"plain","required":true}},"description":"A Goo Repository.","description_kind":"plain"},"max_items":1},"yum":{"nesting_mode":"list","block":{"attributes":{"base_url":{"type":"string","description":"Required. The location of the repository directory.","description_kind":"plain","required":true},"display_name":{"type":"string","description":"The display name of the repository.","description_kind":"plain","optional":true},"gpg_keys":{"type":["list","string"],"description":"URIs of GPG keys.","description_kind":"plain","optional":true},"id":{"type":"string","description":"Required. A one word, unique name for this repository. This is the `repo id` in the yum config file and also the `display_name` if `display_name` is omitted. This id is also used as the unique identifier when checking for resource conflicts.","description_kind":"plain","required":true}},"description":"A Yum Repository.","description_kind":"plain"},"max_items":1},"zypper":{"nesting_mode":"list","block":{"attributes":{"base_url":{"type":"string","description":"Required. The location of the repository directory.","description_kind":"plain","required":true},"display_name":{"type":"string","description":"The display name of the repository.","description_kind":"plain","optional":true},"gpg_keys":{"type":["list","string"],"description":"URIs of GPG keys.","description_kind":"plain","optional":true},"id":{"type":"string","description":"Required. A one word, unique name for this repository. This is the `repo id` in the zypper config file and also the `display_name` if `display_name` is omitted. This id is also used as the unique identifier when checking for GuestPolicy conflicts.","description_kind":"plain","required":true}},"description":"A Zypper Repository.","description_kind":"plain"},"max_items":1}},"description":"Package repository resource","description_kind":"plain"},"max_items":1}},"description":"Required. List of resources configured for this resource group. The resources are executed in the exact order specified here.","description_kind":"plain"},"min_items":1}},"description":"Required. List of resource groups for the policy. For a particular VM, resource groups are evaluated in the order specified and the first resource group that is applicable is selected and the rest are ignored. If none of the resource groups are applicable for a VM, the VM is considered to be non-compliant w.r.t this policy. This behavior can be toggled by the flag `allow_no_resource_group_match`","description_kind":"plain"},"min_items":1}},"description":"Required. List of OS policies to be applied to the VMs.","description_kind":"plain"},"min_items":1},"rollout":{"nesting_mode":"list","block":{"attributes":{"min_wait_duration":{"type":"string","description":"Required. This determines the minimum duration of time to wait after the configuration changes are applied through the current rollout. A VM continues to count towards the `disruption_budget` at least until this duration of time has passed after configuration changes are applied.","description_kind":"plain","required":true}},"block_types":{"disruption_budget":{"nesting_mode":"list","block":{"attributes":{"fixed":{"type":"number","description":"Specifies a fixed value.","description_kind":"plain","optional":true},"percent":{"type":"number","description":"Specifies the relative value defined as a percentage, which will be multiplied by a reference value.","description_kind":"plain","optional":true}},"description":"Required. The maximum number (or percentage) of VMs per zone to disrupt at any given moment.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Required. Rollout to deploy the OS policy assignment. A rollout is triggered in the following situations: 1) OSPolicyAssignment is created. 2) OSPolicyAssignment is updated and the update contains changes to one of the following fields: - instance_filter - os_policies 3) OSPolicyAssignment is deleted.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_os_config_patch_deployment":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Time the patch deployment was created. Timestamp is in RFC3339 text format.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the patch deployment. Length of the description is limited to 1024 characters.","description_kind":"plain","optional":true},"duration":{"type":"string","description":"Duration of the patch. After the duration ends, the patch times out.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\"","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_execute_time":{"type":"string","description":"The last time a patch job was started by this deployment. Timestamp is in RFC3339 text format.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"name":{"type":"string","description":"Unique name for the patch deployment resource in a project.\nThe patch deployment name is in the form: projects/{project_id}/patchDeployments/{patchDeploymentId}.","description_kind":"plain","computed":true},"patch_deployment_id":{"type":"string","description":"A name for the patch deployment in the project. When creating a name the following rules apply:\n* Must contain only lowercase letters, numbers, and hyphens.\n* Must start with a letter.\n* Must be between 1-63 characters.\n* Must end with a number or a letter.\n* Must be unique within the project.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"update_time":{"type":"string","description":"Time the patch deployment was last updated. Timestamp is in RFC3339 text format.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true}},"block_types":{"instance_filter":{"nesting_mode":"list","block":{"attributes":{"all":{"type":"bool","description":"Target all VM instances in the project. If true, no other criteria is permitted.","description_kind":"plain","optional":true},"instance_name_prefixes":{"type":["list","string"],"description":"Targets VMs whose name starts with one of these prefixes. Similar to labels, this is another way to group\nVMs when targeting configs, for example prefix=\"prod-\".","description_kind":"plain","optional":true},"instances":{"type":["list","string"],"description":"Targets any of the VM instances specified. Instances are specified by their URI in the 'form zones/{{zone}}/instances/{{instance_name}}',\n'projects/{{project_id}}/zones/{{zone}}/instances/{{instance_name}}', or\n'https://www.googleapis.com/compute/v1/projects/{{project_id}}/zones/{{zone}}/instances/{{instance_name}}'","description_kind":"plain","optional":true},"zones":{"type":["list","string"],"description":"Targets VM instances in ANY of these zones. Leave empty to target VM instances in any zone.","description_kind":"plain","optional":true}},"block_types":{"group_labels":{"nesting_mode":"list","block":{"attributes":{"labels":{"type":["map","string"],"description":"Compute Engine instance labels that must be present for a VM instance to be targeted by this filter","description_kind":"plain","required":true}},"description":"Targets VM instances matching ANY of these GroupLabels. This allows targeting of disparate groups of VM instances.","description_kind":"plain"}}},"description":"VM instances to patch.","description_kind":"plain"},"min_items":1,"max_items":1},"one_time_schedule":{"nesting_mode":"list","block":{"attributes":{"execute_time":{"type":"string","description":"The desired patch job execution time. A timestamp in RFC3339 UTC \"Zulu\" format,\naccurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","required":true}},"description":"Schedule a one-time execution.","description_kind":"plain"},"max_items":1},"patch_config":{"nesting_mode":"list","block":{"attributes":{"mig_instances_allowed":{"type":"bool","description":"Allows the patch job to run on Managed instance groups (MIGs).","description_kind":"plain","optional":true},"reboot_config":{"type":"string","description":"Post-patch reboot settings. Possible values: [\"DEFAULT\", \"ALWAYS\", \"NEVER\"]","description_kind":"plain","optional":true}},"block_types":{"apt":{"nesting_mode":"list","block":{"attributes":{"excludes":{"type":["list","string"],"description":"List of packages to exclude from update. These packages will be excluded.","description_kind":"plain","optional":true},"exclusive_packages":{"type":["list","string"],"description":"An exclusive list of packages to be updated. These are the only packages that will be updated.\nIf these packages are not installed, they will be ignored. This field cannot be specified with\nany other patch configuration fields.","description_kind":"plain","optional":true},"type":{"type":"string","description":"By changing the type to DIST, the patching is performed using apt-get dist-upgrade instead. Possible values: [\"DIST\", \"UPGRADE\"]","description_kind":"plain","optional":true}},"description":"Apt update settings. Use this setting to override the default apt patch rules.","description_kind":"plain"},"max_items":1},"goo":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"goo update settings. Use this setting to override the default goo patch rules.","description_kind":"plain","required":true}},"description":"goo update settings. Use this setting to override the default goo patch rules.","description_kind":"plain"},"max_items":1},"post_step":{"nesting_mode":"list","block":{"block_types":{"linux_exec_step_config":{"nesting_mode":"list","block":{"attributes":{"allowed_success_codes":{"type":["list","number"],"description":"Defaults to [0]. A list of possible return values that the execution can return to indicate a success.","description_kind":"plain","optional":true},"interpreter":{"type":"string","description":"The script interpreter to use to run the script. If no interpreter is specified the script will\nbe executed directly, which will likely only succeed for scripts with shebang lines. Possible values: [\"SHELL\", \"POWERSHELL\"]","description_kind":"plain","optional":true},"local_path":{"type":"string","description":"An absolute path to the executable on the VM.","description_kind":"plain","optional":true}},"block_types":{"gcs_object":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description":"Bucket of the Cloud Storage object.","description_kind":"plain","required":true},"generation_number":{"type":"string","description":"Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.","description_kind":"plain","required":true},"object":{"type":"string","description":"Name of the Cloud Storage object.","description_kind":"plain","required":true}},"description":"A Cloud Storage object containing the executable.","description_kind":"plain"},"max_items":1}},"description":"The ExecStepConfig for all Linux VMs targeted by the PatchJob.","description_kind":"plain"},"max_items":1},"windows_exec_step_config":{"nesting_mode":"list","block":{"attributes":{"allowed_success_codes":{"type":["list","number"],"description":"Defaults to [0]. A list of possible return values that the execution can return to indicate a success.","description_kind":"plain","optional":true},"interpreter":{"type":"string","description":"The script interpreter to use to run the script. If no interpreter is specified the script will\nbe executed directly, which will likely only succeed for scripts with shebang lines. Possible values: [\"SHELL\", \"POWERSHELL\"]","description_kind":"plain","optional":true},"local_path":{"type":"string","description":"An absolute path to the executable on the VM.","description_kind":"plain","optional":true}},"block_types":{"gcs_object":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description":"Bucket of the Cloud Storage object.","description_kind":"plain","required":true},"generation_number":{"type":"string","description":"Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.","description_kind":"plain","required":true},"object":{"type":"string","description":"Name of the Cloud Storage object.","description_kind":"plain","required":true}},"description":"A Cloud Storage object containing the executable.","description_kind":"plain"},"max_items":1}},"description":"The ExecStepConfig for all Windows VMs targeted by the PatchJob.","description_kind":"plain"},"max_items":1}},"description":"The ExecStep to run after the patch update.","description_kind":"plain"},"max_items":1},"pre_step":{"nesting_mode":"list","block":{"block_types":{"linux_exec_step_config":{"nesting_mode":"list","block":{"attributes":{"allowed_success_codes":{"type":["list","number"],"description":"Defaults to [0]. A list of possible return values that the execution can return to indicate a success.","description_kind":"plain","optional":true},"interpreter":{"type":"string","description":"The script interpreter to use to run the script. If no interpreter is specified the script will\nbe executed directly, which will likely only succeed for scripts with shebang lines. Possible values: [\"SHELL\", \"POWERSHELL\"]","description_kind":"plain","optional":true},"local_path":{"type":"string","description":"An absolute path to the executable on the VM.","description_kind":"plain","optional":true}},"block_types":{"gcs_object":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description":"Bucket of the Cloud Storage object.","description_kind":"plain","required":true},"generation_number":{"type":"string","description":"Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.","description_kind":"plain","required":true},"object":{"type":"string","description":"Name of the Cloud Storage object.","description_kind":"plain","required":true}},"description":"A Cloud Storage object containing the executable.","description_kind":"plain"},"max_items":1}},"description":"The ExecStepConfig for all Linux VMs targeted by the PatchJob.","description_kind":"plain"},"max_items":1},"windows_exec_step_config":{"nesting_mode":"list","block":{"attributes":{"allowed_success_codes":{"type":["list","number"],"description":"Defaults to [0]. A list of possible return values that the execution can return to indicate a success.","description_kind":"plain","optional":true},"interpreter":{"type":"string","description":"The script interpreter to use to run the script. If no interpreter is specified the script will\nbe executed directly, which will likely only succeed for scripts with shebang lines. Possible values: [\"SHELL\", \"POWERSHELL\"]","description_kind":"plain","optional":true},"local_path":{"type":"string","description":"An absolute path to the executable on the VM.","description_kind":"plain","optional":true}},"block_types":{"gcs_object":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description":"Bucket of the Cloud Storage object.","description_kind":"plain","required":true},"generation_number":{"type":"string","description":"Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.","description_kind":"plain","required":true},"object":{"type":"string","description":"Name of the Cloud Storage object.","description_kind":"plain","required":true}},"description":"A Cloud Storage object containing the executable.","description_kind":"plain"},"max_items":1}},"description":"The ExecStepConfig for all Windows VMs targeted by the PatchJob.","description_kind":"plain"},"max_items":1}},"description":"The ExecStep to run before the patch update.","description_kind":"plain"},"max_items":1},"windows_update":{"nesting_mode":"list","block":{"attributes":{"classifications":{"type":["list","string"],"description":"Only apply updates of these windows update classifications. If empty, all updates are applied. Possible values: [\"CRITICAL\", \"SECURITY\", \"DEFINITION\", \"DRIVER\", \"FEATURE_PACK\", \"SERVICE_PACK\", \"TOOL\", \"UPDATE_ROLLUP\", \"UPDATE\"]","description_kind":"plain","optional":true},"excludes":{"type":["list","string"],"description":"List of KBs to exclude from update.","description_kind":"plain","optional":true},"exclusive_patches":{"type":["list","string"],"description":"An exclusive list of kbs to be updated. These are the only patches that will be updated.\nThis field must not be used with other patch configurations.","description_kind":"plain","optional":true}},"description":"Windows update settings. Use this setting to override the default Windows patch rules.","description_kind":"plain"},"max_items":1},"yum":{"nesting_mode":"list","block":{"attributes":{"excludes":{"type":["list","string"],"description":"List of packages to exclude from update. These packages will be excluded.","description_kind":"plain","optional":true},"exclusive_packages":{"type":["list","string"],"description":"An exclusive list of packages to be updated. These are the only packages that will be updated.\nIf these packages are not installed, they will be ignored. This field cannot be specified with\nany other patch configuration fields.","description_kind":"plain","optional":true},"minimal":{"type":"bool","description":"Will cause patch to run yum update-minimal instead.","description_kind":"plain","optional":true},"security":{"type":"bool","description":"Adds the --security flag to yum update. Not supported on all platforms.","description_kind":"plain","optional":true}},"description":"Yum update settings. Use this setting to override the default yum patch rules.","description_kind":"plain"},"max_items":1},"zypper":{"nesting_mode":"list","block":{"attributes":{"categories":{"type":["list","string"],"description":"Install only patches with these categories. Common categories include security, recommended, and feature.","description_kind":"plain","optional":true},"excludes":{"type":["list","string"],"description":"List of packages to exclude from update.","description_kind":"plain","optional":true},"exclusive_patches":{"type":["list","string"],"description":"An exclusive list of patches to be updated. These are the only patches that will be installed using 'zypper patch patch:' command.\nThis field must not be used with any other patch configuration fields.","description_kind":"plain","optional":true},"severities":{"type":["list","string"],"description":"Install only patches with these severities. Common severities include critical, important, moderate, and low.","description_kind":"plain","optional":true},"with_optional":{"type":"bool","description":"Adds the --with-optional flag to zypper patch.","description_kind":"plain","optional":true},"with_update":{"type":"bool","description":"Adds the --with-update flag, to zypper patch.","description_kind":"plain","optional":true}},"description":"zypper update settings. Use this setting to override the default zypper patch rules.","description_kind":"plain"},"max_items":1}},"description":"Patch configuration that is applied.","description_kind":"plain"},"max_items":1},"recurring_schedule":{"nesting_mode":"list","block":{"attributes":{"end_time":{"type":"string","description":"The end time at which a recurring patch deployment schedule is no longer active.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","optional":true},"last_execute_time":{"type":"string","description":"The time the last patch job ran successfully.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"next_execute_time":{"type":"string","description":"The time the next patch job is scheduled to run.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"start_time":{"type":"string","description":"The time that the recurring schedule becomes effective. Defaults to createTime of the patch deployment.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","optional":true}},"block_types":{"monthly":{"nesting_mode":"list","block":{"attributes":{"month_day":{"type":"number","description":"One day of the month. 1-31 indicates the 1st to the 31st day. -1 indicates the last day of the month.\nMonths without the target day will be skipped. For example, a schedule to run \"every month on the 31st\"\nwill not run in February, April, June, etc.","description_kind":"plain","optional":true}},"block_types":{"week_day_of_month":{"nesting_mode":"list","block":{"attributes":{"day_of_week":{"type":"string","description":"A day of the week. Possible values: [\"MONDAY\", \"TUESDAY\", \"WEDNESDAY\", \"THURSDAY\", \"FRIDAY\", \"SATURDAY\", \"SUNDAY\"]","description_kind":"plain","required":true},"week_ordinal":{"type":"number","description":"Week number in a month. 1-4 indicates the 1st to 4th week of the month. -1 indicates the last week of the month.","description_kind":"plain","required":true}},"description":"Week day in a month.","description_kind":"plain"},"max_items":1}},"description":"Schedule with monthly executions.","description_kind":"plain"},"max_items":1},"time_of_day":{"nesting_mode":"list","block":{"attributes":{"hours":{"type":"number","description":"Hours of day in 24 hour format. Should be from 0 to 23.\nAn API may choose to allow the value \"24:00:00\" for scenarios like business closing time.","description_kind":"plain","optional":true},"minutes":{"type":"number","description":"Minutes of hour of day. Must be from 0 to 59.","description_kind":"plain","optional":true},"nanos":{"type":"number","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.","description_kind":"plain","optional":true},"seconds":{"type":"number","description":"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.","description_kind":"plain","optional":true}},"description":"Time of the day to run a recurring deployment.","description_kind":"plain"},"min_items":1,"max_items":1},"time_zone":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description":"IANA Time Zone Database time zone, e.g. \"America/New_York\".","description_kind":"plain","required":true},"version":{"type":"string","description":"IANA Time Zone Database version number, e.g. \"2019a\".","description_kind":"plain","optional":true}},"description":"Defines the time zone that timeOfDay is relative to. The rules for daylight saving time are\ndetermined by the chosen time zone.","description_kind":"plain"},"min_items":1,"max_items":1},"weekly":{"nesting_mode":"list","block":{"attributes":{"day_of_week":{"type":"string","description":"IANA Time Zone Database time zone, e.g. \"America/New_York\". Possible values: [\"MONDAY\", \"TUESDAY\", \"WEDNESDAY\", \"THURSDAY\", \"FRIDAY\", \"SATURDAY\", \"SUNDAY\"]","description_kind":"plain","required":true}},"description":"Schedule with weekly executions.","description_kind":"plain"},"max_items":1}},"description":"Schedule recurring executions.","description_kind":"plain"},"max_items":1},"rollout":{"nesting_mode":"list","block":{"attributes":{"mode":{"type":"string","description":"Mode of the patch rollout. Possible values: [\"ZONE_BY_ZONE\", \"CONCURRENT_ZONES\"]","description_kind":"plain","required":true}},"block_types":{"disruption_budget":{"nesting_mode":"list","block":{"attributes":{"fixed":{"type":"number","description":"Specifies a fixed value.","description_kind":"plain","optional":true},"percentage":{"type":"number","description":"Specifies the relative value defined as a percentage, which will be multiplied by a reference value.","description_kind":"plain","optional":true}},"description":"The maximum number (or percentage) of VMs per zone to disrupt at any given moment. The number of VMs calculated from multiplying the percentage by the total number of VMs in a zone is rounded up.\nDuring patching, a VM is considered disrupted from the time the agent is notified to begin until patching has completed. This disruption time includes the time to complete reboot and any post-patch steps.\nA VM contributes to the disruption budget if its patching operation fails either when applying the patches, running pre or post patch steps, or if it fails to respond with a success notification before timing out. VMs that are not running or do not have an active agent do not count toward this disruption budget.\nFor zone-by-zone rollouts, if the disruption budget in a zone is exceeded, the patch job stops, because continuing to the next zone requires completion of the patch process in the previous zone.\nFor example, if the disruption budget has a fixed value of 10, and 8 VMs fail to patch in the current zone, the patch job continues to patch 2 VMs at a time until the zone is completed. When that zone is completed successfully, patching begins with 10 VMs at a time in the next zone. If 10 VMs in the next zone fail to patch, the patch job stops.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Rollout strategy of the patch job.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_os_login_ssh_public_key":{"version":0,"block":{"attributes":{"expiration_time_usec":{"type":"string","description":"An expiration time in microseconds since epoch.","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"The SHA-256 fingerprint of the SSH public key.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description":"Public key text in SSH format, defined by RFC4253 section 6.6.","description_kind":"plain","required":true},"project":{"type":"string","description":"The project ID of the Google Cloud Platform project.","description_kind":"plain","optional":true},"user":{"type":"string","description":"The user email.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_privateca_ca_pool":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Labels with user-defined metadata.\n\nAn object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\":\n\"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true},"location":{"type":"string","description":"Location of the CaPool. A full list of valid locations can be found by\nrunning 'gcloud privateca locations list'.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name for this CaPool.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tier":{"type":"string","description":"The Tier of this CaPool. Possible values: [\"ENTERPRISE\", \"DEVOPS\"]","description_kind":"plain","required":true}},"block_types":{"issuance_policy":{"nesting_mode":"list","block":{"attributes":{"maximum_lifetime":{"type":"string","description":"The maximum lifetime allowed for issued Certificates. Note that if the issuing CertificateAuthority\nexpires before a Certificate's requested maximumLifetime, the effective lifetime will be explicitly truncated to match it.","description_kind":"plain","optional":true}},"block_types":{"allowed_issuance_modes":{"nesting_mode":"list","block":{"attributes":{"allow_config_based_issuance":{"type":"bool","description":"When true, allows callers to create Certificates by specifying a CertificateConfig.","description_kind":"plain","required":true},"allow_csr_based_issuance":{"type":"bool","description":"When true, allows callers to create Certificates by specifying a CSR.","description_kind":"plain","required":true}},"description":"IssuanceModes specifies the allowed ways in which Certificates may be requested from this CaPool.","description_kind":"plain"},"max_items":1},"allowed_key_types":{"nesting_mode":"list","block":{"block_types":{"elliptic_curve":{"nesting_mode":"list","block":{"attributes":{"signature_algorithm":{"type":"string","description":"The algorithm used. Possible values: [\"ECDSA_P256\", \"ECDSA_P384\", \"EDDSA_25519\"]","description_kind":"plain","required":true}},"description":"Represents an allowed Elliptic Curve key type.","description_kind":"plain"},"max_items":1},"rsa":{"nesting_mode":"list","block":{"attributes":{"max_modulus_size":{"type":"string","description":"The maximum allowed RSA modulus size, in bits. If this is not set, or if set to zero, the\nservice will not enforce an explicit upper bound on RSA modulus sizes.","description_kind":"plain","optional":true},"min_modulus_size":{"type":"string","description":"The minimum allowed RSA modulus size, in bits. If this is not set, or if set to zero, the\nservice-level min RSA modulus size will continue to apply.","description_kind":"plain","optional":true}},"description":"Describes an RSA key that may be used in a Certificate issued from a CaPool.","description_kind":"plain"},"max_items":1}},"description":"If any AllowedKeyType is specified, then the certificate request's public key must match one of the key types listed here.\nOtherwise, any key may be used.","description_kind":"plain"}},"baseline_values":{"nesting_mode":"list","block":{"attributes":{"aia_ocsp_servers":{"type":["list","string"],"description":"Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the\n\"Authority Information Access\" extension in the certificate.","description_kind":"plain","optional":true}},"block_types":{"additional_extensions":{"nesting_mode":"list","block":{"attributes":{"critical":{"type":"bool","description":"Indicates whether or not this extension is critical (i.e., if the client does not know how to\nhandle this extension, the client should consider this to be an error).","description_kind":"plain","required":true},"value":{"type":"string","description":"The value of this X.509 extension. A base64-encoded string.","description_kind":"plain","required":true}},"block_types":{"object_id":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain","required":true}},"description":"Describes values that are relevant in a CA certificate.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.","description_kind":"plain"}},"ca_options":{"nesting_mode":"list","block":{"attributes":{"is_ca":{"type":"bool","description":"When true, the \"CA\" in Basic Constraints extension will be set to true.","description_kind":"plain","optional":true},"max_issuer_path_length":{"type":"number","description":"Refers to the \"path length constraint\" in Basic Constraints extension. For a CA certificate, this value describes the depth of\nsubordinate CA certificates that are allowed. If this value is less than 0, the request will fail.","description_kind":"plain","optional":true},"non_ca":{"type":"bool","description":"When true, the \"CA\" in Basic Constraints extension will be set to false. \nIf both 'is_ca' and 'non_ca' are unset, the extension will be omitted from the CA certificate.","description_kind":"plain","optional":true},"zero_max_issuer_path_length":{"type":"bool","description":"When true, the \"path length constraint\" in Basic Constraints extension will be set to 0.\nif both 'max_issuer_path_length' and 'zero_max_issuer_path_length' are unset,\nthe max path length will be omitted from the CA certificate.","description_kind":"plain","optional":true}},"description":"Describes values that are relevant in a CA certificate.","description_kind":"plain"},"min_items":1,"max_items":1},"key_usage":{"nesting_mode":"list","block":{"block_types":{"base_key_usage":{"nesting_mode":"list","block":{"attributes":{"cert_sign":{"type":"bool","description":"The key may be used to sign certificates.","description_kind":"plain","optional":true},"content_commitment":{"type":"bool","description":"The key may be used for cryptographic commitments. Note that this may also be referred to as \"non-repudiation\".","description_kind":"plain","optional":true},"crl_sign":{"type":"bool","description":"The key may be used sign certificate revocation lists.","description_kind":"plain","optional":true},"data_encipherment":{"type":"bool","description":"The key may be used to encipher data.","description_kind":"plain","optional":true},"decipher_only":{"type":"bool","description":"The key may be used to decipher only.","description_kind":"plain","optional":true},"digital_signature":{"type":"bool","description":"The key may be used for digital signatures.","description_kind":"plain","optional":true},"encipher_only":{"type":"bool","description":"The key may be used to encipher only.","description_kind":"plain","optional":true},"key_agreement":{"type":"bool","description":"The key may be used in a key agreement protocol.","description_kind":"plain","optional":true},"key_encipherment":{"type":"bool","description":"The key may be used to encipher other keys.","description_kind":"plain","optional":true}},"description":"Describes high-level ways in which a key may be used.","description_kind":"plain"},"min_items":1,"max_items":1},"extended_key_usage":{"nesting_mode":"list","block":{"attributes":{"client_auth":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \"TLS WWW client authentication\", though regularly used for non-WWW TLS.","description_kind":"plain","optional":true},"code_signing":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \"Signing of downloadable executable code client authentication\".","description_kind":"plain","optional":true},"email_protection":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \"Email protection\".","description_kind":"plain","optional":true},"ocsp_signing":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \"Signing OCSP responses\".","description_kind":"plain","optional":true},"server_auth":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \"TLS WWW server authentication\", though regularly used for non-WWW TLS.","description_kind":"plain","optional":true},"time_stamping":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \"Binding the hash of an object to a time\".","description_kind":"plain","optional":true}},"description":"Describes high-level ways in which a key may be used.","description_kind":"plain"},"min_items":1,"max_items":1},"unknown_extended_key_usages":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain","required":true}},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain"}}},"description":"Indicates the intended use for keys that correspond to a certificate.","description_kind":"plain"},"min_items":1,"max_items":1},"policy_ids":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain","required":true}},"description":"Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.","description_kind":"plain"}}},"description":"A set of X.509 values that will be applied to all certificates issued through this CaPool. If a certificate request\nincludes conflicting values for the same properties, they will be overwritten by the values defined here. If a certificate\nrequest uses a CertificateTemplate that defines conflicting predefinedValues for the same properties, the certificate\nissuance request will fail.","description_kind":"plain"},"max_items":1},"identity_constraints":{"nesting_mode":"list","block":{"attributes":{"allow_subject_alt_names_passthrough":{"type":"bool","description":"If this is set, the SubjectAltNames extension may be copied from a certificate request into the signed certificate.\nOtherwise, the requested SubjectAltNames will be discarded.","description_kind":"plain","required":true},"allow_subject_passthrough":{"type":"bool","description":"If this is set, the Subject field may be copied from a certificate request into the signed certificate.\nOtherwise, the requested Subject will be discarded.","description_kind":"plain","required":true}},"block_types":{"cel_expression":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.","description_kind":"plain","optional":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.","description_kind":"plain","required":true},"location":{"type":"string","description":"String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.","description_kind":"plain","optional":true},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.","description_kind":"plain","optional":true}},"description":"A CEL expression that may be used to validate the resolved X.509 Subject and/or Subject Alternative Name before a\ncertificate is signed. To see the full allowed syntax and some examples,\nsee https://cloud.google.com/certificate-authority-service/docs/cel-guide","description_kind":"plain"},"max_items":1}},"description":"Describes constraints on identities that may appear in Certificates issued through this CaPool.\nIf this is omitted, then this CaPool will not add restrictions on a certificate's identity.","description_kind":"plain"},"max_items":1}},"description":"The IssuancePolicy to control how Certificates will be issued from this CaPool.","description_kind":"plain"},"max_items":1},"publishing_options":{"nesting_mode":"list","block":{"attributes":{"publish_ca_cert":{"type":"bool","description":"When true, publishes each CertificateAuthority's CA certificate and includes its URL in the \"Authority Information Access\"\nX.509 extension in all issued Certificates. If this is false, the CA certificate will not be published and the corresponding\nX.509 extension will not be written in issued certificates.","description_kind":"plain","required":true},"publish_crl":{"type":"bool","description":"When true, publishes each CertificateAuthority's CRL and includes its URL in the \"CRL Distribution Points\" X.509 extension\nin all issued Certificates. If this is false, CRLs will not be published and the corresponding X.509 extension will not\nbe written in issued certificates. CRLs will expire 7 days from their creation. However, we will rebuild daily. CRLs are\nalso rebuilt shortly after a certificate is revoked.","description_kind":"plain","required":true}},"description":"The PublishingOptions to follow when issuing Certificates from any CertificateAuthority in this CaPool.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_privateca_ca_pool_iam_binding":{"version":0,"block":{"attributes":{"ca_pool":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_privateca_ca_pool_iam_member":{"version":0,"block":{"attributes":{"ca_pool":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_privateca_ca_pool_iam_policy":{"version":0,"block":{"attributes":{"ca_pool":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_privateca_certificate":{"version":0,"block":{"attributes":{"certificate_authority":{"type":"string","description":"Certificate Authority name.","description_kind":"plain","optional":true},"certificate_description":{"type":["list",["object",{"aia_issuing_certificate_urls":["list","string"],"authority_key_id":["list",["object",{"key_id":"string"}]],"cert_fingerprint":["list",["object",{"sha256_hash":"string"}]],"config_values":["list",["object",{"key_usage":["list",["object",{"base_key_usage":["list",["object",{"key_usage_options":["list",["object",{"cert_sign":"bool","content_commitment":"bool","crl_sign":"bool","data_encipherment":"bool","decipher_only":"bool","digital_signature":"bool","encipher_only":"bool","key_agreement":"bool","key_encipherment":"bool"}]]}]],"extended_key_usage":["list",["object",{"client_auth":"bool","code_signing":"bool","email_protection":"bool","ocsp_signing":"bool","server_auth":"bool","time_stamping":"bool"}]],"unknown_extended_key_usages":["list",["object",{"obect_id":["list",["object",{"object_id_path":["list","number"]}]]}]]}]]}]],"crl_distribution_points":["list","string"],"public_key":["list",["object",{"format":"string","key":"string"}]],"subject_description":["list",["object",{"hex_serial_number":"string","lifetime":"string","not_after_time":"string","not_before_time":"string","subject":["list",["object",{"common_name":"string","country_code":"string","locality":"string","organization":"string","organizational_unit":"string","postal_code":"string","province":"string","street_address":"string"}]],"subject_alt_name":["list",["object",{"custom_sans":["list",["object",{"critical":"bool","obect_id":["list",["object",{"object_id_path":["list","number"]}]],"value":"string"}]],"dns_names":["list","string"],"email_addresses":["list","string"],"ip_addresses":["list","string"],"uris":["list","string"]}]]}]],"subject_key_id":["list",["object",{"key_id":"string"}]]}]],"description":"Output only. Details regarding the revocation of this Certificate. This Certificate is considered revoked if and only if this field is present.","description_kind":"plain","computed":true},"certificate_template":{"type":"string","description":"The resource name for a CertificateTemplate used to issue this certificate,\nin the format 'projects/*/locations/*/certificateTemplates/*'. If this is specified,\nthe caller must have the necessary permission to use this template. If this is\nomitted, no template will be used. This template must be in the same location\nas the Certificate.","description_kind":"plain","optional":true},"create_time":{"type":"string","description":"The time that this resource was created on the server.\nThis is in RFC3339 text format.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Labels with user-defined metadata to apply to this resource.","description_kind":"plain","optional":true},"lifetime":{"type":"string","description":"The desired lifetime of the CA certificate. Used to create the \"notBeforeTime\" and\n\"notAfterTime\" fields inside an X.509 certificate. A duration in seconds with up to nine\nfractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true},"location":{"type":"string","description":"Location of the Certificate. A full list of valid locations can be found by\nrunning 'gcloud privateca locations list'.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name for this Certificate.","description_kind":"plain","required":true},"pem_certificate":{"type":"string","description":"Output only. The pem-encoded, signed X.509 certificate.","description_kind":"plain","computed":true},"pem_certificates":{"type":["list","string"],"description":"Required. Expected to be in leaf-to-root order according to RFC 5246.","description_kind":"plain","computed":true},"pem_csr":{"type":"string","description":"Immutable. A pem-encoded X.509 certificate signing request (CSR).","description_kind":"plain","optional":true},"pool":{"type":"string","description":"The name of the CaPool this Certificate belongs to.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"revocation_details":{"type":["list",["object",{"revocation_state":"string","revocation_time":"string"}]],"description":"Output only. Details regarding the revocation of this Certificate. This Certificate is \nconsidered revoked if and only if this field is present.","description_kind":"plain","computed":true},"update_time":{"type":"string","description":"Output only. The time at which this CertificateAuthority was updated.\nThis is in RFC3339 text format.","description_kind":"plain","computed":true}},"block_types":{"config":{"nesting_mode":"list","block":{"block_types":{"public_key":{"nesting_mode":"list","block":{"attributes":{"format":{"type":"string","description":"The format of the public key. Currently, only PEM format is supported. Possible values: [\"KEY_TYPE_UNSPECIFIED\", \"PEM\"]","description_kind":"plain","required":true},"key":{"type":"string","description":"Required. A public key. When this is specified in a request, the padding and encoding can be any of the options described by the respective 'KeyType' value. When this is generated by the service, it will always be an RFC 5280 SubjectPublicKeyInfo structure containing an algorithm identifier and a key. A base64-encoded string.","description_kind":"plain","optional":true}},"description":"A PublicKey describes a public key.","description_kind":"plain"},"min_items":1,"max_items":1},"subject_config":{"nesting_mode":"list","block":{"block_types":{"subject":{"nesting_mode":"list","block":{"attributes":{"common_name":{"type":"string","description":"The common name of the distinguished name.","description_kind":"plain","required":true},"country_code":{"type":"string","description":"The country code of the subject.","description_kind":"plain","optional":true},"locality":{"type":"string","description":"The locality or city of the subject.","description_kind":"plain","optional":true},"organization":{"type":"string","description":"The organization of the subject.","description_kind":"plain","required":true},"organizational_unit":{"type":"string","description":"The organizational unit of the subject.","description_kind":"plain","optional":true},"postal_code":{"type":"string","description":"The postal code of the subject.","description_kind":"plain","optional":true},"province":{"type":"string","description":"The province, territory, or regional state of the subject.","description_kind":"plain","optional":true},"street_address":{"type":"string","description":"The street address of the subject.","description_kind":"plain","optional":true}},"description":"Contains distinguished name fields such as the location and organization.","description_kind":"plain"},"min_items":1,"max_items":1},"subject_alt_name":{"nesting_mode":"list","block":{"attributes":{"dns_names":{"type":["list","string"],"description":"Contains only valid, fully-qualified host names.","description_kind":"plain","optional":true},"email_addresses":{"type":["list","string"],"description":"Contains only valid RFC 2822 E-mail addresses.","description_kind":"plain","optional":true},"ip_addresses":{"type":["list","string"],"description":"Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.","description_kind":"plain","optional":true},"uris":{"type":["list","string"],"description":"Contains only valid RFC 3986 URIs.","description_kind":"plain","optional":true}},"description":"The subject alternative name fields.","description_kind":"plain"},"max_items":1}},"description":"Specifies some of the values in a certificate that are related to the subject.","description_kind":"plain"},"min_items":1,"max_items":1},"x509_config":{"nesting_mode":"list","block":{"attributes":{"aia_ocsp_servers":{"type":["list","string"],"description":"Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the\n\"Authority Information Access\" extension in the certificate.","description_kind":"plain","optional":true}},"block_types":{"additional_extensions":{"nesting_mode":"list","block":{"attributes":{"critical":{"type":"bool","description":"Indicates whether or not this extension is critical (i.e., if the client does not know how to\nhandle this extension, the client should consider this to be an error).","description_kind":"plain","required":true},"value":{"type":"string","description":"The value of this X.509 extension. A base64-encoded string.","description_kind":"plain","required":true}},"block_types":{"object_id":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain","required":true}},"description":"Describes values that are relevant in a CA certificate.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.","description_kind":"plain"}},"ca_options":{"nesting_mode":"list","block":{"attributes":{"is_ca":{"type":"bool","description":"When true, the \"CA\" in Basic Constraints extension will be set to true.","description_kind":"plain","optional":true},"max_issuer_path_length":{"type":"number","description":"Refers to the \"path length constraint\" in Basic Constraints extension. For a CA certificate, this value describes the depth of\nsubordinate CA certificates that are allowed. If this value is less than 0, the request will fail.","description_kind":"plain","optional":true},"non_ca":{"type":"bool","description":"When true, the \"CA\" in Basic Constraints extension will be set to false. \nIf both 'is_ca' and 'non_ca' are unset, the extension will be omitted from the CA certificate.","description_kind":"plain","optional":true},"zero_max_issuer_path_length":{"type":"bool","description":"When true, the \"path length constraint\" in Basic Constraints extension will be set to 0.\nif both 'max_issuer_path_length' and 'zero_max_issuer_path_length' are unset,\nthe max path length will be omitted from the CA certificate.","description_kind":"plain","optional":true}},"description":"Describes values that are relevant in a CA certificate.","description_kind":"plain"},"max_items":1},"key_usage":{"nesting_mode":"list","block":{"block_types":{"base_key_usage":{"nesting_mode":"list","block":{"attributes":{"cert_sign":{"type":"bool","description":"The key may be used to sign certificates.","description_kind":"plain","optional":true},"content_commitment":{"type":"bool","description":"The key may be used for cryptographic commitments. Note that this may also be referred to as \"non-repudiation\".","description_kind":"plain","optional":true},"crl_sign":{"type":"bool","description":"The key may be used sign certificate revocation lists.","description_kind":"plain","optional":true},"data_encipherment":{"type":"bool","description":"The key may be used to encipher data.","description_kind":"plain","optional":true},"decipher_only":{"type":"bool","description":"The key may be used to decipher only.","description_kind":"plain","optional":true},"digital_signature":{"type":"bool","description":"The key may be used for digital signatures.","description_kind":"plain","optional":true},"encipher_only":{"type":"bool","description":"The key may be used to encipher only.","description_kind":"plain","optional":true},"key_agreement":{"type":"bool","description":"The key may be used in a key agreement protocol.","description_kind":"plain","optional":true},"key_encipherment":{"type":"bool","description":"The key may be used to encipher other keys.","description_kind":"plain","optional":true}},"description":"Describes high-level ways in which a key may be used.","description_kind":"plain"},"min_items":1,"max_items":1},"extended_key_usage":{"nesting_mode":"list","block":{"attributes":{"client_auth":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \"TLS WWW client authentication\", though regularly used for non-WWW TLS.","description_kind":"plain","optional":true},"code_signing":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \"Signing of downloadable executable code client authentication\".","description_kind":"plain","optional":true},"email_protection":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \"Email protection\".","description_kind":"plain","optional":true},"ocsp_signing":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \"Signing OCSP responses\".","description_kind":"plain","optional":true},"server_auth":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \"TLS WWW server authentication\", though regularly used for non-WWW TLS.","description_kind":"plain","optional":true},"time_stamping":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \"Binding the hash of an object to a time\".","description_kind":"plain","optional":true}},"description":"Describes high-level ways in which a key may be used.","description_kind":"plain"},"min_items":1,"max_items":1},"unknown_extended_key_usages":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain","required":true}},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain"}}},"description":"Indicates the intended use for keys that correspond to a certificate.","description_kind":"plain"},"min_items":1,"max_items":1},"policy_ids":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain","required":true}},"description":"Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.","description_kind":"plain"}}},"description":"Describes how some of the technical X.509 fields in a certificate should be populated.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"The config used to create a self-signed X.509 certificate or CSR.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_privateca_certificate_authority":{"version":0,"block":{"attributes":{"access_urls":{"type":["list",["object",{"ca_certificate_access_url":"string","crl_access_urls":["list","string"]}]],"description":"URLs for accessing content published by this CA, such as the CA certificate and CRLs.","description_kind":"plain","computed":true},"certificate_authority_id":{"type":"string","description":"The user provided Resource ID for this Certificate Authority.","description_kind":"plain","required":true},"create_time":{"type":"string","description":"The time at which this CertificateAuthority was created.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine\nfractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"gcs_bucket":{"type":"string","description":"The name of a Cloud Storage bucket where this CertificateAuthority will publish content,\nsuch as the CA certificate and CRLs. This must be a bucket name, without any prefixes\n(such as 'gs://') or suffixes (such as '.googleapis.com'). For example, to use a bucket named\nmy-bucket, you would simply specify 'my-bucket'. If not specified, a managed bucket will be\ncreated.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ignore_active_certificates_on_deletion":{"type":"bool","description":"This field allows the CA to be deleted even if the CA has active certs. Active certs include both unrevoked and unexpired certs.\nUse with care. Defaults to 'false'.","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"Labels with user-defined metadata.\n\nAn object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\":\n\"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true},"lifetime":{"type":"string","description":"The desired lifetime of the CA certificate. Used to create the \"notBeforeTime\" and\n\"notAfterTime\" fields inside an X.509 certificate. A duration in seconds with up to nine\nfractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true},"location":{"type":"string","description":"Location of the CertificateAuthority. A full list of valid locations can be found by\nrunning 'gcloud privateca locations list'.","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name for this CertificateAuthority in the format\nprojects/*/locations/*/certificateAuthorities/*.","description_kind":"plain","computed":true},"pem_ca_certificates":{"type":["list","string"],"description":"This CertificateAuthority's certificate chain, including the current\nCertificateAuthority's certificate. Ordered such that the root issuer is the final\nelement (consistent with RFC 5246). For a self-signed CA, this will only list the current\nCertificateAuthority's certificate.","description_kind":"plain","computed":true},"pool":{"type":"string","description":"The name of the CaPool this Certificate Authority belongs to.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description":"The State for this CertificateAuthority.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The Type of this CertificateAuthority.\n\n~\u003e **Note:** For 'SUBORDINATE' Certificate Authorities, they need to\nbe manually activated (via Cloud Console of 'gcloud') before they can\nissue certificates. Default value: \"SELF_SIGNED\" Possible values: [\"SELF_SIGNED\", \"SUBORDINATE\"]","description_kind":"plain","optional":true},"update_time":{"type":"string","description":"The time at which this CertificateAuthority was updated.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine\nfractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true}},"block_types":{"config":{"nesting_mode":"list","block":{"block_types":{"subject_config":{"nesting_mode":"list","block":{"block_types":{"subject":{"nesting_mode":"list","block":{"attributes":{"common_name":{"type":"string","description":"The common name of the distinguished name.","description_kind":"plain","required":true},"country_code":{"type":"string","description":"The country code of the subject.","description_kind":"plain","optional":true},"locality":{"type":"string","description":"The locality or city of the subject.","description_kind":"plain","optional":true},"organization":{"type":"string","description":"The organization of the subject.","description_kind":"plain","required":true},"organizational_unit":{"type":"string","description":"The organizational unit of the subject.","description_kind":"plain","optional":true},"postal_code":{"type":"string","description":"The postal code of the subject.","description_kind":"plain","optional":true},"province":{"type":"string","description":"The province, territory, or regional state of the subject.","description_kind":"plain","optional":true},"street_address":{"type":"string","description":"The street address of the subject.","description_kind":"plain","optional":true}},"description":"Contains distinguished name fields such as the location and organization.","description_kind":"plain"},"min_items":1,"max_items":1},"subject_alt_name":{"nesting_mode":"list","block":{"attributes":{"dns_names":{"type":["list","string"],"description":"Contains only valid, fully-qualified host names.","description_kind":"plain","optional":true},"email_addresses":{"type":["list","string"],"description":"Contains only valid RFC 2822 E-mail addresses.","description_kind":"plain","optional":true},"ip_addresses":{"type":["list","string"],"description":"Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.","description_kind":"plain","optional":true},"uris":{"type":["list","string"],"description":"Contains only valid RFC 3986 URIs.","description_kind":"plain","optional":true}},"description":"The subject alternative name fields.","description_kind":"plain"},"max_items":1}},"description":"Specifies some of the values in a certificate that are related to the subject.","description_kind":"plain"},"min_items":1,"max_items":1},"x509_config":{"nesting_mode":"list","block":{"attributes":{"aia_ocsp_servers":{"type":["list","string"],"description":"Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the\n\"Authority Information Access\" extension in the certificate.","description_kind":"plain","optional":true}},"block_types":{"additional_extensions":{"nesting_mode":"list","block":{"attributes":{"critical":{"type":"bool","description":"Indicates whether or not this extension is critical (i.e., if the client does not know how to\nhandle this extension, the client should consider this to be an error).","description_kind":"plain","required":true},"value":{"type":"string","description":"The value of this X.509 extension. A base64-encoded string.","description_kind":"plain","required":true}},"block_types":{"object_id":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain","required":true}},"description":"Describes values that are relevant in a CA certificate.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.","description_kind":"plain"}},"ca_options":{"nesting_mode":"list","block":{"attributes":{"is_ca":{"type":"bool","description":"When true, the \"CA\" in Basic Constraints extension will be set to true.","description_kind":"plain","required":true},"max_issuer_path_length":{"type":"number","description":"Refers to the \"path length constraint\" in Basic Constraints extension. For a CA certificate, this value describes the depth of\nsubordinate CA certificates that are allowed. If this value is less than 0, the request will fail.","description_kind":"plain","optional":true},"non_ca":{"type":"bool","description":"When true, the \"CA\" in Basic Constraints extension will be set to false. \nIf both 'is_ca' and 'non_ca' are unset, the extension will be omitted from the CA certificate.","description_kind":"plain","optional":true},"zero_max_issuer_path_length":{"type":"bool","description":"When true, the \"path length constraint\" in Basic Constraints extension will be set to 0.\nif both 'max_issuer_path_length' and 'zero_max_issuer_path_length' are unset,\nthe max path length will be omitted from the CA certificate.","description_kind":"plain","optional":true}},"description":"Describes values that are relevant in a CA certificate.","description_kind":"plain"},"min_items":1,"max_items":1},"key_usage":{"nesting_mode":"list","block":{"block_types":{"base_key_usage":{"nesting_mode":"list","block":{"attributes":{"cert_sign":{"type":"bool","description":"The key may be used to sign certificates.","description_kind":"plain","optional":true},"content_commitment":{"type":"bool","description":"The key may be used for cryptographic commitments. Note that this may also be referred to as \"non-repudiation\".","description_kind":"plain","optional":true},"crl_sign":{"type":"bool","description":"The key may be used sign certificate revocation lists.","description_kind":"plain","optional":true},"data_encipherment":{"type":"bool","description":"The key may be used to encipher data.","description_kind":"plain","optional":true},"decipher_only":{"type":"bool","description":"The key may be used to decipher only.","description_kind":"plain","optional":true},"digital_signature":{"type":"bool","description":"The key may be used for digital signatures.","description_kind":"plain","optional":true},"encipher_only":{"type":"bool","description":"The key may be used to encipher only.","description_kind":"plain","optional":true},"key_agreement":{"type":"bool","description":"The key may be used in a key agreement protocol.","description_kind":"plain","optional":true},"key_encipherment":{"type":"bool","description":"The key may be used to encipher other keys.","description_kind":"plain","optional":true}},"description":"Describes high-level ways in which a key may be used.","description_kind":"plain"},"min_items":1,"max_items":1},"extended_key_usage":{"nesting_mode":"list","block":{"attributes":{"client_auth":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \"TLS WWW client authentication\", though regularly used for non-WWW TLS.","description_kind":"plain","optional":true},"code_signing":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \"Signing of downloadable executable code client authentication\".","description_kind":"plain","optional":true},"email_protection":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \"Email protection\".","description_kind":"plain","optional":true},"ocsp_signing":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \"Signing OCSP responses\".","description_kind":"plain","optional":true},"server_auth":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \"TLS WWW server authentication\", though regularly used for non-WWW TLS.","description_kind":"plain","optional":true},"time_stamping":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \"Binding the hash of an object to a time\".","description_kind":"plain","optional":true}},"description":"Describes high-level ways in which a key may be used.","description_kind":"plain"},"min_items":1,"max_items":1},"unknown_extended_key_usages":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain","required":true}},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain"}}},"description":"Indicates the intended use for keys that correspond to a certificate.","description_kind":"plain"},"min_items":1,"max_items":1},"policy_ids":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.","description_kind":"plain","required":true}},"description":"Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.","description_kind":"plain"}}},"description":"Describes how some of the technical X.509 fields in a certificate should be populated.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"The config used to create a self-signed X.509 certificate or CSR.","description_kind":"plain"},"min_items":1,"max_items":1},"key_spec":{"nesting_mode":"list","block":{"attributes":{"algorithm":{"type":"string","description":"The algorithm to use for creating a managed Cloud KMS key for a for a simplified\nexperience. All managed keys will be have their ProtectionLevel as HSM. Possible values: [\"SIGN_HASH_ALGORITHM_UNSPECIFIED\", \"RSA_PSS_2048_SHA256\", \"RSA_PSS_3072_SHA256\", \"RSA_PSS_4096_SHA256\", \"RSA_PKCS1_2048_SHA256\", \"RSA_PKCS1_3072_SHA256\", \"RSA_PKCS1_4096_SHA256\", \"EC_P256_SHA256\", \"EC_P384_SHA384\"]","description_kind":"plain","optional":true},"cloud_kms_key_version":{"type":"string","description":"The resource name for an existing Cloud KMS CryptoKeyVersion in the format\n'projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*'.","description_kind":"plain","optional":true}},"description":"Used when issuing certificates for this CertificateAuthority. If this CertificateAuthority\nis a self-signed CertificateAuthority, this key is also used to sign the self-signed CA\ncertificate. Otherwise, it is used to sign a CSR.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_privateca_certificate_template":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Output only. The time at which this CertificateTemplate was created.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Optional. A human-readable description of scenarios this template is intended for.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Optional. Labels with user-defined metadata.","description_kind":"plain","optional":true},"location":{"type":"string","description":"The location for the resource","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name for this CertificateTemplate in the format `projects/*/locations/*/certificateTemplates/*`.","description_kind":"plain","required":true},"project":{"type":"string","description":"The project for the resource","description_kind":"plain","optional":true,"computed":true},"update_time":{"type":"string","description":"Output only. The time at which this CertificateTemplate was updated.","description_kind":"plain","computed":true}},"block_types":{"identity_constraints":{"nesting_mode":"list","block":{"attributes":{"allow_subject_alt_names_passthrough":{"type":"bool","description":"Required. If this is true, the SubjectAltNames extension may be copied from a certificate request into the signed certificate. Otherwise, the requested SubjectAltNames will be discarded.","description_kind":"plain","required":true},"allow_subject_passthrough":{"type":"bool","description":"Required. If this is true, the Subject field may be copied from a certificate request into the signed certificate. Otherwise, the requested Subject will be discarded.","description_kind":"plain","required":true}},"block_types":{"cel_expression":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.","description_kind":"plain","optional":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.","description_kind":"plain","optional":true},"location":{"type":"string","description":"Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.","description_kind":"plain","optional":true},"title":{"type":"string","description":"Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.","description_kind":"plain","optional":true}},"description":"Optional. A CEL expression that may be used to validate the resolved X.509 Subject and/or Subject Alternative Name before a certificate is signed. To see the full allowed syntax and some examples, see https://cloud.google.com/certificate-authority-service/docs/using-cel","description_kind":"plain"},"max_items":1}},"description":"Optional. Describes constraints on identities that may be appear in Certificates issued using this template. If this is omitted, then this template will not add restrictions on a certificate's identity.","description_kind":"plain"},"max_items":1},"passthrough_extensions":{"nesting_mode":"list","block":{"attributes":{"known_extensions":{"type":["list","string"],"description":"Optional. A set of named X.509 extensions. Will be combined with additional_extensions to determine the full set of X.509 extensions.","description_kind":"plain","optional":true}},"block_types":{"additional_extensions":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"Required. The parts of an OID path. The most significant parts of the path come first.","description_kind":"plain","required":true}},"description":"Optional. A set of ObjectIds identifying custom X.509 extensions. Will be combined with known_extensions to determine the full set of X.509 extensions.","description_kind":"plain"}}},"description":"Optional. Describes the set of X.509 extensions that may appear in a Certificate issued using this CertificateTemplate. If a certificate request sets extensions that don't appear in the passthrough_extensions, those extensions will be dropped. If the issuing CaPool's IssuancePolicy defines baseline_values that don't appear here, the certificate issuance request will fail. If this is omitted, then this template will not add restrictions on a certificate's X.509 extensions. These constraints do not apply to X.509 extensions set in this CertificateTemplate's predefined_values.","description_kind":"plain"},"max_items":1},"predefined_values":{"nesting_mode":"list","block":{"attributes":{"aia_ocsp_servers":{"type":["list","string"],"description":"Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the \"Authority Information Access\" extension in the certificate.","description_kind":"plain","optional":true}},"block_types":{"additional_extensions":{"nesting_mode":"list","block":{"attributes":{"critical":{"type":"bool","description":"Optional. Indicates whether or not this extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error).","description_kind":"plain","optional":true},"value":{"type":"string","description":"Required. The value of this X.509 extension.","description_kind":"plain","required":true}},"block_types":{"object_id":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"Required. The parts of an OID path. The most significant parts of the path come first.","description_kind":"plain","required":true}},"description":"Required. The OID for this X.509 extension.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Optional. Describes custom X.509 extensions.","description_kind":"plain"}},"ca_options":{"nesting_mode":"list","block":{"attributes":{"is_ca":{"type":"bool","description":"Optional. Refers to the \"CA\" X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.","description_kind":"plain","optional":true},"max_issuer_path_length":{"type":"number","description":"Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.","description_kind":"plain","optional":true}},"description":"Optional. Describes options in this X509Parameters that are relevant in a CA certificate.","description_kind":"plain"},"max_items":1},"key_usage":{"nesting_mode":"list","block":{"block_types":{"base_key_usage":{"nesting_mode":"list","block":{"attributes":{"cert_sign":{"type":"bool","description":"The key may be used to sign certificates.","description_kind":"plain","optional":true},"content_commitment":{"type":"bool","description":"The key may be used for cryptographic commitments. Note that this may also be referred to as \"non-repudiation\".","description_kind":"plain","optional":true},"crl_sign":{"type":"bool","description":"The key may be used sign certificate revocation lists.","description_kind":"plain","optional":true},"data_encipherment":{"type":"bool","description":"The key may be used to encipher data.","description_kind":"plain","optional":true},"decipher_only":{"type":"bool","description":"The key may be used to decipher only.","description_kind":"plain","optional":true},"digital_signature":{"type":"bool","description":"The key may be used for digital signatures.","description_kind":"plain","optional":true},"encipher_only":{"type":"bool","description":"The key may be used to encipher only.","description_kind":"plain","optional":true},"key_agreement":{"type":"bool","description":"The key may be used in a key agreement protocol.","description_kind":"plain","optional":true},"key_encipherment":{"type":"bool","description":"The key may be used to encipher other keys.","description_kind":"plain","optional":true}},"description":"Describes high-level ways in which a key may be used.","description_kind":"plain"},"max_items":1},"extended_key_usage":{"nesting_mode":"list","block":{"attributes":{"client_auth":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \"TLS WWW client authentication\", though regularly used for non-WWW TLS.","description_kind":"plain","optional":true},"code_signing":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \"Signing of downloadable executable code client authentication\".","description_kind":"plain","optional":true},"email_protection":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \"Email protection\".","description_kind":"plain","optional":true},"ocsp_signing":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \"Signing OCSP responses\".","description_kind":"plain","optional":true},"server_auth":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \"TLS WWW server authentication\", though regularly used for non-WWW TLS.","description_kind":"plain","optional":true},"time_stamping":{"type":"bool","description":"Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \"Binding the hash of an object to a time\".","description_kind":"plain","optional":true}},"description":"Detailed scenarios in which a key may be used.","description_kind":"plain"},"max_items":1},"unknown_extended_key_usages":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"Required. The parts of an OID path. The most significant parts of the path come first.","description_kind":"plain","required":true}},"description":"Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.","description_kind":"plain"}}},"description":"Optional. Indicates the intended use for keys that correspond to a certificate.","description_kind":"plain"},"max_items":1},"policy_ids":{"nesting_mode":"list","block":{"attributes":{"object_id_path":{"type":["list","number"],"description":"Required. The parts of an OID path. The most significant parts of the path come first.","description_kind":"plain","required":true}},"description":"Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.","description_kind":"plain"}}},"description":"Optional. A set of X.509 values that will be applied to all issued certificates that use this template. If the certificate request includes conflicting values for the same properties, they will be overwritten by the values defined here. If the issuing CaPool's IssuancePolicy defines conflicting baseline_values for the same properties, the certificate issuance request will fail.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_privateca_certificate_template_iam_binding":{"version":0,"block":{"attributes":{"certificate_template":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_privateca_certificate_template_iam_member":{"version":0,"block":{"attributes":{"certificate_template":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_privateca_certificate_template_iam_policy":{"version":0,"block":{"attributes":{"certificate_template":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_project":{"version":1,"block":{"attributes":{"auto_create_network":{"type":"bool","description":"Create the 'default' network automatically. Default true. If set to false, the default network will be deleted. Note that, for quota purposes, you will still need to have 1 network slot available to create the project successfully, even if you set auto_create_network to false, since the network will exist momentarily.","description_kind":"plain","optional":true},"billing_account":{"type":"string","description":"The alphanumeric ID of the billing account this project belongs to. The user or service account performing this operation with Terraform must have Billing Account Administrator privileges (roles/billing.admin) in the organization. See Google Cloud Billing API Access Control for more details.","description_kind":"plain","optional":true},"folder_id":{"type":"string","description":"The numeric ID of the folder this project should be created under. Only one of org_id or folder_id may be specified. If the folder_id is specified, then the project is created under the specified folder. Changing this forces the project to be migrated to the newly specified folder.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to the project.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The display name of the project.","description_kind":"plain","required":true},"number":{"type":"string","description":"The numeric identifier of the project.","description_kind":"plain","computed":true},"org_id":{"type":"string","description":"The numeric ID of the organization this project belongs to. Changing this forces a new project to be created. Only one of org_id or folder_id may be specified. If the org_id is specified then the project is created at the top level. Changing this forces the project to be migrated to the newly specified organization.","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The project ID. Changing this forces a new project to be created.","description_kind":"plain","required":true},"skip_delete":{"type":"bool","description":"If true, the Terraform resource can be deleted without deleting the Project via the Google API.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_project_access_approval_settings":{"version":0,"block":{"attributes":{"active_key_version":{"type":"string","description":"The asymmetric crypto key version to use for signing approval requests.\nEmpty active_key_version indicates that a Google-managed key should be used for signing.\nThis property will be ignored if set by an ancestor of the resource, and new non-empty values may not be set.","description_kind":"plain","optional":true},"ancestor_has_active_key_version":{"type":"bool","description":"If the field is true, that indicates that an ancestor of this Project has set active_key_version.","description_kind":"plain","computed":true},"enrolled_ancestor":{"type":"bool","description":"If the field is true, that indicates that at least one service is enrolled for Access Approval in one or more ancestors of the Project.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"invalid_key_version":{"type":"bool","description":"If the field is true, that indicates that there is some configuration issue with the active_key_version\nconfigured on this Project (e.g. it doesn't exist or the Access Approval service account doesn't have the\ncorrect permissions on it, etc.) This key version is not necessarily the effective key version at this level,\nas key versions are inherited top-down.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The resource name of the settings. Format is \"projects/{project_id}/accessApprovalSettings\"","description_kind":"plain","computed":true},"notification_emails":{"type":["set","string"],"description":"A list of email addresses to which notifications relating to approval requests should be sent.\nNotifications relating to a resource will be sent to all emails in the settings of ancestor\nresources of that resource. A maximum of 50 email addresses are allowed.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description":"Deprecated in favor of 'project_id'","description_kind":"plain","deprecated":true,"optional":true},"project_id":{"type":"string","description":"ID of the project of the access approval settings.","description_kind":"plain","required":true}},"block_types":{"enrolled_services":{"nesting_mode":"set","block":{"attributes":{"cloud_product":{"type":"string","description":"The product for which Access Approval will be enrolled. Allowed values are listed (case-sensitive):\n all\n appengine.googleapis.com\n bigquery.googleapis.com\n bigtable.googleapis.com\n cloudkms.googleapis.com\n compute.googleapis.com\n dataflow.googleapis.com\n iam.googleapis.com\n pubsub.googleapis.com\n storage.googleapis.com","description_kind":"plain","required":true},"enrollment_level":{"type":"string","description":"The enrollment level of the service. Default value: \"BLOCK_ALL\" Possible values: [\"BLOCK_ALL\"]","description_kind":"plain","optional":true}},"description":"A list of Google Cloud Services for which the given resource has Access Approval enrolled.\nAccess requests for the resource given by name against any of these services contained here will be required\nto have explicit approval. Enrollment can only be done on an all or nothing basis.\n\nA maximum of 10 enrolled services will be enforced, to be expanded as the set of supported services is expanded.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_project_default_service_accounts":{"version":0,"block":{"attributes":{"action":{"type":"string","description":"The action to be performed in the default service accounts. Valid values are: DEPRIVILEGE, DELETE, DISABLE.\n\t\t\t\tNote that DEPRIVILEGE action will ignore the REVERT configuration in the restore_policy.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description":"The project ID where service accounts are created.","description_kind":"plain","required":true},"restore_policy":{"type":"string","description":"The action to be performed in the default service accounts on the resource destroy.\n\t\t\t\tValid values are NONE, REVERT and REVERT_AND_IGNORE_FAILURE. It is applied for any action but in the DEPRIVILEGE.","description_kind":"plain","optional":true},"service_accounts":{"type":["map","string"],"description":"The Service Accounts changed by this resource. It is used for revert the action on the destroy.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_project_iam_audit_config":{"version":0,"block":{"attributes":{"etag":{"type":"string","description":"The etag of iam policy","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","required":true},"service":{"type":"string","description":"Service which will be enabled for audit logging. The special value allServices covers all services.","description_kind":"plain","required":true}},"block_types":{"audit_log_config":{"nesting_mode":"set","block":{"attributes":{"exempted_members":{"type":["set","string"],"description":"Identities that do not cause logging for this type of permission. Each entry can have one of the following values:user:{emailid}: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com. serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. domain:{domain}: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.","description_kind":"plain","optional":true},"log_type":{"type":"string","description":"Permission type for which logging is to be configured. Must be one of DATA_READ, DATA_WRITE, or ADMIN_READ.","description_kind":"plain","required":true}},"description":"The configuration for logging of each type of permission. This can be specified multiple times.","description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"google_project_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_project_iam_custom_role":{"version":0,"block":{"attributes":{"deleted":{"type":"bool","description":"The current deleted state of the role.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A human-readable description for the role.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the role in the format projects/{{project}}/roles/{{role_id}}. Like id, this field can be used as a reference in other resources such as IAM role bindings.","description_kind":"plain","computed":true},"permissions":{"type":["set","string"],"description":"The names of the permissions this role grants when bound in an IAM policy. At least one permission must be specified.","description_kind":"plain","required":true},"project":{"type":"string","description":"The project that the service account will be created in. Defaults to the provider project configuration.","description_kind":"plain","optional":true,"computed":true},"role_id":{"type":"string","description":"The camel case role id to use for this role. Cannot contain - characters.","description_kind":"plain","required":true},"stage":{"type":"string","description":"The current launch stage of the role. Defaults to GA.","description_kind":"plain","optional":true},"title":{"type":"string","description":"A human-readable title for the role.","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_project_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_project_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_project_organization_policy":{"version":0,"block":{"attributes":{"constraint":{"type":"string","description":"The name of the Constraint the Policy is configuring, for example, serviceuser.services.","description_kind":"plain","required":true},"etag":{"type":"string","description":"The etag of the organization policy. etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description":"The project ID.","description_kind":"plain","required":true},"update_time":{"type":"string","description":"The timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds, representing when the variable was last updated. Example: \"2016-10-09T12:33:37.578138407Z\".","description_kind":"plain","computed":true},"version":{"type":"number","description":"Version of the Policy. Default version is 0.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"boolean_policy":{"nesting_mode":"list","block":{"attributes":{"enforced":{"type":"bool","description":"If true, then the Policy is enforced. If false, then any configuration is acceptable.","description_kind":"plain","required":true}},"description":"A boolean policy is a constraint that is either enforced or not.","description_kind":"plain"},"max_items":1},"list_policy":{"nesting_mode":"list","block":{"attributes":{"inherit_from_parent":{"type":"bool","description":"If set to true, the values from the effective Policy of the parent resource are inherited, meaning the values set in this Policy are added to the values inherited up the hierarchy.","description_kind":"plain","optional":true},"suggested_value":{"type":"string","description":"The Google Cloud Console will try to default to a configuration that matches the value specified in this field.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"allow":{"nesting_mode":"list","block":{"attributes":{"all":{"type":"bool","description":"The policy allows or denies all values.","description_kind":"plain","optional":true},"values":{"type":["set","string"],"description":"The policy can define specific values that are allowed or denied.","description_kind":"plain","optional":true}},"description":"One or the other must be set.","description_kind":"plain"},"max_items":1},"deny":{"nesting_mode":"list","block":{"attributes":{"all":{"type":"bool","description":"The policy allows or denies all values.","description_kind":"plain","optional":true},"values":{"type":["set","string"],"description":"The policy can define specific values that are allowed or denied.","description_kind":"plain","optional":true}},"description":"One or the other must be set.","description_kind":"plain"},"max_items":1}},"description":"A policy that can define specific values that are allowed or denied for the given constraint. It can also be used to allow or deny all values. ","description_kind":"plain"},"max_items":1},"restore_policy":{"nesting_mode":"list","block":{"attributes":{"default":{"type":"bool","description":"May only be set to true. If set, then the default Policy is restored.","description_kind":"plain","required":true}},"description":"A restore policy is a constraint to restore the default policy.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_project_service":{"version":0,"block":{"attributes":{"disable_dependent_services":{"type":"bool","description_kind":"plain","optional":true},"disable_on_destroy":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_project_usage_export_bucket":{"version":0,"block":{"attributes":{"bucket_name":{"type":"string","description":"The bucket to store reports in.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"prefix":{"type":"string","description":"A prefix for the reports, for instance, the project name.","description_kind":"plain","optional":true},"project":{"type":"string","description":"The project to set the export bucket on. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_pubsub_lite_reservation":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the reservation.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region of the pubsub lite reservation.","description_kind":"plain","optional":true},"throughput_capacity":{"type":"number","description":"The reserved throughput capacity. Every unit of throughput capacity is\nequivalent to 1 MiB/s of published messages or 2 MiB/s of subscribed\nmessages.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_pubsub_lite_subscription":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the subscription.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region of the pubsub lite topic.","description_kind":"plain","optional":true},"topic":{"type":"string","description":"A reference to a Topic resource.","description_kind":"plain","required":true},"zone":{"type":"string","description":"The zone of the pubsub lite topic.","description_kind":"plain","optional":true}},"block_types":{"delivery_config":{"nesting_mode":"list","block":{"attributes":{"delivery_requirement":{"type":"string","description":"When this subscription should send messages to subscribers relative to messages persistence in storage. Possible values: [\"DELIVER_IMMEDIATELY\", \"DELIVER_AFTER_STORED\", \"DELIVERY_REQUIREMENT_UNSPECIFIED\"]","description_kind":"plain","required":true}},"description":"The settings for this subscription's message delivery.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_pubsub_lite_topic":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the topic.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region of the pubsub lite topic.","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone of the pubsub lite topic.","description_kind":"plain","optional":true}},"block_types":{"partition_config":{"nesting_mode":"list","block":{"attributes":{"count":{"type":"number","description":"The number of partitions in the topic. Must be at least 1.","description_kind":"plain","required":true}},"block_types":{"capacity":{"nesting_mode":"list","block":{"attributes":{"publish_mib_per_sec":{"type":"number","description":"Subscribe throughput capacity per partition in MiB/s. Must be \u003e= 4 and \u003c= 16.","description_kind":"plain","required":true},"subscribe_mib_per_sec":{"type":"number","description":"Publish throughput capacity per partition in MiB/s. Must be \u003e= 4 and \u003c= 16.","description_kind":"plain","required":true}},"description":"The capacity configuration.","description_kind":"plain"},"max_items":1}},"description":"The settings for this topic's partitions.","description_kind":"plain"},"max_items":1},"reservation_config":{"nesting_mode":"list","block":{"attributes":{"throughput_reservation":{"type":"string","description":"The Reservation to use for this topic's throughput capacity.","description_kind":"plain","optional":true}},"description":"The settings for this topic's Reservation usage.","description_kind":"plain"},"max_items":1},"retention_config":{"nesting_mode":"list","block":{"attributes":{"per_partition_bytes":{"type":"string","description":"The provisioned storage, in bytes, per partition. If the number of bytes stored\nin any of the topic's partitions grows beyond this value, older messages will be\ndropped to make room for newer ones, regardless of the value of period.","description_kind":"plain","required":true},"period":{"type":"string","description":"How long a published message is retained. If unset, messages will be retained as\nlong as the bytes retained for each partition is below perPartitionBytes. A\nduration in seconds with up to nine fractional digits, terminated by 's'.\nExample: \"3.5s\".","description_kind":"plain","optional":true}},"description":"The settings for a topic's message retention.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_pubsub_schema":{"version":0,"block":{"attributes":{"definition":{"type":"string","description":"The definition of the schema.\nThis should contain a string representing the full definition of the schema\nthat is a valid schema definition of the type specified in type.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The ID to use for the schema, which will become the final component of the schema's resource name.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"The type of the schema definition Default value: \"TYPE_UNSPECIFIED\" Possible values: [\"TYPE_UNSPECIFIED\", \"PROTOCOL_BUFFER\", \"AVRO\"]","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_pubsub_subscription":{"version":0,"block":{"attributes":{"ack_deadline_seconds":{"type":"number","description":"This value is the maximum time after a subscriber receives a message\nbefore the subscriber should acknowledge the message. After message\ndelivery but before the ack deadline expires and before the message is\nacknowledged, it is an outstanding message and will not be delivered\nagain during that time (on a best-effort basis).\n\nFor pull subscriptions, this value is used as the initial value for\nthe ack deadline. To override this value for a given message, call\nsubscriptions.modifyAckDeadline with the corresponding ackId if using\npull. The minimum custom deadline you can specify is 10 seconds. The\nmaximum custom deadline you can specify is 600 seconds (10 minutes).\nIf this parameter is 0, a default value of 10 seconds is used.\n\nFor push delivery, this value is also used to set the request timeout\nfor the call to the push endpoint.\n\nIf the subscriber never acknowledges the message, the Pub/Sub system\nwill eventually redeliver the message.","description_kind":"plain","optional":true,"computed":true},"enable_exactly_once_delivery":{"type":"bool","description":"If 'true', Pub/Sub provides the following guarantees for the delivery\nof a message with a given value of messageId on this Subscriptions':\n\n- The message sent to a subscriber is guaranteed not to be resent before the message's acknowledgement deadline expires.\n\n- An acknowledged message will not be resent to a subscriber.\n\nNote that subscribers may still receive multiple copies of a message when 'enable_exactly_once_delivery'\nis true if the message was published multiple times by a publisher client. These copies are considered distinct by Pub/Sub and have distinct messageId values","description_kind":"plain","optional":true},"enable_message_ordering":{"type":"bool","description":"If 'true', messages published with the same orderingKey in PubsubMessage will be delivered to\nthe subscribers in the order in which they are received by the Pub/Sub system. Otherwise, they\nmay be delivered in any order.","description_kind":"plain","optional":true},"filter":{"type":"string","description":"The subscription only delivers the messages that match the filter. \nPub/Sub automatically acknowledges the messages that don't match the filter. You can filter messages\nby their attributes. The maximum length of a filter is 256 bytes. After creating the subscription, \nyou can't modify the filter.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to this Subscription.","description_kind":"plain","optional":true},"message_retention_duration":{"type":"string","description":"How long to retain unacknowledged messages in the subscription's\nbacklog, from the moment a message is published. If\nretain_acked_messages is true, then this also configures the retention\nof acknowledged messages, and thus configures how far back in time a\nsubscriptions.seek can be done. Defaults to 7 days. Cannot be more\nthan 7 days ('\"604800s\"') or less than 10 minutes ('\"600s\"').\n\nA duration in seconds with up to nine fractional digits, terminated\nby 's'. Example: '\"600.5s\"'.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the subscription.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"retain_acked_messages":{"type":"bool","description":"Indicates whether to retain acknowledged messages. If 'true', then\nmessages are not expunged from the subscription's backlog, even if\nthey are acknowledged, until they fall out of the\nmessageRetentionDuration window.","description_kind":"plain","optional":true},"topic":{"type":"string","description":"A reference to a Topic resource.","description_kind":"plain","required":true}},"block_types":{"dead_letter_policy":{"nesting_mode":"list","block":{"attributes":{"dead_letter_topic":{"type":"string","description":"The name of the topic to which dead letter messages should be published.\nFormat is 'projects/{project}/topics/{topic}'.\n\nThe Cloud Pub/Sub service account associated with the enclosing subscription's\nparent project (i.e., \nservice-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have\npermission to Publish() to this topic.\n\nThe operation will fail if the topic does not exist.\nUsers should ensure that there is a subscription attached to this topic\nsince messages published to a topic with no subscriptions are lost.","description_kind":"plain","optional":true},"max_delivery_attempts":{"type":"number","description":"The maximum number of delivery attempts for any message. The value must be\nbetween 5 and 100.\n\nThe number of delivery attempts is defined as 1 + (the sum of number of \nNACKs and number of times the acknowledgement deadline has been exceeded for the message).\n\nA NACK is any call to ModifyAckDeadline with a 0 deadline. Note that\nclient libraries may automatically extend ack_deadlines.\n\nThis field will be honored on a best effort basis.\n\nIf this parameter is 0, a default value of 5 is used.","description_kind":"plain","optional":true}},"description":"A policy that specifies the conditions for dead lettering messages in\nthis subscription. If dead_letter_policy is not set, dead lettering\nis disabled.\n\nThe Cloud Pub/Sub service account associated with this subscription's\nparent project (i.e.,\nservice-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have\npermission to Acknowledge() messages on this subscription.","description_kind":"plain"},"max_items":1},"expiration_policy":{"nesting_mode":"list","block":{"attributes":{"ttl":{"type":"string","description":"Specifies the \"time-to-live\" duration for an associated resource. The\nresource expires if it is not active for a period of ttl.\nIf ttl is not set, the associated resource never expires.\nA duration in seconds with up to nine fractional digits, terminated by 's'.\nExample - \"3.5s\".","description_kind":"plain","required":true}},"description":"A policy that specifies the conditions for this subscription's expiration.\nA subscription is considered active as long as any connected subscriber\nis successfully consuming messages from the subscription or is issuing\noperations on the subscription. If expirationPolicy is not set, a default\npolicy with ttl of 31 days will be used. If it is set but ttl is \"\", the\nresource never expires. The minimum allowed value for expirationPolicy.ttl\nis 1 day.","description_kind":"plain"},"max_items":1},"push_config":{"nesting_mode":"list","block":{"attributes":{"attributes":{"type":["map","string"],"description":"Endpoint configuration attributes.\n\nEvery endpoint has a set of API supported attributes that can\nbe used to control different aspects of the message delivery.\n\nThe currently supported attribute is x-goog-version, which you\ncan use to change the format of the pushed message. This\nattribute indicates the version of the data expected by\nthe endpoint. This controls the shape of the pushed message\n(i.e., its fields and metadata). The endpoint version is\nbased on the version of the Pub/Sub API.\n\nIf not present during the subscriptions.create call,\nit will default to the version of the API used to make\nsuch call. If not present during a subscriptions.modifyPushConfig\ncall, its value will not be changed. subscriptions.get\ncalls will always return a valid version, even if the\nsubscription was created without this attribute.\n\nThe possible values for this attribute are:\n\n- v1beta1: uses the push format defined in the v1beta1 Pub/Sub API.\n- v1 or v1beta2: uses the push format defined in the v1 Pub/Sub API.","description_kind":"plain","optional":true},"push_endpoint":{"type":"string","description":"A URL locating the endpoint to which messages should be pushed.\nFor example, a Webhook endpoint might use\n\"https://example.com/push\".","description_kind":"plain","required":true}},"block_types":{"oidc_token":{"nesting_mode":"list","block":{"attributes":{"audience":{"type":"string","description":"Audience to be used when generating OIDC token. The audience claim\nidentifies the recipients that the JWT is intended for. The audience\nvalue is a single case-sensitive string. Having multiple values (array)\nfor the audience field is not supported. More info about the OIDC JWT\ntoken audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3\nNote: if not specified, the Push endpoint URL will be used.","description_kind":"plain","optional":true},"service_account_email":{"type":"string","description":"Service account email to be used for generating the OIDC token.\nThe caller (for subscriptions.create, subscriptions.patch, and\nsubscriptions.modifyPushConfig RPCs) must have the\niam.serviceAccounts.actAs permission for the service account.","description_kind":"plain","required":true}},"description":"If specified, Pub/Sub will generate and attach an OIDC JWT token as\nan Authorization header in the HTTP request for every pushed message.","description_kind":"plain"},"max_items":1}},"description":"If push delivery is used with this subscription, this field is used to\nconfigure it. An empty pushConfig signifies that the subscriber will\npull and ack messages using API methods.","description_kind":"plain"},"max_items":1},"retry_policy":{"nesting_mode":"list","block":{"attributes":{"maximum_backoff":{"type":"string","description":"The maximum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 600 seconds. \nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true,"computed":true},"minimum_backoff":{"type":"string","description":"The minimum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true,"computed":true}},"description":"A policy that specifies how Pub/Sub retries message delivery for this subscription.\n\nIf not set, the default retry policy is applied. This generally implies that messages will be retried as soon as possible for healthy subscribers. \nRetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_pubsub_subscription_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"subscription":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_pubsub_subscription_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"subscription":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_pubsub_subscription_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"subscription":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_pubsub_topic":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kms_key_name":{"type":"string","description":"The resource name of the Cloud KMS CryptoKey to be used to protect access\nto messages published on this topic. Your project's PubSub service account\n('service-{{PROJECT_NUMBER}}@gcp-sa-pubsub.iam.gserviceaccount.com') must have\n'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this feature.\nThe expected format is 'projects/*/locations/*/keyRings/*/cryptoKeys/*'","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to this Topic.","description_kind":"plain","optional":true},"message_retention_duration":{"type":"string","description":"Indicates the minimum duration to retain a message after it is published\nto the topic. If this field is set, messages published to the topic in\nthe last messageRetentionDuration are always available to subscribers.\nFor instance, it allows any attached subscription to seek to a timestamp\nthat is up to messageRetentionDuration in the past. If this field is not\nset, message retention is controlled by settings on individual subscriptions.\nCannot be more than 7 days or less than 10 minutes.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the topic.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"message_storage_policy":{"nesting_mode":"list","block":{"attributes":{"allowed_persistence_regions":{"type":["list","string"],"description":"A list of IDs of GCP regions where messages that are published to\nthe topic may be persisted in storage. Messages published by\npublishers running in non-allowed GCP regions (or running outside\nof GCP altogether) will be routed for storage in one of the\nallowed regions. An empty list means that no regions are allowed,\nand is not a valid configuration.","description_kind":"plain","required":true}},"description":"Policy constraining the set of Google Cloud Platform regions where\nmessages published to the topic may be stored. If not present, then no\nconstraints are in effect.","description_kind":"plain"},"max_items":1},"schema_settings":{"nesting_mode":"list","block":{"attributes":{"encoding":{"type":"string","description":"The encoding of messages validated against schema. Default value: \"ENCODING_UNSPECIFIED\" Possible values: [\"ENCODING_UNSPECIFIED\", \"JSON\", \"BINARY\"]","description_kind":"plain","optional":true},"schema":{"type":"string","description":"The name of the schema that messages published should be\nvalidated against. Format is projects/{project}/schemas/{schema}.\nThe value of this field will be _deleted-schema_\nif the schema has been deleted.","description_kind":"plain","required":true}},"description":"Settings for validating messages published against a schema.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_pubsub_topic_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"topic":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_pubsub_topic_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"topic":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_pubsub_topic_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"topic":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_recaptcha_enterprise_key":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"The timestamp corresponding to the creation of this Key.","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"Human-readable display name of this key. Modifiable by user.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"See [Creating and managing labels](https://cloud.google.com/recaptcha-enterprise/docs/labels).","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource name for the Key in the format \"projects/{project}/keys/{key}\".","description_kind":"plain","computed":true},"project":{"type":"string","description":"The project for the resource","description_kind":"plain","optional":true,"computed":true}},"block_types":{"android_settings":{"nesting_mode":"list","block":{"attributes":{"allow_all_package_names":{"type":"bool","description":"If set to true, it means allowed_package_names will not be enforced.","description_kind":"plain","optional":true},"allowed_package_names":{"type":["list","string"],"description":"Android package names of apps allowed to use the key. Example: 'com.companyname.appname'","description_kind":"plain","optional":true}},"description":"Settings for keys that can be used by Android apps.","description_kind":"plain"},"max_items":1},"ios_settings":{"nesting_mode":"list","block":{"attributes":{"allow_all_bundle_ids":{"type":"bool","description":"If set to true, it means allowed_bundle_ids will not be enforced.","description_kind":"plain","optional":true},"allowed_bundle_ids":{"type":["list","string"],"description":"iOS bundle ids of apps allowed to use the key. Example: 'com.companyname.productname.appname'","description_kind":"plain","optional":true}},"description":"Settings for keys that can be used by iOS apps.","description_kind":"plain"},"max_items":1},"testing_options":{"nesting_mode":"list","block":{"attributes":{"testing_challenge":{"type":"string","description":"For challenge-based keys only (CHECKBOX, INVISIBLE), all challenge requests for this site will return nocaptcha if NOCAPTCHA, or an unsolvable challenge if UNSOLVABLE_CHALLENGE. Possible values: TESTING_CHALLENGE_UNSPECIFIED, NOCAPTCHA, UNSOLVABLE_CHALLENGE","description_kind":"plain","optional":true,"computed":true},"testing_score":{"type":"number","description":"All assessments for this Key will return this score. Must be between 0 (likely not legitimate) and 1 (likely legitimate) inclusive.","description_kind":"plain","optional":true}},"description":"Options for user acceptance testing.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"web_settings":{"nesting_mode":"list","block":{"attributes":{"allow_all_domains":{"type":"bool","description":"If set to true, it means allowed_domains will not be enforced.","description_kind":"plain","optional":true},"allow_amp_traffic":{"type":"bool","description":"If set to true, the key can be used on AMP (Accelerated Mobile Pages) websites. This is supported only for the SCORE integration type.","description_kind":"plain","optional":true},"allowed_domains":{"type":["list","string"],"description":"Domains or subdomains of websites allowed to use the key. All subdomains of an allowed domain are automatically allowed. A valid domain requires a host and must not include any path, port, query or fragment. Examples: 'example.com' or 'subdomain.example.com'","description_kind":"plain","optional":true},"challenge_security_preference":{"type":"string","description":"Settings for the frequency and difficulty at which this key triggers captcha challenges. This should only be specified for IntegrationTypes CHECKBOX and INVISIBLE. Possible values: CHALLENGE_SECURITY_PREFERENCE_UNSPECIFIED, USABILITY, BALANCE, SECURITY","description_kind":"plain","optional":true,"computed":true},"integration_type":{"type":"string","description":"Required. Describes how this key is integrated with the website. Possible values: SCORE, CHECKBOX, INVISIBLE","description_kind":"plain","required":true}},"description":"Settings for keys that can be used by websites.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_redis_instance":{"version":0,"block":{"attributes":{"alternative_location_id":{"type":"string","description":"Only applicable to STANDARD_HA tier which protects the instance\nagainst zonal failures by provisioning it across two zones.\nIf provided, it must be a different zone from the one provided in\n[locationId].","description_kind":"plain","optional":true,"computed":true},"auth_enabled":{"type":"bool","description":"Optional. Indicates whether OSS Redis AUTH is enabled for the\ninstance. If set to \"true\" AUTH is enabled on the instance.\nDefault value is \"false\" meaning AUTH is disabled.","description_kind":"plain","optional":true},"auth_string":{"type":"string","description":"AUTH String set on the instance. This field will only be populated if auth_enabled is true.","description_kind":"plain","computed":true,"sensitive":true},"authorized_network":{"type":"string","description":"The full name of the Google Compute Engine network to which the\ninstance is connected. If left unspecified, the default network\nwill be used.","description_kind":"plain","optional":true,"computed":true},"connect_mode":{"type":"string","description":"The connection mode of the Redis instance. Default value: \"DIRECT_PEERING\" Possible values: [\"DIRECT_PEERING\", \"PRIVATE_SERVICE_ACCESS\"]","description_kind":"plain","optional":true},"create_time":{"type":"string","description":"The time the instance was created in RFC3339 UTC \"Zulu\" format,\naccurate to nanoseconds.","description_kind":"plain","computed":true},"current_location_id":{"type":"string","description":"The current zone where the Redis endpoint is placed.\nFor Basic Tier instances, this will always be the same as the\n[locationId] provided by the user at creation time. For Standard Tier\ninstances, this can be either [locationId] or [alternativeLocationId]\nand can change after a failover event.","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"An arbitrary and optional user-provided name for the instance.","description_kind":"plain","optional":true},"host":{"type":"string","description":"Hostname or IP address of the exposed Redis endpoint used by clients\nto connect to the service.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Resource labels to represent user provided metadata.","description_kind":"plain","optional":true},"location_id":{"type":"string","description":"The zone where the instance will be provisioned. If not provided,\nthe service will choose a zone for the instance. For STANDARD_HA tier,\ninstances will be created across two zones for protection against\nzonal failures. If [alternativeLocationId] is also provided, it must\nbe different from [locationId].","description_kind":"plain","optional":true,"computed":true},"memory_size_gb":{"type":"number","description":"Redis memory size in GiB.","description_kind":"plain","required":true},"name":{"type":"string","description":"The ID of the instance or a fully qualified identifier for the instance.","description_kind":"plain","required":true},"nodes":{"type":["list",["object",{"id":"string","zone":"string"}]],"description":"Output only. Info per node.","description_kind":"plain","computed":true},"persistence_iam_identity":{"type":"string","description":"Output only. Cloud IAM identity used by import / export operations\nto transfer data to/from Cloud Storage. Format is \"serviceAccount:\".\nThe value may change over time for a given instance so should be\nchecked before each import/export operation.","description_kind":"plain","computed":true},"port":{"type":"number","description":"The port number of the exposed Redis endpoint.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"read_endpoint":{"type":"string","description":"Output only. Hostname or IP address of the exposed readonly Redis endpoint. Standard tier only.\nTargets all healthy replica nodes in instance. Replication is asynchronous and replica nodes\nwill exhibit some lag behind the primary. Write requests must target 'host'.","description_kind":"plain","computed":true},"read_endpoint_port":{"type":"number","description":"Output only. The port number of the exposed readonly redis endpoint. Standard tier only. \nWrite requests should target 'port'.","description_kind":"plain","computed":true},"read_replicas_mode":{"type":"string","description":"Optional. Read replica mode. Can only be specified when trying to create the instance.\nIf not set, Memorystore Redis backend will default to READ_REPLICAS_DISABLED.\n- READ_REPLICAS_DISABLED: If disabled, read endpoint will not be provided and the \ninstance cannot scale up or down the number of replicas.\n- READ_REPLICAS_ENABLED: If enabled, read endpoint will be provided and the instance \ncan scale up and down the number of replicas. Possible values: [\"READ_REPLICAS_DISABLED\", \"READ_REPLICAS_ENABLED\"]","description_kind":"plain","optional":true,"computed":true},"redis_configs":{"type":["map","string"],"description":"Redis configuration parameters, according to http://redis.io/topics/config.\nPlease check Memorystore documentation for the list of supported parameters:\nhttps://cloud.google.com/memorystore/docs/redis/reference/rest/v1/projects.locations.instances#Instance.FIELDS.redis_configs","description_kind":"plain","optional":true},"redis_version":{"type":"string","description":"The version of Redis software. If not provided, latest supported\nversion will be used. Please check the API documentation linked \nat the top for the latest valid values.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The name of the Redis region of the instance.","description_kind":"plain","optional":true,"computed":true},"replica_count":{"type":"number","description":"Optional. The number of replica nodes. The valid range for the Standard Tier with \nread replicas enabled is [1-5] and defaults to 2. If read replicas are not enabled\nfor a Standard Tier instance, the only valid value is 1 and the default is 1. \nThe valid value for basic tier is 0 and the default is also 0.","description_kind":"plain","optional":true,"computed":true},"reserved_ip_range":{"type":"string","description":"The CIDR range of internal addresses that are reserved for this\ninstance. If not provided, the service will choose an unused /29\nblock, for example, 10.0.0.0/29 or 192.168.0.0/29. Ranges must be\nunique and non-overlapping with existing subnets in an authorized\nnetwork.","description_kind":"plain","optional":true,"computed":true},"server_ca_certs":{"type":["list",["object",{"cert":"string","create_time":"string","expire_time":"string","serial_number":"string","sha1_fingerprint":"string"}]],"description":"List of server CA certificates for the instance.","description_kind":"plain","computed":true},"tier":{"type":"string","description":"The service tier of the instance. Must be one of these values:\n\n- BASIC: standalone instance\n- STANDARD_HA: highly available primary/replica instances Default value: \"BASIC\" Possible values: [\"BASIC\", \"STANDARD_HA\"]","description_kind":"plain","optional":true},"transit_encryption_mode":{"type":"string","description":"The TLS mode of the Redis instance, If not provided, TLS is disabled for the instance.\n\n- SERVER_AUTHENTICATION: Client to Server traffic encryption enabled with server authentication Default value: \"DISABLED\" Possible values: [\"SERVER_AUTHENTICATION\", \"DISABLED\"]","description_kind":"plain","optional":true}},"block_types":{"maintenance_policy":{"nesting_mode":"list","block":{"attributes":{"create_time":{"type":"string","description":"Output only. The time when the policy was created.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond\nresolution and up to nine fractional digits.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Optional. Description of what this policy is for.\nCreate/Update methods return INVALID_ARGUMENT if the\nlength is greater than 512.","description_kind":"plain","optional":true},"update_time":{"type":"string","description":"Output only. The time when the policy was last updated.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond\nresolution and up to nine fractional digits.","description_kind":"plain","computed":true}},"block_types":{"weekly_maintenance_window":{"nesting_mode":"list","block":{"attributes":{"day":{"type":"string","description":"Required. The day of week that maintenance updates occur.\n\n- DAY_OF_WEEK_UNSPECIFIED: The day of the week is unspecified.\n- MONDAY: Monday\n- TUESDAY: Tuesday\n- WEDNESDAY: Wednesday\n- THURSDAY: Thursday\n- FRIDAY: Friday\n- SATURDAY: Saturday\n- SUNDAY: Sunday Possible values: [\"DAY_OF_WEEK_UNSPECIFIED\", \"MONDAY\", \"TUESDAY\", \"WEDNESDAY\", \"THURSDAY\", \"FRIDAY\", \"SATURDAY\", \"SUNDAY\"]","description_kind":"plain","required":true},"duration":{"type":"string","description":"Output only. Duration of the maintenance window.\nThe current window is fixed at 1 hour.\nA duration in seconds with up to nine fractional digits,\nterminated by 's'. Example: \"3.5s\".","description_kind":"plain","computed":true}},"block_types":{"start_time":{"nesting_mode":"list","block":{"attributes":{"hours":{"type":"number","description":"Hours of day in 24 hour format. Should be from 0 to 23.\nAn API may choose to allow the value \"24:00:00\" for scenarios like business closing time.","description_kind":"plain","optional":true},"minutes":{"type":"number","description":"Minutes of hour of day. Must be from 0 to 59.","description_kind":"plain","optional":true},"nanos":{"type":"number","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.","description_kind":"plain","optional":true},"seconds":{"type":"number","description":"Seconds of minutes of the time. Must normally be from 0 to 59.\nAn API may allow the value 60 if it allows leap-seconds.","description_kind":"plain","optional":true}},"description":"Required. Start time of the window in UTC time.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Optional. Maintenance window that is applied to resources covered by this policy.\nMinimum 1. For the current version, the maximum number\nof weekly_window is expected to be one.","description_kind":"plain"}}},"description":"Maintenance policy for an instance.","description_kind":"plain"},"max_items":1},"maintenance_schedule":{"nesting_mode":"list","block":{"attributes":{"end_time":{"type":"string","description":"Output only. The end time of any upcoming scheduled maintenance for this instance.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond\nresolution and up to nine fractional digits.","description_kind":"plain","computed":true},"schedule_deadline_time":{"type":"string","description":"Output only. The deadline that the maintenance schedule start time\ncan not go beyond, including reschedule.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond\nresolution and up to nine fractional digits.","description_kind":"plain","computed":true},"start_time":{"type":"string","description":"Output only. The start time of any upcoming scheduled maintenance for this instance.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond\nresolution and up to nine fractional digits.","description_kind":"plain","computed":true}},"description":"Upcoming maintenance schedule.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_resource_manager_lien":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Time of creation","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"A system-generated unique identifier for this Lien.","description_kind":"plain","computed":true},"origin":{"type":"string","description":"A stable, user-visible/meaningful string identifying the origin\nof the Lien, intended to be inspected programmatically. Maximum length of\n200 characters.","description_kind":"plain","required":true},"parent":{"type":"string","description":"A reference to the resource this Lien is attached to.\nThe server will validate the parent against those for which Liens are supported.\nSince a variety of objects can have Liens against them, you must provide the type\nprefix (e.g. \"projects/my-project-name\").","description_kind":"plain","required":true},"reason":{"type":"string","description":"Concise user-visible strings indicating why an action cannot be performed\non a resource. Maximum length of 200 characters.","description_kind":"plain","required":true},"restrictions":{"type":["list","string"],"description":"The types of operations which should be blocked as a result of this Lien.\nEach value should correspond to an IAM permission. The server will validate\nthe permissions against those for which Liens are supported. An empty\nlist is meaningless and will be rejected.\ne.g. ['resourcemanager.projects.delete']","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_scc_notification_config":{"version":0,"block":{"attributes":{"config_id":{"type":"string","description":"This must be unique within the organization.","description_kind":"plain","required":true},"description":{"type":"string","description":"The description of the notification config (max of 1024 characters).","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of this notification config, in the format\n'organizations/{{organization}}/notificationConfigs/{{config_id}}'.","description_kind":"plain","computed":true},"organization":{"type":"string","description":"The organization whose Cloud Security Command Center the Notification\nConfig lives in.","description_kind":"plain","required":true},"pubsub_topic":{"type":"string","description":"The Pub/Sub topic to send notifications to. Its format is\n\"projects/[project_id]/topics/[topic]\".","description_kind":"plain","required":true},"service_account":{"type":"string","description":"The service account that needs \"pubsub.topics.publish\" permission to\npublish to the Pub/Sub topic.","description_kind":"plain","computed":true}},"block_types":{"streaming_config":{"nesting_mode":"list","block":{"attributes":{"filter":{"type":"string","description":"Expression that defines the filter to apply across create/update\nevents of assets or findings as specified by the event type. The\nexpression is a list of zero or more restrictions combined via\nlogical operators AND and OR. Parentheses are supported, and OR\nhas higher precedence than AND.\n\nRestrictions have the form \u003cfield\u003e \u003coperator\u003e \u003cvalue\u003e and may have\na - character in front of them to indicate negation. The fields\nmap to those defined in the corresponding resource.\n\nThe supported operators are:\n\n* = for all value types.\n* \u003e, \u003c, \u003e=, \u003c= for integer values.\n* :, meaning substring matching, for strings.\n\nThe supported value types are:\n\n* string literals in quotes.\n* integer literals without quotes.\n* boolean literals true and false without quotes.\n\nSee\n[Filtering notifications](https://cloud.google.com/security-command-center/docs/how-to-api-filter-notifications)\nfor information on how to write a filter.","description_kind":"plain","required":true}},"description":"The config for triggering streaming-based notifications.","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_scc_source":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description of the source (max of 1024 characters).","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The source’s display name. A source’s display name must be unique\namongst its siblings, for example, two sources with the same parent\ncan't share the same display name. The display name must start and end\nwith a letter or digit, may contain letters, digits, spaces, hyphens,\nand underscores, and can be no longer than 32 characters.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of this source, in the format\n'organizations/{{organization}}/sources/{{source}}'.","description_kind":"plain","computed":true},"organization":{"type":"string","description":"The organization whose Cloud Security Command Center the Source\nlives in.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_secret_manager_secret":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"The time at which the Secret was created.","description_kind":"plain","computed":true},"expire_time":{"type":"string","description":"Timestamp in UTC when the Secret is scheduled to expire. This is always provided on output, regardless of what was sent on input.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The labels assigned to this Secret.\n\nLabel keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,\nand must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}][\\p{Ll}\\p{Lo}\\p{N}_-]{0,62}\n\nLabel values must be between 0 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,\nand must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}\n\nNo more than 64 labels can be assigned to a given resource.\n\nAn object containing a list of \"key\": value pairs. Example:\n{ \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource name of the Secret. Format:\n'projects/{{project}}/secrets/{{secret_id}}'","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secret_id":{"type":"string","description":"This must be unique within the project.","description_kind":"plain","required":true},"ttl":{"type":"string","description":"The TTL for the Secret.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true}},"block_types":{"replication":{"nesting_mode":"list","block":{"attributes":{"automatic":{"type":"bool","description":"The Secret will automatically be replicated without any restrictions.","description_kind":"plain","optional":true}},"block_types":{"user_managed":{"nesting_mode":"list","block":{"block_types":{"replicas":{"nesting_mode":"list","block":{"attributes":{"location":{"type":"string","description":"The canonical IDs of the location to replicate data. For example: \"us-east1\".","description_kind":"plain","required":true}},"block_types":{"customer_managed_encryption":{"nesting_mode":"list","block":{"attributes":{"kms_key_name":{"type":"string","description":"Describes the Cloud KMS encryption key that will be used to protect destination secret.","description_kind":"plain","required":true}},"description":"Customer Managed Encryption for the secret.","description_kind":"plain"},"max_items":1}},"description":"The list of Replicas for this Secret. Cannot be empty.","description_kind":"plain"},"min_items":1}},"description":"The Secret will automatically be replicated without any restrictions.","description_kind":"plain"},"max_items":1}},"description":"The replication policy of the secret data attached to the Secret. It cannot be changed\nafter the Secret has been created.","description_kind":"plain"},"min_items":1,"max_items":1},"rotation":{"nesting_mode":"list","block":{"attributes":{"next_rotation_time":{"type":"string","description":"Timestamp in UTC at which the Secret is scheduled to rotate.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","optional":true},"rotation_period":{"type":"string","description":"The Duration between rotation notifications. Must be in seconds and at least 3600s (1h) and at most 3153600000s (100 years).\nIf rotationPeriod is set, 'next_rotation_time' must be set. 'next_rotation_time' will be advanced by this period when the service automatically sends rotation notifications.","description_kind":"plain","optional":true}},"description":"The rotation time and period for a Secret. At 'next_rotation_time', Secret Manager will send a Pub/Sub notification to the topics configured on the Secret. 'topics' must be set to configure rotation.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"topics":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"The resource name of the Pub/Sub topic that will be published to, in the following format: projects/*/topics/*.\nFor publication to succeed, the Secret Manager Service Agent service account must have pubsub.publisher permissions on the topic.","description_kind":"plain","required":true}},"description":"A list of up to 10 Pub/Sub topics to which messages are published when control plane operations are called on the secret or its versions.","description_kind":"plain"}}},"description_kind":"plain"}},"google_secret_manager_secret_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"secret_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_secret_manager_secret_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true},"secret_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_secret_manager_secret_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secret_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_secret_manager_secret_version":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"The time at which the Secret was created.","description_kind":"plain","computed":true},"destroy_time":{"type":"string","description":"The time at which the Secret was destroyed. Only present if state is DESTROYED.","description_kind":"plain","computed":true},"enabled":{"type":"bool","description":"The current state of the SecretVersion.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource name of the SecretVersion. Format:\n'projects/{{project}}/secrets/{{secret_id}}/versions/{{version}}'","description_kind":"plain","computed":true},"secret":{"type":"string","description":"Secret Manager secret resource","description_kind":"plain","required":true},"secret_data":{"type":"string","description":"The secret data. Must be no larger than 64KiB.","description_kind":"plain","required":true,"sensitive":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_service_account":{"version":0,"block":{"attributes":{"account_id":{"type":"string","description":"The account id that is used to generate the service account email address and a stable unique id. It is unique within a project, must be 6-30 characters long, and match the regular expression [a-z]([-a-z0-9]*[a-z0-9]) to comply with RFC1035. Changing this forces a new service account to be created.","description_kind":"plain","required":true},"description":{"type":"string","description":"A text description of the service account. Must be less than or equal to 256 UTF-8 bytes.","description_kind":"plain","optional":true},"disabled":{"type":"bool","description":"Whether the service account is disabled. Defaults to false","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The display name for the service account. Can be updated without creating a new resource.","description_kind":"plain","optional":true},"email":{"type":"string","description":"The e-mail address of the service account. This value should be referenced from any google_iam_policy data sources that would grant the service account privileges.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The fully-qualified name of the service account.","description_kind":"plain","computed":true},"project":{"type":"string","description":"The ID of the project that the service account will be created in. Defaults to the provider project configuration.","description_kind":"plain","optional":true,"computed":true},"unique_id":{"type":"string","description":"The unique id of the service account.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_service_account_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true},"service_account_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_service_account_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true},"service_account_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_service_account_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"service_account_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_service_account_key":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keepers":{"type":["map","string"],"description":"Arbitrary map of values that, when changed, will trigger recreation of resource.","description_kind":"plain","optional":true},"key_algorithm":{"type":"string","description":"The algorithm used to generate the key, used only on create. KEY_ALG_RSA_2048 is the default algorithm. Valid values are: \"KEY_ALG_RSA_1024\", \"KEY_ALG_RSA_2048\".","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name used for this key pair","description_kind":"plain","computed":true},"private_key":{"type":"string","description":"The private key in JSON format, base64 encoded. This is what you normally get as a file when creating service account keys through the CLI or web console. This is only populated when creating a new key.","description_kind":"plain","computed":true,"sensitive":true},"private_key_type":{"type":"string","description_kind":"plain","optional":true},"public_key":{"type":"string","description":"The public key, base64 encoded","description_kind":"plain","computed":true},"public_key_data":{"type":"string","description":"A field that allows clients to upload their own public key. If set, use this public key data to create a service account key for given service account. Please note, the expected format for this field is a base64 encoded X509_PEM.","description_kind":"plain","optional":true},"public_key_type":{"type":"string","description_kind":"plain","optional":true},"service_account_id":{"type":"string","description":"The ID of the parent service account of the key. This can be a string in the format {ACCOUNT} or projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}, where {ACCOUNT} is the email address or unique id of the service account. If the {ACCOUNT} syntax is used, the project will be inferred from the provider's configuration.","description_kind":"plain","required":true},"valid_after":{"type":"string","description":"The key can be used after this timestamp. A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"valid_before":{"type":"string","description":"The key can be used before this timestamp. A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_service_networking_connection":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"network":{"type":"string","description":"Name of VPC network connected with service producers using VPC peering.","description_kind":"plain","required":true},"peering":{"type":"string","description_kind":"plain","computed":true},"reserved_peering_ranges":{"type":["list","string"],"description":"Named IP address range(s) of PEERING type reserved for this service provider. Note that invoking this method with a different range when connection is already established will not reallocate already provisioned service producer subnetworks.","description_kind":"plain","required":true},"service":{"type":"string","description":"Provider peering service that is managing peering connectivity for a service provider organization. For Google services that support this functionality it is 'servicenetworking.googleapis.com'.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_service_networking_peered_dns_domain":{"version":0,"block":{"attributes":{"dns_suffix":{"type":"string","description":"The DNS domain name suffix of the peered DNS domain.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the peered DNS domain.","description_kind":"plain","required":true},"network":{"type":"string","description":"Network in the consumer project to peer with.","description_kind":"plain","required":true},"parent":{"type":"string","description_kind":"plain","computed":true},"project":{"type":"string","description":"The ID of the project that the service account will be created in. Defaults to the provider project configuration.","description_kind":"plain","optional":true,"computed":true},"service":{"type":"string","description":"The name of the service to create a peered DNS domain for, e.g. servicenetworking.googleapis.com","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_sourcerepo_repository":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Resource name of the repository, of the form '{{repo}}'.\nThe repo name may contain slashes. eg, 'name/with/slash'","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description":"The disk usage of the repo, in bytes.","description_kind":"plain","computed":true},"url":{"type":"string","description":"URL to clone the repository from Google Cloud Source Repositories.","description_kind":"plain","computed":true}},"block_types":{"pubsub_configs":{"nesting_mode":"set","block":{"attributes":{"message_format":{"type":"string","description":"The format of the Cloud Pub/Sub messages. \n- PROTOBUF: The message payload is a serialized protocol buffer of SourceRepoEvent.\n- JSON: The message payload is a JSON string of SourceRepoEvent. Possible values: [\"PROTOBUF\", \"JSON\"]","description_kind":"plain","required":true},"service_account_email":{"type":"string","description":"Email address of the service account used for publishing Cloud Pub/Sub messages. \nThis service account needs to be in the same project as the PubsubConfig. When added, \nthe caller needs to have iam.serviceAccounts.actAs permission on this service account. \nIf unspecified, it defaults to the compute engine default service account.","description_kind":"plain","optional":true,"computed":true},"topic":{"type":"string","description_kind":"plain","required":true}},"description":"How this repository publishes a change in the repository through Cloud Pub/Sub. \nKeyed by the topic names.","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_sourcerepo_repository_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"repository":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_sourcerepo_repository_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"repository":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_sourcerepo_repository_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"repository":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_spanner_database":{"version":0,"block":{"attributes":{"database_dialect":{"type":"string","description":"The dialect of the Cloud Spanner Database.\nIf it is not provided, \"GOOGLE_STANDARD_SQL\" will be used. \nNote: Databases that are created with POSTGRESQL dialect do not support \nextra DDL statements in the 'CreateDatabase' call. You must therefore re-apply \nterraform with ddl on the same database after creation. Possible values: [\"GOOGLE_STANDARD_SQL\", \"POSTGRESQL\"]","description_kind":"plain","optional":true,"computed":true},"ddl":{"type":["list","string"],"description":"An optional list of DDL statements to run inside the newly created\ndatabase. Statements can create tables, indexes, etc. These statements\nexecute atomically with the creation of the database: if there is an\nerror in any statement, the database is not created.","description_kind":"plain","optional":true},"deletion_protection":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description":"The instance to create the database on.","description_kind":"plain","required":true},"name":{"type":"string","description":"A unique identifier for the database, which cannot be changed after\nthe instance is created. Values are of the form [a-z][-a-z0-9]*[a-z0-9].","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description":"An explanation of the status of the database.","description_kind":"plain","computed":true}},"block_types":{"encryption_config":{"nesting_mode":"list","block":{"attributes":{"kms_key_name":{"type":"string","description":"Fully qualified name of the KMS key to use to encrypt this database. This key must exist\nin the same location as the Spanner Database.","description_kind":"plain","required":true}},"description":"Encryption configuration for the database","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_spanner_database_iam_binding":{"version":0,"block":{"attributes":{"database":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_spanner_database_iam_member":{"version":0,"block":{"attributes":{"database":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_spanner_database_iam_policy":{"version":0,"block":{"attributes":{"database":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_spanner_instance":{"version":0,"block":{"attributes":{"config":{"type":"string","description":"The name of the instance's configuration (similar but not\nquite the same as a region) which defines the geographic placement and\nreplication of your databases in this instance. It determines where your data\nis stored. Values are typically of the form 'regional-europe-west1' , 'us-central' etc.\nIn order to obtain a valid list please consult the\n[Configuration section of the docs](https://cloud.google.com/spanner/docs/instances).","description_kind":"plain","required":true},"display_name":{"type":"string","description":"The descriptive name for this instance as it appears in UIs. Must be\nunique per project and between 4 and 30 characters in length.","description_kind":"plain","required":true},"force_destroy":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"An object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","optional":true},"name":{"type":"string","description":"A unique identifier for the instance, which cannot be changed after\nthe instance is created. The name must be between 6 and 30 characters\nin length.\n\n\nIf not provided, a random string starting with 'tf-' will be selected.","description_kind":"plain","optional":true,"computed":true},"num_nodes":{"type":"number","description":"The number of nodes allocated to this instance. Exactly one of either node_count or processing_units\nmust be present in terraform.","description_kind":"plain","optional":true,"computed":true},"processing_units":{"type":"number","description":"The number of processing units allocated to this instance. Exactly one of processing_units \nor node_count must be present in terraform.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description":"Instance status: 'CREATING' or 'READY'.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_spanner_instance_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_spanner_instance_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"member":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_spanner_instance_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_sql_database":{"version":0,"block":{"attributes":{"charset":{"type":"string","description":"The charset value. See MySQL's\n[Supported Character Sets and Collations](https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html)\nand Postgres' [Character Set Support](https://www.postgresql.org/docs/9.6/static/multibyte.html)\nfor more details and supported values. Postgres databases only support\na value of 'UTF8' at creation time.","description_kind":"plain","optional":true,"computed":true},"collation":{"type":"string","description":"The collation value. See MySQL's\n[Supported Character Sets and Collations](https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html)\nand Postgres' [Collation Support](https://www.postgresql.org/docs/9.6/static/collation.html)\nfor more details and supported values. Postgres databases only support\na value of 'en_US.UTF8' at creation time.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description":"The name of the Cloud SQL instance. This does not include the project\nID.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the database in the Cloud SQL instance.\nThis does not include the project ID or instance name.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_sql_database_instance":{"version":0,"block":{"attributes":{"connection_name":{"type":"string","description":"The connection name of the instance to be used in connection strings. For example, when connecting with Cloud SQL Proxy.","description_kind":"plain","computed":true},"database_version":{"type":"string","description":"The MySQL, PostgreSQL or SQL Server (beta) version to use. Supported values include MYSQL_5_6, MYSQL_5_7, MYSQL_8_0, POSTGRES_9_6, POSTGRES_10, POSTGRES_11, POSTGRES_12, POSTGRES_13, SQLSERVER_2017_STANDARD, SQLSERVER_2017_ENTERPRISE, SQLSERVER_2017_EXPRESS, SQLSERVER_2017_WEB. Database Version Policies includes an up-to-date reference of supported versions.","description_kind":"plain","required":true},"deletion_protection":{"type":"bool","description":"Used to block Terraform from deleting a SQL Instance.","description_kind":"plain","optional":true},"first_ip_address":{"type":"string","description":"The first IPv4 address of any type assigned. This is to support accessing the first address in the list in a terraform output when the resource is configured with a count.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":["list",["object",{"ip_address":"string","time_to_retire":"string","type":"string"}]],"description_kind":"plain","computed":true},"master_instance_name":{"type":"string","description":"The name of the instance that will act as the master in the replication setup. Note, this requires the master to have binary_log_enabled set, as well as existing backups.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the instance. If the name is left blank, Terraform will randomly generate one when the instance is first created. This is done because after a name is used, it cannot be reused for up to one week.","description_kind":"plain","optional":true,"computed":true},"private_ip_address":{"type":"string","description":"IPv4 address assigned. This is a workaround for an issue fixed in Terraform 0.12 but also provides a convenient way to access an IP of a specific type without performing filtering in a Terraform config.","description_kind":"plain","computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"public_ip_address":{"type":"string","description":"IPv4 address assigned. This is a workaround for an issue fixed in Terraform 0.12 but also provides a convenient way to access an IP of a specific type without performing filtering in a Terraform config.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region the instance will sit in. Note, Cloud SQL is not available in all regions. A valid region must be provided to use this resource. If a region is not provided in the resource definition, the provider region will be used instead, but this will be an apply-time error for instances if the provider region is not supported with Cloud SQL. If you choose not to provide the region argument for this resource, make sure you understand this.","description_kind":"plain","optional":true,"computed":true},"root_password":{"type":"string","description":"Initial root password. Required for MS SQL Server, ignored by MySQL and PostgreSQL.","description_kind":"plain","optional":true,"sensitive":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"server_ca_cert":{"type":["list",["object",{"cert":"string","common_name":"string","create_time":"string","expiration_time":"string","sha1_fingerprint":"string"}]],"description_kind":"plain","computed":true},"service_account_email_address":{"type":"string","description":"The service account email address assigned to the instance.","description_kind":"plain","computed":true}},"block_types":{"clone":{"nesting_mode":"list","block":{"attributes":{"allocated_ip_range":{"type":"string","description":"The name of the allocated ip range for the private ip CloudSQL instance. For example: \"google-managed-services-default\". If set, the cloned instance ip will be created in the allocated range. The range name must comply with [RFC 1035](https://tools.ietf.org/html/rfc1035). Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?.","description_kind":"plain","optional":true},"point_in_time":{"type":"string","description":"The timestamp of the point in time that should be restored.","description_kind":"plain","optional":true},"source_instance_name":{"type":"string","description":"The name of the instance from which the point in time should be restored.","description_kind":"plain","required":true}},"description":"Configuration for creating a new instance as a clone of another instance.","description_kind":"plain"},"max_items":1},"replica_configuration":{"nesting_mode":"list","block":{"attributes":{"ca_certificate":{"type":"string","description":"PEM representation of the trusted CA's x509 certificate.","description_kind":"plain","optional":true},"client_certificate":{"type":"string","description":"PEM representation of the replica's x509 certificate.","description_kind":"plain","optional":true},"client_key":{"type":"string","description":"PEM representation of the replica's private key. The corresponding public key in encoded in the client_certificate.","description_kind":"plain","optional":true},"connect_retry_interval":{"type":"number","description":"The number of seconds between connect retries.","description_kind":"plain","optional":true},"dump_file_path":{"type":"string","description":"Path to a SQL file in Google Cloud Storage from which replica instances are created. Format is gs://bucket/filename.","description_kind":"plain","optional":true},"failover_target":{"type":"bool","description":"Specifies if the replica is the failover target. If the field is set to true the replica will be designated as a failover replica. If the master instance fails, the replica instance will be promoted as the new master instance.","description_kind":"plain","optional":true},"master_heartbeat_period":{"type":"number","description":"Time in ms between replication heartbeats.","description_kind":"plain","optional":true},"password":{"type":"string","description":"Password for the replication connection.","description_kind":"plain","optional":true,"sensitive":true},"ssl_cipher":{"type":"string","description":"Permissible ciphers for use in SSL encryption.","description_kind":"plain","optional":true},"username":{"type":"string","description":"Username for replication connection.","description_kind":"plain","optional":true},"verify_server_certificate":{"type":"bool","description":"True if the master's common name value is checked during the SSL handshake.","description_kind":"plain","optional":true}},"description":"The configuration for replication.","description_kind":"plain"},"max_items":1},"restore_backup_context":{"nesting_mode":"list","block":{"attributes":{"backup_run_id":{"type":"number","description":"The ID of the backup run to restore from.","description_kind":"plain","required":true},"instance_id":{"type":"string","description":"The ID of the instance that the backup was taken from.","description_kind":"plain","optional":true},"project":{"type":"string","description":"The full project ID of the source instance.","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"settings":{"nesting_mode":"list","block":{"attributes":{"activation_policy":{"type":"string","description":"This specifies when the instance should be active. Can be either ALWAYS, NEVER or ON_DEMAND.","description_kind":"plain","optional":true},"availability_type":{"type":"string","description":"The availability type of the Cloud SQL instance, high availability\n(REGIONAL) or single zone (ZONAL). For MySQL instances, ensure that\nsettings.backup_configuration.enabled and\nsettings.backup_configuration.binary_log_enabled are both set to true.","description_kind":"plain","optional":true},"collation":{"type":"string","description":"The name of server instance collation.","description_kind":"plain","optional":true},"disk_autoresize":{"type":"bool","description":"Configuration to increase storage size automatically. Note that future terraform apply calls will attempt to resize the disk to the value specified in disk_size - if this is set, do not set disk_size.","description_kind":"plain","optional":true},"disk_autoresize_limit":{"type":"number","description":"The maximum size, in GB, to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.","description_kind":"plain","optional":true},"disk_size":{"type":"number","description":"The size of data disk, in GB. Size of a running instance cannot be reduced but can be increased.","description_kind":"plain","optional":true,"computed":true},"disk_type":{"type":"string","description":"The type of data disk: PD_SSD or PD_HDD.","description_kind":"plain","optional":true},"pricing_plan":{"type":"string","description":"Pricing plan for this instance, can only be PER_USE.","description_kind":"plain","optional":true},"tier":{"type":"string","description":"The machine type to use. See tiers for more details and supported versions. Postgres supports only shared-core machine types, and custom machine types such as db-custom-2-13312. See the Custom Machine Type Documentation to learn about specifying custom machine types.","description_kind":"plain","required":true},"user_labels":{"type":["map","string"],"description":"A set of key/value user label pairs to assign to the instance.","description_kind":"plain","optional":true,"computed":true},"version":{"type":"number","description":"Used to make sure changes to the settings block are atomic.","description_kind":"plain","computed":true}},"block_types":{"backup_configuration":{"nesting_mode":"list","block":{"attributes":{"binary_log_enabled":{"type":"bool","description":"True if binary logging is enabled. If settings.backup_configuration.enabled is false, this must be as well. Cannot be used with Postgres.","description_kind":"plain","optional":true},"enabled":{"type":"bool","description":"True if backup configuration is enabled.","description_kind":"plain","optional":true},"location":{"type":"string","description":"Location of the backup configuration.","description_kind":"plain","optional":true},"point_in_time_recovery_enabled":{"type":"bool","description":"True if Point-in-time recovery is enabled.","description_kind":"plain","optional":true},"start_time":{"type":"string","description":"HH:MM format time indicating when backup configuration starts.","description_kind":"plain","optional":true,"computed":true},"transaction_log_retention_days":{"type":"number","description":"The number of days of transaction logs we retain for point in time restore, from 1-7.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"backup_retention_settings":{"nesting_mode":"list","block":{"attributes":{"retained_backups":{"type":"number","description":"Number of backups to retain.","description_kind":"plain","required":true},"retention_unit":{"type":"string","description":"The unit that 'retainedBackups' represents. Defaults to COUNT","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"database_flags":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description":"Name of the flag.","description_kind":"plain","required":true},"value":{"type":"string","description":"Value of the flag.","description_kind":"plain","required":true}},"description_kind":"plain"}},"insights_config":{"nesting_mode":"list","block":{"attributes":{"query_insights_enabled":{"type":"bool","description":"True if Query Insights feature is enabled.","description_kind":"plain","optional":true},"query_string_length":{"type":"number","description":"Maximum query length stored in bytes. Between 256 and 4500. Default to 1024.","description_kind":"plain","optional":true},"record_application_tags":{"type":"bool","description":"True if Query Insights will record application tags from query when enabled.","description_kind":"plain","optional":true},"record_client_address":{"type":"bool","description":"True if Query Insights will record client address when enabled.","description_kind":"plain","optional":true}},"description":"Configuration of Query Insights.","description_kind":"plain"},"max_items":1},"ip_configuration":{"nesting_mode":"list","block":{"attributes":{"allocated_ip_range":{"type":"string","description":"The name of the allocated ip range for the private ip CloudSQL instance. For example: \"google-managed-services-default\". If set, the instance ip will be created in the allocated range. The range name must comply with RFC 1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?.","description_kind":"plain","optional":true},"ipv4_enabled":{"type":"bool","description":"Whether this Cloud SQL instance should be assigned a public IPV4 address. At least ipv4_enabled must be enabled or a private_network must be configured.","description_kind":"plain","optional":true},"private_network":{"type":"string","description":"The VPC network from which the Cloud SQL instance is accessible for private IP. For example, projects/myProject/global/networks/default. Specifying a network enables private IP. At least ipv4_enabled must be enabled or a private_network must be configured. This setting can be updated, but it cannot be removed after it is set.","description_kind":"plain","optional":true},"require_ssl":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"authorized_networks":{"nesting_mode":"set","block":{"attributes":{"expiration_time":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"location_preference":{"nesting_mode":"list","block":{"attributes":{"follow_gae_application":{"type":"string","description":"A Google App Engine application whose zone to remain in. Must be in the same region as this instance.","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The preferred compute engine zone.","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"maintenance_window":{"nesting_mode":"list","block":{"attributes":{"day":{"type":"number","description":"Day of week (1-7), starting on Monday","description_kind":"plain","optional":true},"hour":{"type":"number","description":"Hour of day (0-23), ignored if day not set","description_kind":"plain","optional":true},"update_track":{"type":"string","description":"Receive updates earlier (canary) or later (stable)","description_kind":"plain","optional":true}},"description":"Declares a one-hour maintenance window when an Instance can automatically restart to apply updates. The maintenance window is specified in UTC time.","description_kind":"plain"},"max_items":1}},"description":"The settings to use for the database. The configuration is detailed below.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_sql_source_representation_instance":{"version":0,"block":{"attributes":{"database_version":{"type":"string","description":"The MySQL version running on your source database server. Possible values: [\"MYSQL_5_5\", \"MYSQL_5_6\", \"MYSQL_5_7\", \"MYSQL_8_0\"]","description_kind":"plain","required":true},"host":{"type":"string","description":"The externally accessible IPv4 address for the source database server.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the source representation instance. Use any valid Cloud SQL instance name.","description_kind":"plain","required":true},"port":{"type":"number","description":"The externally accessible port for the source database server.\nDefaults to 3306.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The Region in which the created instance should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_sql_ssl_cert":{"version":1,"block":{"attributes":{"cert":{"type":"string","description":"The actual certificate data for this client certificate.","description_kind":"plain","computed":true},"cert_serial_number":{"type":"string","description":"The serial number extracted from the certificate data.","description_kind":"plain","computed":true},"common_name":{"type":"string","description":"The common name to be used in the certificate to identify the client. Constrained to [a-zA-Z.-_ ]+. Changing this forces a new resource to be created.","description_kind":"plain","required":true},"create_time":{"type":"string","description":"The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.","description_kind":"plain","computed":true},"expiration_time":{"type":"string","description":"The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description":"The name of the Cloud SQL instance. Changing this forces a new resource to be created.","description_kind":"plain","required":true},"private_key":{"type":"string","description":"The private key associated with the client certificate.","description_kind":"plain","computed":true,"sensitive":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"server_ca_cert":{"type":"string","description":"The CA cert of the server this client cert was generated from.","description_kind":"plain","computed":true},"sha1_fingerprint":{"type":"string","description":"The SHA1 Fingerprint of the certificate.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_sql_user":{"version":1,"block":{"attributes":{"deletion_policy":{"type":"string","description":"The deletion policy for the user. Setting ABANDON allows the resource\n\t\t\t\tto be abandoned rather than deleted. This is useful for Postgres, where users cannot be deleted from the API if they\n\t\t\t\thave been granted SQL roles. Possible values are: \"ABANDON\".","description_kind":"plain","optional":true},"host":{"type":"string","description":"The host the user can connect from. This is only supported for MySQL instances. Don't set this field for PostgreSQL instances. Can be an IP address. Changing this forces a new resource to be created.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description":"The name of the Cloud SQL instance. Changing this forces a new resource to be created.","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the user. Changing this forces a new resource to be created.","description_kind":"plain","required":true},"password":{"type":"string","description":"The password for the user. Can be updated. For Postgres instances this is a Required field, unless type is set to\n either CLOUD_IAM_USER or CLOUD_IAM_SERVICE_ACCOUNT.","description_kind":"plain","optional":true,"sensitive":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"The user type. It determines the method to authenticate the user during login.\n The default is the database's built-in user type. Flags include \"BUILT_IN\", \"CLOUD_IAM_USER\", or \"CLOUD_IAM_SERVICE_ACCOUNT\".","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_storage_bucket":{"version":0,"block":{"attributes":{"default_event_based_hold":{"type":"bool","description":"Whether or not to automatically apply an eventBasedHold to new objects added to the bucket.","description_kind":"plain","optional":true},"force_destroy":{"type":"bool","description":"When deleting a bucket, this boolean option will delete all contained objects. If you try to delete a bucket that contains objects, Terraform will fail that run.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to the bucket.","description_kind":"plain","optional":true},"location":{"type":"string","description":"The Google Cloud Storage location","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the bucket.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"requester_pays":{"type":"bool","description":"Enables Requester Pays on a storage bucket.","description_kind":"plain","optional":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"storage_class":{"type":"string","description":"The Storage Class of the new bucket. Supported values include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE.","description_kind":"plain","optional":true},"uniform_bucket_level_access":{"type":"bool","description":"Enables uniform bucket-level access on a bucket.","description_kind":"plain","optional":true,"computed":true},"url":{"type":"string","description":"The base URL of the bucket, in the format gs://\u003cbucket-name\u003e.","description_kind":"plain","computed":true}},"block_types":{"cors":{"nesting_mode":"list","block":{"attributes":{"max_age_seconds":{"type":"number","description":"The value, in seconds, to return in the Access-Control-Max-Age header used in preflight responses.","description_kind":"plain","optional":true},"method":{"type":["list","string"],"description":"The list of HTTP methods on which to include CORS response headers, (GET, OPTIONS, POST, etc) Note: \"*\" is permitted in the list of methods, and means \"any method\".","description_kind":"plain","optional":true},"origin":{"type":["list","string"],"description":"The list of Origins eligible to receive CORS response headers. Note: \"*\" is permitted in the list of origins, and means \"any Origin\".","description_kind":"plain","optional":true},"response_header":{"type":["list","string"],"description":"The list of HTTP headers other than the simple response headers to give permission for the user-agent to share across domains.","description_kind":"plain","optional":true}},"description":"The bucket's Cross-Origin Resource Sharing (CORS) configuration.","description_kind":"plain"}},"encryption":{"nesting_mode":"list","block":{"attributes":{"default_kms_key_name":{"type":"string","description":"A Cloud KMS key that will be used to encrypt objects inserted into this bucket, if no encryption method is specified. You must pay attention to whether the crypto key is available in the location that this bucket is created in. See the docs for more details.","description_kind":"plain","required":true}},"description":"The bucket's encryption configuration.","description_kind":"plain"},"max_items":1},"lifecycle_rule":{"nesting_mode":"list","block":{"block_types":{"action":{"nesting_mode":"set","block":{"attributes":{"storage_class":{"type":"string","description":"The target Storage Class of objects affected by this Lifecycle Rule. Supported values include: MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE.","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of the action of this Lifecycle Rule. Supported values include: Delete and SetStorageClass.","description_kind":"plain","required":true}},"description":"The Lifecycle Rule's action configuration. A single block of this type is supported.","description_kind":"plain"},"min_items":1,"max_items":1},"condition":{"nesting_mode":"set","block":{"attributes":{"age":{"type":"number","description":"Minimum age of an object in days to satisfy this condition.","description_kind":"plain","optional":true},"created_before":{"type":"string","description":"Creation date of an object in RFC 3339 (e.g. 2017-06-13) to satisfy this condition.","description_kind":"plain","optional":true},"custom_time_before":{"type":"string","description":"Creation date of an object in RFC 3339 (e.g. 2017-06-13) to satisfy this condition.","description_kind":"plain","optional":true},"days_since_custom_time":{"type":"number","description":"Number of days elapsed since the user-specified timestamp set on an object.","description_kind":"plain","optional":true},"days_since_noncurrent_time":{"type":"number","description":"Number of days elapsed since the noncurrent timestamp of an object. This\n\t\t\t\t\t\t\t\t\t\tcondition is relevant only for versioned objects.","description_kind":"plain","optional":true},"matches_storage_class":{"type":["list","string"],"description":"Storage Class of objects to satisfy this condition. Supported values include: MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE, STANDARD, DURABLE_REDUCED_AVAILABILITY.","description_kind":"plain","optional":true},"noncurrent_time_before":{"type":"string","description":"Creation date of an object in RFC 3339 (e.g. 2017-06-13) to satisfy this condition.","description_kind":"plain","optional":true},"num_newer_versions":{"type":"number","description":"Relevant only for versioned objects. The number of newer versions of an object to satisfy this condition.","description_kind":"plain","optional":true},"with_state":{"type":"string","description":"Match to live and/or archived objects. Unversioned buckets have only live objects. Supported values include: \"LIVE\", \"ARCHIVED\", \"ANY\".","description_kind":"plain","optional":true,"computed":true}},"description":"The Lifecycle Rule's condition configuration.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"The bucket's Lifecycle Rules configuration.","description_kind":"plain"},"max_items":100},"logging":{"nesting_mode":"list","block":{"attributes":{"log_bucket":{"type":"string","description":"The bucket that will receive log objects.","description_kind":"plain","required":true},"log_object_prefix":{"type":"string","description":"The object prefix for log objects. If it's not provided, by default Google Cloud Storage sets this to this bucket's name.","description_kind":"plain","optional":true,"computed":true}},"description":"The bucket's Access \u0026 Storage Logs configuration.","description_kind":"plain"},"max_items":1},"retention_policy":{"nesting_mode":"list","block":{"attributes":{"is_locked":{"type":"bool","description":"If set to true, the bucket will be locked and permanently restrict edits to the bucket's retention policy. Caution: Locking a bucket is an irreversible action.","description_kind":"plain","optional":true},"retention_period":{"type":"number","description":"The period of time, in seconds, that objects in the bucket must be retained and cannot be deleted, overwritten, or archived. The value must be less than 3,155,760,000 seconds.","description_kind":"plain","required":true}},"description":"Configuration of the bucket's data retention policy for how long objects in the bucket should be retained.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"versioning":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"While set to true, versioning is fully enabled for this bucket.","description_kind":"plain","required":true}},"description":"The bucket's Versioning configuration.","description_kind":"plain"},"max_items":1},"website":{"nesting_mode":"list","block":{"attributes":{"main_page_suffix":{"type":"string","description":"Behaves as the bucket's directory index where missing objects are treated as potential directories.","description_kind":"plain","optional":true},"not_found_page":{"type":"string","description":"The custom object to return when a requested resource is not found.","description_kind":"plain","optional":true}},"description":"Configuration if the bucket acts as a website.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_storage_bucket_access_control":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The name of the bucket.","description_kind":"plain","required":true},"domain":{"type":"string","description":"The domain associated with the entity.","description_kind":"plain","computed":true},"email":{"type":"string","description":"The email address associated with the entity.","description_kind":"plain","computed":true},"entity":{"type":"string","description":"The entity holding the permission, in one of the following forms:\n user-userId\n user-email\n group-groupId\n group-email\n domain-domain\n project-team-projectId\n allUsers\n allAuthenticatedUsers\nExamples:\n The user liz@example.com would be user-liz@example.com.\n The group example@googlegroups.com would be\n group-example@googlegroups.com.\n To refer to all members of the Google Apps for Business domain\n example.com, the entity would be domain-example.com.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description":"The access permission for the entity. Possible values: [\"OWNER\", \"READER\", \"WRITER\"]","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_storage_bucket_acl":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The name of the bucket it applies to.","description_kind":"plain","required":true},"default_acl":{"type":"string","description":"Configure this ACL to be the default ACL.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"predefined_acl":{"type":"string","description":"The canned GCS ACL to apply. Must be set if role_entity is not.","description_kind":"plain","optional":true},"role_entity":{"type":["list","string"],"description":"List of role/entity pairs in the form ROLE:entity. See GCS Bucket ACL documentation for more details. Must be set if predefined_acl is not.","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_storage_bucket_iam_binding":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_storage_bucket_iam_member":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_storage_bucket_iam_policy":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_storage_bucket_object":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The name of the containing bucket.","description_kind":"plain","required":true},"cache_control":{"type":"string","description":"Cache-Control directive to specify caching behavior of object data. If omitted and object is accessible to all anonymous users, the default will be public, max-age=3600","description_kind":"plain","optional":true},"content":{"type":"string","description":"Data as string to be uploaded. Must be defined if source is not. Note: The content field is marked as sensitive. To view the raw contents of the object, please define an output.","description_kind":"plain","optional":true,"sensitive":true},"content_disposition":{"type":"string","description":"Content-Disposition of the object data.","description_kind":"plain","optional":true},"content_encoding":{"type":"string","description":"Content-Encoding of the object data.","description_kind":"plain","optional":true},"content_language":{"type":"string","description":"Content-Language of the object data.","description_kind":"plain","optional":true},"content_type":{"type":"string","description":"Content-Type of the object data. Defaults to \"application/octet-stream\" or \"text/plain; charset=utf-8\".","description_kind":"plain","optional":true,"computed":true},"crc32c":{"type":"string","description":"Base 64 CRC32 hash of the uploaded data.","description_kind":"plain","computed":true},"detect_md5hash":{"type":"string","description_kind":"plain","optional":true},"event_based_hold":{"type":"bool","description":"Whether an object is under event-based hold. Event-based hold is a way to retain objects until an event occurs, which is signified by the hold's release (i.e. this value is set to false). After being released (set to false), such objects will be subject to bucket-level retention (if any).","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kms_key_name":{"type":"string","description":"Resource name of the Cloud KMS key that will be used to encrypt the object. Overrides the object metadata's kmsKeyName value, if any.","description_kind":"plain","optional":true,"computed":true},"md5hash":{"type":"string","description":"Base 64 MD5 hash of the uploaded data.","description_kind":"plain","computed":true},"media_link":{"type":"string","description":"A url reference to download this object.","description_kind":"plain","computed":true},"metadata":{"type":["map","string"],"description":"User-provided metadata, in key/value pairs.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the object. If you're interpolating the name of this object, see output_name instead.","description_kind":"plain","required":true},"output_name":{"type":"string","description":"The name of the object. Use this field in interpolations with google_storage_object_acl to recreate google_storage_object_acl resources when your google_storage_bucket_object is recreated.","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"A url reference to this object.","description_kind":"plain","computed":true},"source":{"type":"string","description":"A path to the data you want to upload. Must be defined if content is not.","description_kind":"plain","optional":true},"storage_class":{"type":"string","description":"The StorageClass of the new bucket object. Supported values include: MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE. If not provided, this defaults to the bucket's default storage class or to a standard class.","description_kind":"plain","optional":true,"computed":true},"temporary_hold":{"type":"bool","description":"Whether an object is under temporary hold. While this flag is set to true, the object is protected against deletion and overwrites.","description_kind":"plain","optional":true}},"block_types":{"customer_encryption":{"nesting_mode":"list","block":{"attributes":{"encryption_algorithm":{"type":"string","description":"The encryption algorithm. Default: AES256","description_kind":"plain","optional":true},"encryption_key":{"type":"string","description":"Base64 encoded customer supplied encryption key.","description_kind":"plain","required":true,"sensitive":true}},"description":"Encryption key; encoded using base64.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_storage_default_object_access_control":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The name of the bucket.","description_kind":"plain","required":true},"domain":{"type":"string","description":"The domain associated with the entity.","description_kind":"plain","computed":true},"email":{"type":"string","description":"The email address associated with the entity.","description_kind":"plain","computed":true},"entity":{"type":"string","description":"The entity holding the permission, in one of the following forms:\n * user-{{userId}}\n * user-{{email}} (such as \"user-liz@example.com\")\n * group-{{groupId}}\n * group-{{email}} (such as \"group-example@googlegroups.com\")\n * domain-{{domain}} (such as \"domain-example.com\")\n * project-team-{{projectId}}\n * allUsers\n * allAuthenticatedUsers","description_kind":"plain","required":true},"entity_id":{"type":"string","description":"The ID for the entity","description_kind":"plain","computed":true},"generation":{"type":"number","description":"The content generation of the object, if applied to an object.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"object":{"type":"string","description":"The name of the object, if applied to an object.","description_kind":"plain","optional":true},"project_team":{"type":["list",["object",{"project_number":"string","team":"string"}]],"description":"The project team associated with the entity","description_kind":"plain","computed":true},"role":{"type":"string","description":"The access permission for the entity. Possible values: [\"OWNER\", \"READER\"]","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_storage_default_object_acl":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role_entity":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_storage_hmac_key":{"version":0,"block":{"attributes":{"access_id":{"type":"string","description":"The access ID of the HMAC Key.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secret":{"type":"string","description":"HMAC secret key material.","description_kind":"plain","computed":true,"sensitive":true},"service_account_email":{"type":"string","description":"The email address of the key's associated service account.","description_kind":"plain","required":true},"state":{"type":"string","description":"The state of the key. Can be set to one of ACTIVE, INACTIVE. Default value: \"ACTIVE\" Possible values: [\"ACTIVE\", \"INACTIVE\"]","description_kind":"plain","optional":true},"time_created":{"type":"string","description":"'The creation time of the HMAC key in RFC 3339 format. '","description_kind":"plain","computed":true},"updated":{"type":"string","description":"'The last modification time of the HMAC key metadata in RFC 3339 format.'","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_storage_notification":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The name of the bucket.","description_kind":"plain","required":true},"custom_attributes":{"type":["map","string"],"description":" A set of key/value attribute pairs to attach to each Cloud Pub/Sub message published for this notification subscription","description_kind":"plain","optional":true},"event_types":{"type":["set","string"],"description":"List of event type filters for this notification config. If not specified, Cloud Storage will send notifications for all event types. The valid types are: \"OBJECT_FINALIZE\", \"OBJECT_METADATA_UPDATE\", \"OBJECT_DELETE\", \"OBJECT_ARCHIVE\"","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"notification_id":{"type":"string","description":"The ID of the created notification.","description_kind":"plain","computed":true},"object_name_prefix":{"type":"string","description":"Specifies a prefix path filter for this notification config. Cloud Storage will only send notifications for objects in this bucket whose names begin with the specified prefix.","description_kind":"plain","optional":true},"payload_format":{"type":"string","description":"The desired content of the Payload. One of \"JSON_API_V1\" or \"NONE\".","description_kind":"plain","required":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"topic":{"type":"string","description":"The Cloud Pub/Sub topic to which this subscription publishes. Expects either the topic name, assumed to belong to the default GCP provider project, or the project-level name, i.e. projects/my-gcp-project/topics/my-topic or my-topic. If the project is not set in the provider, you will need to use the project-level name.","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_storage_object_access_control":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The name of the bucket.","description_kind":"plain","required":true},"domain":{"type":"string","description":"The domain associated with the entity.","description_kind":"plain","computed":true},"email":{"type":"string","description":"The email address associated with the entity.","description_kind":"plain","computed":true},"entity":{"type":"string","description":"The entity holding the permission, in one of the following forms:\n * user-{{userId}}\n * user-{{email}} (such as \"user-liz@example.com\")\n * group-{{groupId}}\n * group-{{email}} (such as \"group-example@googlegroups.com\")\n * domain-{{domain}} (such as \"domain-example.com\")\n * project-team-{{projectId}}\n * allUsers\n * allAuthenticatedUsers","description_kind":"plain","required":true},"entity_id":{"type":"string","description":"The ID for the entity","description_kind":"plain","computed":true},"generation":{"type":"number","description":"The content generation of the object, if applied to an object.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"object":{"type":"string","description":"The name of the object to apply the access control to.","description_kind":"plain","required":true},"project_team":{"type":["list",["object",{"project_number":"string","team":"string"}]],"description":"The project team associated with the entity","description_kind":"plain","computed":true},"role":{"type":"string","description":"The access permission for the entity. Possible values: [\"OWNER\", \"READER\"]","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_storage_object_acl":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"object":{"type":"string","description_kind":"plain","required":true},"predefined_acl":{"type":"string","description_kind":"plain","optional":true},"role_entity":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_storage_transfer_job":{"version":0,"block":{"attributes":{"creation_time":{"type":"string","description":"When the Transfer Job was created.","description_kind":"plain","computed":true},"deletion_time":{"type":"string","description":"When the Transfer Job was deleted.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Unique description to identify the Transfer Job.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_modification_time":{"type":"string","description":"When the Transfer Job was last modified.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the Transfer Job.","description_kind":"plain","computed":true},"project":{"type":"string","description":"The project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"Status of the job. Default: ENABLED. NOTE: The effect of the new job status takes place during a subsequent job run. For example, if you change the job status from ENABLED to DISABLED, and an operation spawned by the transfer is running, the status change would not affect the current operation.","description_kind":"plain","optional":true}},"block_types":{"schedule":{"nesting_mode":"list","block":{"attributes":{"repeat_interval":{"type":"string","description":"Interval between the start of each scheduled transfer. If unspecified, the default value is 24 hours. This value may not be less than 1 hour. A duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true}},"block_types":{"schedule_end_date":{"nesting_mode":"list","block":{"attributes":{"day":{"type":"number","description":"Day of month. Must be from 1 to 31 and valid for the year and month.","description_kind":"plain","required":true},"month":{"type":"number","description":"Month of year. Must be from 1 to 12.","description_kind":"plain","required":true},"year":{"type":"number","description":"Year of date. Must be from 1 to 9999.","description_kind":"plain","required":true}},"description":"The last day the recurring transfer will be run. If schedule_end_date is the same as schedule_start_date, the transfer will be executed only once.","description_kind":"plain"},"max_items":1},"schedule_start_date":{"nesting_mode":"list","block":{"attributes":{"day":{"type":"number","description":"Day of month. Must be from 1 to 31 and valid for the year and month.","description_kind":"plain","required":true},"month":{"type":"number","description":"Month of year. Must be from 1 to 12.","description_kind":"plain","required":true},"year":{"type":"number","description":"Year of date. Must be from 1 to 9999.","description_kind":"plain","required":true}},"description":"The first day the recurring transfer is scheduled to run. If schedule_start_date is in the past, the transfer will run for the first time on the following day.","description_kind":"plain"},"min_items":1,"max_items":1},"start_time_of_day":{"nesting_mode":"list","block":{"attributes":{"hours":{"type":"number","description":"Hours of day in 24 hour format. Should be from 0 to 23.","description_kind":"plain","required":true},"minutes":{"type":"number","description":"Minutes of hour of day. Must be from 0 to 59.","description_kind":"plain","required":true},"nanos":{"type":"number","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.","description_kind":"plain","required":true},"seconds":{"type":"number","description":"Seconds of minutes of the time. Must normally be from 0 to 59.","description_kind":"plain","required":true}},"description":"The time in UTC at which the transfer will be scheduled to start in a day. Transfers may start later than this time. If not specified, recurring and one-time transfers that are scheduled to run today will run immediately; recurring transfers that are scheduled to run on a future date will start at approximately midnight UTC on that date. Note that when configuring a transfer with the Cloud Platform Console, the transfer's start time in a day is specified in your local timezone.","description_kind":"plain"},"max_items":1}},"description":"Schedule specification defining when the Transfer Job should be scheduled to start, end and what time to run.","description_kind":"plain"},"max_items":1},"transfer_spec":{"nesting_mode":"list","block":{"block_types":{"aws_s3_data_source":{"nesting_mode":"list","block":{"attributes":{"bucket_name":{"type":"string","description":"S3 Bucket name.","description_kind":"plain","required":true},"role_arn":{"type":"string","description":"The Amazon Resource Name (ARN) of the role to support temporary credentials via 'AssumeRoleWithWebIdentity'. For more information about ARNs, see [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns). When a role ARN is provided, Transfer Service fetches temporary credentials for the session using a 'AssumeRoleWithWebIdentity' call for the provided role using the [GoogleServiceAccount][] for this project.","description_kind":"plain","optional":true}},"block_types":{"aws_access_key":{"nesting_mode":"list","block":{"attributes":{"access_key_id":{"type":"string","description":"AWS Key ID.","description_kind":"plain","required":true,"sensitive":true},"secret_access_key":{"type":"string","description":"AWS Secret Access Key.","description_kind":"plain","required":true,"sensitive":true}},"description":"AWS credentials block.","description_kind":"plain"},"max_items":1}},"description":"An AWS S3 data source.","description_kind":"plain"},"max_items":1},"azure_blob_storage_data_source":{"nesting_mode":"list","block":{"attributes":{"container":{"type":"string","description":"The container to transfer from the Azure Storage account.","description_kind":"plain","required":true},"path":{"type":"string","description":"Root path to transfer objects. Must be an empty string or full path name that ends with a '/'. This field is treated as an object prefix. As such, it should generally not begin with a '/'.","description_kind":"plain","optional":true,"computed":true},"storage_account":{"type":"string","description":"The name of the Azure Storage account.","description_kind":"plain","required":true}},"block_types":{"azure_credentials":{"nesting_mode":"list","block":{"attributes":{"sas_token":{"type":"string","description":"Azure shared access signature.","description_kind":"plain","required":true,"sensitive":true}},"description":" Credentials used to authenticate API requests to Azure.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"An Azure Blob Storage data source.","description_kind":"plain"},"max_items":1},"gcs_data_sink":{"nesting_mode":"list","block":{"attributes":{"bucket_name":{"type":"string","description":"Google Cloud Storage bucket name.","description_kind":"plain","required":true},"path":{"type":"string","description":"Google Cloud Storage path in bucket to transfer","description_kind":"plain","optional":true,"computed":true}},"description":"A Google Cloud Storage data sink.","description_kind":"plain"},"max_items":1},"gcs_data_source":{"nesting_mode":"list","block":{"attributes":{"bucket_name":{"type":"string","description":"Google Cloud Storage bucket name.","description_kind":"plain","required":true},"path":{"type":"string","description":"Google Cloud Storage path in bucket to transfer","description_kind":"plain","optional":true,"computed":true}},"description":"A Google Cloud Storage data source.","description_kind":"plain"},"max_items":1},"http_data_source":{"nesting_mode":"list","block":{"attributes":{"list_url":{"type":"string","description":"The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported.","description_kind":"plain","required":true}},"description":"A HTTP URL data source.","description_kind":"plain"},"max_items":1},"object_conditions":{"nesting_mode":"list","block":{"attributes":{"exclude_prefixes":{"type":["list","string"],"description":"exclude_prefixes must follow the requirements described for include_prefixes.","description_kind":"plain","optional":true},"include_prefixes":{"type":["list","string"],"description":"If include_refixes is specified, objects that satisfy the object conditions must have names that start with one of the include_prefixes and that do not start with any of the exclude_prefixes. If include_prefixes is not specified, all objects except those that have names starting with one of the exclude_prefixes must satisfy the object conditions.","description_kind":"plain","optional":true},"max_time_elapsed_since_last_modification":{"type":"string","description":"A duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true},"min_time_elapsed_since_last_modification":{"type":"string","description":"A duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","optional":true}},"description":"Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects' last_modification_time do not exclude objects in a data sink.","description_kind":"plain"},"max_items":1},"posix_data_sink":{"nesting_mode":"list","block":{"attributes":{"root_directory":{"type":"string","description":"Root directory path to the filesystem.","description_kind":"plain","required":true}},"description":"A POSIX filesystem data sink.","description_kind":"plain"},"max_items":1},"posix_data_source":{"nesting_mode":"list","block":{"attributes":{"root_directory":{"type":"string","description":"Root directory path to the filesystem.","description_kind":"plain","required":true}},"description":"A POSIX filesystem data source.","description_kind":"plain"},"max_items":1},"transfer_options":{"nesting_mode":"list","block":{"attributes":{"delete_objects_from_source_after_transfer":{"type":"bool","description":"Whether objects should be deleted from the source after they are transferred to the sink. Note that this option and delete_objects_unique_in_sink are mutually exclusive.","description_kind":"plain","optional":true},"delete_objects_unique_in_sink":{"type":"bool","description":"Whether objects that exist only in the sink should be deleted. Note that this option and delete_objects_from_source_after_transfer are mutually exclusive.","description_kind":"plain","optional":true},"overwrite_objects_already_existing_in_sink":{"type":"bool","description":"Whether overwriting objects that already exist in the sink is allowed.","description_kind":"plain","optional":true}},"description":"Characteristics of how to treat files from datasource and sink during job. If the option delete_objects_unique_in_sink is true, object conditions based on objects' last_modification_time are ignored and do not exclude objects in a data source or a data sink.","description_kind":"plain"},"max_items":1}},"description":"Transfer specification.","description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"google_tags_tag_binding":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The generated id for the TagBinding. This is a string of the form: 'tagBindings/{full-resource-name}/{tag-value-name}'","description_kind":"plain","computed":true},"parent":{"type":"string","description":"The full resource name of the resource the TagValue is bound to. E.g. //cloudresourcemanager.googleapis.com/projects/123","description_kind":"plain","required":true},"tag_value":{"type":"string","description":"The TagValue of the TagBinding. Must be of the form tagValues/456.","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_tags_tag_key":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Output only. Creation time.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"description":{"type":"string","description":"User-assigned description of the TagKey. Must not exceed 256 characters.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The generated numeric id for the TagKey.","description_kind":"plain","computed":true},"namespaced_name":{"type":"string","description":"Output only. Namespaced name of the TagKey.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"Input only. The resource name of the new TagKey's parent. Must be of the form organizations/{org_id}.","description_kind":"plain","required":true},"short_name":{"type":"string","description":"Input only. The user friendly name for a TagKey. The short name should be unique for TagKeys within the same tag namespace.\n\nThe short name must be 1-63 characters, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between.","description_kind":"plain","required":true},"update_time":{"type":"string","description":"Output only. Update time.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_tags_tag_key_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true},"tag_key":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_tags_tag_key_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true},"tag_key":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_tags_tag_key_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"tag_key":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_tags_tag_value":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"Output only. Creation time.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"description":{"type":"string","description":"User-assigned description of the TagValue. Must not exceed 256 characters.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The generated numeric id for the TagValue.","description_kind":"plain","computed":true},"namespaced_name":{"type":"string","description":"Output only. Namespaced name of the TagValue. Will be in the format {organizationId}/{tag_key_short_name}/{shortName}.","description_kind":"plain","computed":true},"parent":{"type":"string","description":"Input only. The resource name of the new TagValue's parent. Must be of the form tagKeys/{tag_key_id}.","description_kind":"plain","required":true},"short_name":{"type":"string","description":"Input only. User-assigned short name for TagValue. The short name should be unique for TagValues within the same parent TagKey.\n\nThe short name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between.","description_kind":"plain","required":true},"update_time":{"type":"string","description":"Output only. Update time.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_tags_tag_value_iam_binding":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true},"tag_value":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_tags_tag_value_iam_member":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true},"tag_value":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"google_tags_tag_value_iam_policy":{"version":0,"block":{"attributes":{"etag":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","required":true},"tag_value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_tpu_node":{"version":0,"block":{"attributes":{"accelerator_type":{"type":"string","description":"The type of hardware accelerators associated with this node.","description_kind":"plain","required":true},"cidr_block":{"type":"string","description":"The CIDR block that the TPU node will use when selecting an IP\naddress. This CIDR block must be a /29 block; the Compute Engine\nnetworks API forbids a smaller block, and using a larger block would\nbe wasteful (a node can only consume one IP address).\n\nErrors will occur if the CIDR block has already been used for a\ncurrently existing TPU node, the CIDR block conflicts with any\nsubnetworks in the user's provided network, or the provided network\nis peered with another network that is using that CIDR block.","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description":"The user-supplied description of the TPU. Maximum of 512 characters.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Resource labels to represent user provided metadata.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The immutable name of the TPU.","description_kind":"plain","required":true},"network":{"type":"string","description":"The name of a network to peer the TPU node to. It must be a\npreexisting Compute Engine network inside of the project on which\nthis API has been activated. If none is provided, \"default\" will be\nused.","description_kind":"plain","optional":true,"computed":true},"network_endpoints":{"type":["list",["object",{"ip_address":"string","port":"number"}]],"description":"The network endpoints where TPU workers can be accessed and sent work.\nIt is recommended that Tensorflow clients of the node first reach out\nto the first (index 0) entry.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_account":{"type":"string","description":"The service account used to run the tensor flow services within the\nnode. To share resources, including Google Cloud Storage data, with\nthe Tensorflow job running in the Node, this account must have\npermissions to that data.","description_kind":"plain","computed":true},"tensorflow_version":{"type":"string","description":"The version of Tensorflow running in the Node.","description_kind":"plain","required":true},"use_service_networking":{"type":"bool","description":"Whether the VPC peering for the node is set up through Service Networking API.\nThe VPC Peering should be set up before provisioning the node. If this field is set,\ncidr_block field should not be specified. If the network that you want to peer the\nTPU Node to is a Shared VPC network, the node must be created with this this field enabled.","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The GCP location for the TPU. If it is not provided, the provider zone is used.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"scheduling_config":{"nesting_mode":"list","block":{"attributes":{"preemptible":{"type":"bool","description":"Defines whether the TPU instance is preemptible.","description_kind":"plain","required":true}},"description":"Sets the scheduling options for this TPU instance.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_vertex_ai_dataset":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"The timestamp of when the dataset was created in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits.","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"The user-defined name of the Dataset. The name can be up to 128 characters long and can be consist of any UTF-8 characters.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to this Workflow.","description_kind":"plain","optional":true,"computed":true},"metadata_schema_uri":{"type":"string","description":"Points to a YAML file stored on Google Cloud Storage describing additional information about the Dataset. The schema is defined as an OpenAPI 3.0.2 Schema Object. The schema files that can be used here are found in gs://google-cloud-aiplatform/schema/dataset/metadata/.","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name of the Dataset. This value is set by Google.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region of the dataset. eg us-central1","description_kind":"plain","optional":true,"computed":true},"update_time":{"type":"string","description":"The timestamp of when the dataset was last updated in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits.","description_kind":"plain","computed":true}},"block_types":{"encryption_spec":{"nesting_mode":"list","block":{"attributes":{"kms_key_name":{"type":"string","description":"Required. The Cloud KMS resource identifier of the customer managed encryption key used to protect a resource. \nHas the form: projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key. The key needs to be in the same region as where the resource is created.","description_kind":"plain","optional":true}},"description":"Customer-managed encryption key spec for a Dataset. If set, this Dataset and all sub-resources of this Dataset will be secured by this key.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_vpc_access_connector":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_cidr_range":{"type":"string","description":"The range of internal addresses that follows RFC 4632 notation. Example: '10.132.0.0/28'.","description_kind":"plain","optional":true},"max_throughput":{"type":"number","description":"Maximum throughput of the connector in Mbps, must be greater than 'min_throughput'. Default is 300.","description_kind":"plain","optional":true},"min_throughput":{"type":"number","description":"Minimum throughput of the connector in Mbps. Default and min is 200.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the resource (Max 25 characters).","description_kind":"plain","required":true},"network":{"type":"string","description":"Name or self_link of the VPC network. Required if 'ip_cidr_range' is set.","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region where the VPC Access connector resides. If it is not provided, the provider region is used.","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description":"The fully qualified name of this VPC connector","description_kind":"plain","computed":true},"state":{"type":"string","description":"State of the VPC access connector.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_workflows_workflow":{"version":1,"block":{"attributes":{"create_time":{"type":"string","description":"The timestamp of when the workflow was created in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the workflow provided by the user. Must be at most 1000 unicode characters long.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to this Workflow.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the Workflow.","description_kind":"plain","optional":true,"computed":true},"name_prefix":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region of the workflow.","description_kind":"plain","optional":true},"revision_id":{"type":"string","description":"The revision of the workflow. A new one is generated if the service account or source contents is changed.","description_kind":"plain","computed":true},"service_account":{"type":"string","description":"Name of the service account associated with the latest workflow version. This service\naccount represents the identity of the workflow and determines what permissions the workflow has.\n\nFormat: projects/{project}/serviceAccounts/{account}.","description_kind":"plain","optional":true,"computed":true},"source_contents":{"type":"string","description":"Workflow code to be executed. The size limit is 32KB.","description_kind":"plain","optional":true},"state":{"type":"string","description":"State of the workflow deployment.","description_kind":"plain","computed":true},"update_time":{"type":"string","description":"The timestamp of when the workflow was last updated in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"data_source_schemas":{"google_access_approval_folder_service_account":{"version":0,"block":{"attributes":{"account_email":{"type":"string","description_kind":"plain","computed":true},"folder_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_access_approval_organization_service_account":{"version":0,"block":{"attributes":{"account_email":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"organization_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_access_approval_project_service_account":{"version":0,"block":{"attributes":{"account_email":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"project_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_active_folder":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"parent":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_app_engine_default_service_account":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description_kind":"plain","computed":true},"email":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"unique_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_bigquery_default_service_account":{"version":0,"block":{"attributes":{"email":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_billing_account":{"version":0,"block":{"attributes":{"billing_account":{"type":"string","description_kind":"plain","optional":true},"display_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"open":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"project_ids":{"type":["set","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_client_config":{"version":0,"block":{"attributes":{"access_token":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"zone":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_client_openid_userinfo":{"version":0,"block":{"attributes":{"email":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_cloud_identity_group_memberships":{"version":0,"block":{"attributes":{"group":{"type":"string","description":"The name of the Group to get memberships from.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"memberships":{"type":["list",["object",{"create_time":"string","group":"string","name":"string","preferred_member_key":["list",["object",{"id":"string","namespace":"string"}]],"roles":["set",["object",{"name":"string"}]],"type":"string","update_time":"string"}]],"description":"List of Cloud Identity group memberships.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_cloud_identity_groups":{"version":0,"block":{"attributes":{"groups":{"type":["list",["object",{"create_time":"string","description":"string","display_name":"string","group_key":["list",["object",{"id":"string","namespace":"string"}]],"initial_group_config":"string","labels":["map","string"],"name":"string","parent":"string","update_time":"string"}]],"description":"List of Cloud Identity groups.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"parent":{"type":"string","description":"The resource name of the entity under which this Group resides in the\nCloud Identity resource hierarchy.\n\nMust be of the form identitysources/{identity_source_id} for external-identity-mapped\ngroups or customers/{customer_id} for Google Groups.","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_cloud_run_locations":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"locations":{"type":["list","string"],"description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_cloud_run_service":{"version":1,"block":{"attributes":{"autogenerate_revision_name":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location of the cloud run instance. eg us-central1","description_kind":"plain","required":true},"metadata":{"type":["list",["object",{"annotations":["map","string"],"generation":"number","labels":["map","string"],"namespace":"string","resource_version":"string","self_link":"string","uid":"string"}]],"description":"Metadata associated with this Service, including name, namespace, labels,\nand annotations.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name must be unique within a namespace, within a Cloud Run region.\nIs required when creating resources. Name is primarily intended\nfor creation idempotence and configuration definition. Cannot be updated.\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true},"status":{"type":["list",["object",{"conditions":["list",["object",{"message":"string","reason":"string","status":"string","type":"string"}]],"latest_created_revision_name":"string","latest_ready_revision_name":"string","observed_generation":"number","url":"string"}]],"description":"The current status of the Service.","description_kind":"plain","computed":true},"template":{"type":["list",["object",{"metadata":["list",["object",{"annotations":["map","string"],"generation":"number","labels":["map","string"],"name":"string","namespace":"string","resource_version":"string","self_link":"string","uid":"string"}]],"spec":["list",["object",{"container_concurrency":"number","containers":["list",["object",{"args":["list","string"],"command":["list","string"],"env":["set",["object",{"name":"string","value":"string","value_from":["list",["object",{"secret_key_ref":["list",["object",{"key":"string","name":"string"}]]}]]}]],"env_from":["list",["object",{"config_map_ref":["list",["object",{"local_object_reference":["list",["object",{"name":"string"}]],"optional":"bool"}]],"prefix":"string","secret_ref":["list",["object",{"local_object_reference":["list",["object",{"name":"string"}]],"optional":"bool"}]]}]],"image":"string","ports":["list",["object",{"container_port":"number","name":"string","protocol":"string"}]],"resources":["list",["object",{"limits":["map","string"],"requests":["map","string"]}]],"volume_mounts":["list",["object",{"mount_path":"string","name":"string"}]],"working_dir":"string"}]],"service_account_name":"string","serving_state":"string","timeout_seconds":"number","volumes":["list",["object",{"name":"string","secret":["list",["object",{"default_mode":"number","items":["list",["object",{"key":"string","mode":"number","path":"string"}]],"secret_name":"string"}]]}]]}]]}]],"description":"template holds the latest specification for the Revision to\nbe stamped out. The template references the container image, and may also\ninclude labels and annotations that should be attached to the Revision.\nTo correlate a Revision, and/or to force a Revision to be created when the\nspec doesn't otherwise change, a nonce label may be provided in the\ntemplate metadata. For more details, see:\nhttps://github.com/knative/serving/blob/main/docs/client-conventions.md#associate-modifications-with-revisions\n\nCloud Run does not currently support referencing a build that is\nresponsible for materializing the container image from source.","description_kind":"plain","computed":true},"traffic":{"type":["list",["object",{"latest_revision":"bool","percent":"number","revision_name":"string"}]],"description":"Traffic specifies how to distribute traffic over a collection of Knative Revisions\nand Configurations","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_cloudfunctions_function":{"version":0,"block":{"attributes":{"available_memory_mb":{"type":"number","description":"Memory (in MB), available to the function. Default value is 256. Possible values include 128, 256, 512, 1024, etc.","description_kind":"plain","computed":true},"build_environment_variables":{"type":["map","string"],"description":" A set of key/value environment variable pairs available during build time.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the function.","description_kind":"plain","computed":true},"entry_point":{"type":"string","description":"Name of the function that will be executed when the Google Cloud Function is triggered.","description_kind":"plain","computed":true},"environment_variables":{"type":["map","string"],"description":"A set of key/value environment variable pairs to assign to the function.","description_kind":"plain","computed":true},"event_trigger":{"type":["list",["object",{"event_type":"string","failure_policy":["list",["object",{"retry":"bool"}]],"resource":"string"}]],"description":"A source that fires events in response to a condition in another service. Cannot be used with trigger_http.","description_kind":"plain","computed":true},"https_trigger_url":{"type":"string","description":"URL which triggers function execution. Returned only if trigger_http is used.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ingress_settings":{"type":"string","description":"String value that controls what traffic can reach the function. Allowed values are ALLOW_ALL and ALLOW_INTERNAL_ONLY. Changes to this field will recreate the cloud function.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to the function. Label keys must follow the requirements at https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements.","description_kind":"plain","computed":true},"max_instances":{"type":"number","description":"The limit on the maximum number of function instances that may coexist at a given time.","description_kind":"plain","computed":true},"min_instances":{"type":"number","description":"The limit on the minimum number of function instances that may coexist at a given time.","description_kind":"plain","computed":true},"name":{"type":"string","description":"A user-defined name of the function. Function names must be unique globally.","description_kind":"plain","required":true},"project":{"type":"string","description":"Project of the function. If it is not provided, the provider project is used.","description_kind":"plain","optional":true},"region":{"type":"string","description":"Region of function. If it is not provided, the provider region is used.","description_kind":"plain","optional":true},"runtime":{"type":"string","description":"The runtime in which the function is going to run. Eg. \"nodejs8\", \"nodejs10\", \"python37\", \"go111\".","description_kind":"plain","computed":true},"secret_environment_variables":{"type":["list",["object",{"key":"string","project_id":"string","secret":"string","version":"string"}]],"description":"Secret environment variables configuration","description_kind":"plain","computed":true},"secret_volumes":{"type":["list",["object",{"mount_path":"string","project_id":"string","secret":"string","versions":["list",["object",{"path":"string","version":"string"}]]}]],"description":"Secret volumes configuration.","description_kind":"plain","computed":true},"service_account_email":{"type":"string","description":" If provided, the self-provided service account to run the function with.","description_kind":"plain","computed":true},"source_archive_bucket":{"type":"string","description":"The GCS bucket containing the zip archive which contains the function.","description_kind":"plain","computed":true},"source_archive_object":{"type":"string","description":"The source archive object (file) in archive bucket.","description_kind":"plain","computed":true},"source_repository":{"type":["list",["object",{"deployed_url":"string","url":"string"}]],"description":"Represents parameters related to source repository where a function is hosted. Cannot be set alongside source_archive_bucket or source_archive_object.","description_kind":"plain","computed":true},"timeout":{"type":"number","description":"Timeout (in seconds) for the function. Default value is 60 seconds. Cannot be more than 540 seconds.","description_kind":"plain","computed":true},"trigger_http":{"type":"bool","description":"Boolean variable. Any HTTP request (of a supported type) to the endpoint will trigger function execution. Supported HTTP request types are: POST, PUT, GET, DELETE, and OPTIONS. Endpoint is returned as https_trigger_url. Cannot be used with trigger_bucket and trigger_topic.","description_kind":"plain","computed":true},"vpc_connector":{"type":"string","description":"The VPC Network Connector that this cloud function can connect to. It can be either the fully-qualified URI, or the short name of the network connector resource. The format of this field is projects/*/locations/*/connectors/*.","description_kind":"plain","computed":true},"vpc_connector_egress_settings":{"type":"string","description":"The egress settings for the connector, controlling what traffic is diverted through it. Allowed values are ALL_TRAFFIC and PRIVATE_RANGES_ONLY. Defaults to PRIVATE_RANGES_ONLY. If unset, this field preserves the previously set value.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_composer_environment":{"version":0,"block":{"attributes":{"config":{"type":["list",["object",{"airflow_uri":"string","dag_gcs_prefix":"string","database_config":["list",["object",{"machine_type":"string"}]],"encryption_config":["list",["object",{"kms_key_name":"string"}]],"environment_size":"string","gke_cluster":"string","maintenance_window":["list",["object",{"end_time":"string","recurrence":"string","start_time":"string"}]],"node_config":["list",["object",{"disk_size_gb":"number","ip_allocation_policy":["list",["object",{"cluster_ipv4_cidr_block":"string","cluster_secondary_range_name":"string","services_ipv4_cidr_block":"string","services_secondary_range_name":"string","use_ip_aliases":"bool"}]],"machine_type":"string","network":"string","oauth_scopes":["set","string"],"service_account":"string","subnetwork":"string","tags":["set","string"],"zone":"string"}]],"node_count":"number","private_environment_config":["list",["object",{"cloud_composer_connection_subnetwork":"string","cloud_composer_network_ipv4_cidr_block":"string","cloud_sql_ipv4_cidr_block":"string","enable_private_endpoint":"bool","master_ipv4_cidr_block":"string","web_server_ipv4_cidr_block":"string"}]],"software_config":["list",["object",{"airflow_config_overrides":["map","string"],"env_variables":["map","string"],"image_version":"string","pypi_packages":["map","string"],"python_version":"string","scheduler_count":"number"}]],"web_server_config":["list",["object",{"machine_type":"string"}]],"web_server_network_access_control":["list",["object",{"allowed_ip_range":["set",["object",{"description":"string","value":"string"}]]}]],"workloads_config":["list",["object",{"scheduler":["list",["object",{"count":"number","cpu":"number","memory_gb":"number","storage_gb":"number"}]],"web_server":["list",["object",{"cpu":"number","memory_gb":"number","storage_gb":"number"}]],"worker":["list",["object",{"cpu":"number","max_count":"number","memory_gb":"number","min_count":"number","storage_gb":"number"}]]}]]}]],"description":"Configuration parameters for this environment.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"User-defined labels for this environment. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])?. Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?. No more than 64 labels can be associated with a given environment. Both keys and values must be \u003c= 128 bytes in size.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the environment.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true},"region":{"type":"string","description":"The location or Compute Engine region for the environment.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_composer_image_versions":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_versions":{"type":["list",["object",{"image_version_id":"string","supported_python_versions":["list","string"]}]],"description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_compute_address":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_backend_bucket":{"version":0,"block":{"attributes":{"bucket_name":{"type":"string","description":"Cloud Storage bucket name.","description_kind":"plain","computed":true},"cdn_policy":{"type":["list",["object",{"cache_mode":"string","client_ttl":"number","default_ttl":"number","max_ttl":"number","negative_caching":"bool","negative_caching_policy":["list",["object",{"code":"number","ttl":"number"}]],"serve_while_stale":"number","signed_url_cache_max_age_sec":"number"}]],"description":"Cloud CDN configuration for this Backend Bucket.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"custom_response_headers":{"type":["list","string"],"description":"Headers that the HTTP/S load balancer should add to proxied responses.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional textual description of the resource; provided by the\nclient when the resource is created.","description_kind":"plain","computed":true},"edge_security_policy":{"type":"string","description":"The security policy associated with this backend bucket.","description_kind":"plain","computed":true},"enable_cdn":{"type":"bool","description":"If true, enable Cloud CDN for this BackendBucket.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the\nlast character, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_backend_service":{"version":1,"block":{"attributes":{"affinity_cookie_ttl_sec":{"type":"number","description":"Lifetime of cookies in seconds if session_affinity is\nGENERATED_COOKIE. If set to 0, the cookie is non-persistent and lasts\nonly until the end of the browser session (or equivalent). The\nmaximum allowed value for TTL is one day.\n\nWhen the load balancing scheme is INTERNAL, this field is not used.","description_kind":"plain","computed":true},"backend":{"type":["set",["object",{"balancing_mode":"string","capacity_scaler":"number","description":"string","group":"string","max_connections":"number","max_connections_per_endpoint":"number","max_connections_per_instance":"number","max_rate":"number","max_rate_per_endpoint":"number","max_rate_per_instance":"number","max_utilization":"number"}]],"description":"The set of backends that serve this BackendService.","description_kind":"plain","computed":true},"cdn_policy":{"type":["list",["object",{"cache_key_policy":["list",["object",{"include_host":"bool","include_protocol":"bool","include_query_string":"bool","query_string_blacklist":["set","string"],"query_string_whitelist":["set","string"]}]],"cache_mode":"string","client_ttl":"number","default_ttl":"number","max_ttl":"number","negative_caching":"bool","negative_caching_policy":["list",["object",{"code":"number","ttl":"number"}]],"serve_while_stale":"number","signed_url_cache_max_age_sec":"number"}]],"description":"Cloud CDN configuration for this BackendService.","description_kind":"plain","computed":true},"circuit_breakers":{"type":["list",["object",{"max_connections":"number","max_pending_requests":"number","max_requests":"number","max_requests_per_connection":"number","max_retries":"number"}]],"description":"Settings controlling the volume of connections to a backend service. This field\nis applicable only when the load_balancing_scheme is set to INTERNAL_SELF_MANAGED.","description_kind":"plain","computed":true},"connection_draining_timeout_sec":{"type":"number","description":"Time for which instance will be drained (not accept new\nconnections, but still work to finish started).","description_kind":"plain","computed":true},"consistent_hash":{"type":["list",["object",{"http_cookie":["list",["object",{"name":"string","path":"string","ttl":["list",["object",{"nanos":"number","seconds":"number"}]]}]],"http_header_name":"string","minimum_ring_size":"number"}]],"description":"Consistent Hash-based load balancing can be used to provide soft session\naffinity based on HTTP headers, cookies or other properties. This load balancing\npolicy is applicable only for HTTP connections. The affinity to a particular\ndestination host will be lost when one or more hosts are added/removed from the\ndestination service. This field specifies parameters that control consistent\nhashing. This field only applies if the load_balancing_scheme is set to\nINTERNAL_SELF_MANAGED. This field is only applicable when locality_lb_policy is\nset to MAGLEV or RING_HASH.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"custom_request_headers":{"type":["set","string"],"description":"Headers that the HTTP/S load balancer should add to proxied\nrequests.","description_kind":"plain","computed":true},"custom_response_headers":{"type":["set","string"],"description":"Headers that the HTTP/S load balancer should add to proxied\nresponses.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","computed":true},"enable_cdn":{"type":"bool","description":"If true, enable Cloud CDN for this BackendService.","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource. A hash of the contents stored in this\nobject. This field is used in optimistic locking.","description_kind":"plain","computed":true},"health_checks":{"type":["set","string"],"description":"The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource\nfor health checking this BackendService. Currently at most one health\ncheck can be specified.\n\nA health check must be specified unless the backend service uses an internet\nor serverless NEG as a backend.\n\nFor internal load balancing, a URL to a HealthCheck resource must be specified instead.","description_kind":"plain","computed":true},"iap":{"type":["list",["object",{"oauth2_client_id":"string","oauth2_client_secret":"string","oauth2_client_secret_sha256":"string"}]],"description":"Settings for enabling Cloud Identity Aware Proxy","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"load_balancing_scheme":{"type":"string","description":"Indicates whether the backend service will be used with internal or\nexternal load balancing. A backend service created for one type of\nload balancing cannot be used with the other. For more information, refer to\n[Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service). Default value: \"EXTERNAL\" Possible values: [\"EXTERNAL\", \"INTERNAL_SELF_MANAGED\", \"EXTERNAL_MANAGED\"]","description_kind":"plain","computed":true},"locality_lb_policy":{"type":"string","description":"The load balancing algorithm used within the scope of the locality.\nThe possible values are:\n\n* 'ROUND_ROBIN': This is a simple policy in which each healthy backend\n is selected in round robin order.\n\n* 'LEAST_REQUEST': An O(1) algorithm which selects two random healthy\n hosts and picks the host which has fewer active requests.\n\n* 'RING_HASH': The ring/modulo hash load balancer implements consistent\n hashing to backends. The algorithm has the property that the\n addition/removal of a host from a set of N hosts only affects\n 1/N of the requests.\n\n* 'RANDOM': The load balancer selects a random healthy host.\n\n* 'ORIGINAL_DESTINATION': Backend host is selected based on the client\n connection metadata, i.e., connections are opened\n to the same address as the destination address of\n the incoming connection before the connection\n was redirected to the load balancer.\n\n* 'MAGLEV': used as a drop in replacement for the ring hash load balancer.\n Maglev is not as stable as ring hash but has faster table lookup\n build times and host selection times. For more information about\n Maglev, refer to https://ai.google/research/pubs/pub44824\n\n\nThis field is applicable to either:\n\n* A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2,\n and loadBalancingScheme set to INTERNAL_MANAGED.\n* A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED.\n\n\nIf session_affinity is not NONE, and this field is not set to MAGLEV or RING_HASH,\nsession affinity settings will not take effect.\n\nOnly ROUND_ROBIN and RING_HASH are supported when the backend service is referenced\nby a URL map that is bound to target gRPC proxy that has validate_for_proxyless\nfield set to true. Possible values: [\"ROUND_ROBIN\", \"LEAST_REQUEST\", \"RING_HASH\", \"RANDOM\", \"ORIGINAL_DESTINATION\", \"MAGLEV\"]","description_kind":"plain","computed":true},"log_config":{"type":["list",["object",{"enable":"bool","sample_rate":"number"}]],"description":"This field denotes the logging options for the load balancer traffic served by this backend service.\nIf logging is enabled, logs will be exported to Stackdriver.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"outlier_detection":{"type":["list",["object",{"base_ejection_time":["list",["object",{"nanos":"number","seconds":"number"}]],"consecutive_errors":"number","consecutive_gateway_failure":"number","enforcing_consecutive_errors":"number","enforcing_consecutive_gateway_failure":"number","enforcing_success_rate":"number","interval":["list",["object",{"nanos":"number","seconds":"number"}]],"max_ejection_percent":"number","success_rate_minimum_hosts":"number","success_rate_request_volume":"number","success_rate_stdev_factor":"number"}]],"description":"Settings controlling eviction of unhealthy hosts from the load balancing pool.\nThis field is applicable only when the load_balancing_scheme is set\nto INTERNAL_SELF_MANAGED.","description_kind":"plain","computed":true},"port_name":{"type":"string","description":"Name of backend port. The same name should appear in the instance\ngroups referenced by this service. Required when the load balancing\nscheme is EXTERNAL.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"The protocol this BackendService uses to communicate with backends.\nThe default is HTTP. **NOTE**: HTTP2 is only valid for beta HTTP/2 load balancer\ntypes and may result in errors if used with the GA API. Possible values: [\"HTTP\", \"HTTPS\", \"HTTP2\", \"TCP\", \"SSL\", \"GRPC\"]","description_kind":"plain","computed":true},"security_policy":{"type":"string","description":"The security policy associated with this backend service.","description_kind":"plain","computed":true},"security_settings":{"type":["list",["object",{"client_tls_policy":"string","subject_alt_names":["list","string"]}]],"description":"The security settings that apply to this backend service. This field is applicable to either\na regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and\nload_balancing_scheme set to INTERNAL_MANAGED; or a global backend service with the\nload_balancing_scheme set to INTERNAL_SELF_MANAGED.","description_kind":"plain","computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"session_affinity":{"type":"string","description":"Type of session affinity to use. The default is NONE. Session affinity is\nnot applicable if the protocol is UDP. Possible values: [\"NONE\", \"CLIENT_IP\", \"CLIENT_IP_PORT_PROTO\", \"CLIENT_IP_PROTO\", \"GENERATED_COOKIE\", \"HEADER_FIELD\", \"HTTP_COOKIE\"]","description_kind":"plain","computed":true},"timeout_sec":{"type":"number","description":"How many seconds to wait for the backend before considering it a\nfailed request. Default is 30 seconds. Valid range is [1, 86400].","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_default_service_account":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description_kind":"plain","computed":true},"email":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"unique_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_forwarding_rule":{"version":0,"block":{"attributes":{"all_ports":{"type":"bool","description":"This field is used along with the `backend_service` field for internal load balancing or with the `target` field for internal TargetInstance. This field cannot be used with `port` or `portRange` fields. When the load balancing scheme is `INTERNAL` and protocol is TCP/UDP, specify this field to allow packets addressed to any ports will be forwarded to the backends configured with this forwarding rule.","description_kind":"plain","computed":true},"allow_global_access":{"type":"bool","description":"This field is used along with the `backend_service` field for internal load balancing or with the `target` field for internal TargetInstance. If the field is set to `TRUE`, clients can access ILB from all regions. Otherwise only allows access from clients in the same region as the internal load balancer.","description_kind":"plain","computed":true},"backend_service":{"type":"string","description":"This field is only used for `INTERNAL` load balancing. For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"[Output Only] Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create the resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"IP address that this forwarding rule serves. When a client sends traffic to this IP address, the forwarding rule directs the traffic to the target that you specify in the forwarding rule. If you don't specify a reserved IP address, an ephemeral IP address is assigned. Methods for specifying an IP address: * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in `https://www.googleapis.com/compute/v1/projects/project_id/regions/region/addresses/address-name` * Partial URL or by name, as in: * `projects/project_id/regions/region/addresses/address-name` * `regions/region/addresses/address-name` * `global/addresses/address-name` * `address-name` The loadBalancingScheme and the forwarding rule's target determine the type of IP address that you can use. For detailed information, refer to [IP address specifications](/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).","description_kind":"plain","computed":true},"ip_protocol":{"type":"string","description":"The IP protocol to which this rule applies. For protocol forwarding, valid options are `TCP`, `UDP`, `ESP`, `AH`, `SCTP` or `ICMP`. For Internal TCP/UDP Load Balancing, the load balancing scheme is `INTERNAL`, and one of `TCP` or `UDP` are valid. For Traffic Director, the load balancing scheme is `INTERNAL_SELF_MANAGED`, and only `TCP`is valid. For Internal HTTP(S) Load Balancing, the load balancing scheme is `INTERNAL_MANAGED`, and only `TCP` is valid. For HTTP(S), SSL Proxy, and TCP Proxy Load Balancing, the load balancing scheme is `EXTERNAL` and only `TCP` is valid. For Network TCP/UDP Load Balancing, the load balancing scheme is `EXTERNAL`, and one of `TCP` or `UDP` is valid.","description_kind":"plain","computed":true},"is_mirroring_collector":{"type":"bool","description":"Indicates whether or not this load balancer can be used as a collector for packet mirroring. To prevent mirroring loops, instances behind this load balancer will not have their traffic mirrored even if a `PacketMirroring` rule applies to them. This can only be set to true for load balancers that have their `loadBalancingScheme` set to `INTERNAL`.","description_kind":"plain","computed":true},"label_fingerprint":{"type":"string","description":"Used internally during label updates.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Labels to apply to this rule.","description_kind":"plain","computed":true},"load_balancing_scheme":{"type":"string","description":"Specifies the forwarding rule type.\n\n* `EXTERNAL` is used for:\n * Classic Cloud VPN gateways\n * Protocol forwarding to VMs from an external IP address\n * The following load balancers: HTTP(S), SSL Proxy, TCP Proxy, and Network TCP/UDP\n* `INTERNAL` is used for:\n * Protocol forwarding to VMs from an internal IP address\n * Internal TCP/UDP load balancers\n* `INTERNAL_MANAGED` is used for:\n * Internal HTTP(S) load balancers\n* `INTERNAL_SELF_MANAGED` is used for:\n * Traffic Director\n* `EXTERNAL_MANAGED` is used for:\n * Global external HTTP(S) load balancers \n\nFor more information about forwarding rules, refer to [Forwarding rule concepts](/load-balancing/docs/forwarding-rule-concepts). Possible values: INVALID, INTERNAL, INTERNAL_MANAGED, INTERNAL_SELF_MANAGED, EXTERNAL, EXTERNAL_MANAGED","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"This field is not used for external load balancing. For `INTERNAL` and `INTERNAL_SELF_MANAGED` load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.","description_kind":"plain","computed":true},"network_tier":{"type":"string","description":"This signifies the networking tier used for configuring this load balancer and can only take the following values: `PREMIUM`, `STANDARD`. For regional ForwardingRule, the valid values are `PREMIUM` and `STANDARD`. For GlobalForwardingRule, the valid value is `PREMIUM`. If this field is not specified, it is assumed to be `PREMIUM`. If `IPAddress` is specified, this value must be equal to the networkTier of the Address.","description_kind":"plain","computed":true},"port_range":{"type":"string","description":"When the load balancing scheme is `EXTERNAL`, `INTERNAL_SELF_MANAGED` and `INTERNAL_MANAGED`, you can specify a `port_range`. Use with a forwarding rule that points to a target proxy or a target pool. Do not use with a forwarding rule that points to a backend service. This field is used along with the `target` field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance. Applicable only when `IPProtocol` is `TCP`, `UDP`, or `SCTP`, only packets addressed to ports in the specified range will be forwarded to `target`. Forwarding rules with the same `[IPAddress, IPProtocol]` pair must have disjoint port ranges. Some types of forwarding target have constraints on the acceptable ports:\n\n* TargetHttpProxy: 80, 8080\n* TargetHttpsProxy: 443\n* TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688, 1883, 5222\n* TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688, 1883, 5222\n* TargetVpnGateway: 500, 4500\n\n@pattern: d+(?:-d+)?","description_kind":"plain","computed":true},"ports":{"type":["set","string"],"description":"This field is used along with the `backend_service` field for internal load balancing. When the load balancing scheme is `INTERNAL`, a list of ports can be configured, for example, ['80'], ['8000','9000']. Only packets addressed to these ports are forwarded to the backends configured with the forwarding rule. If the forwarding rule's loadBalancingScheme is INTERNAL, you can specify ports in one of the following ways: * A list of up to five ports, which can be non-contiguous * Keyword `ALL`, which causes the forwarding rule to forward traffic on any port of the forwarding rule's protocol. @pattern: d+(?:-d+)? For more information, refer to [Port specifications](/load-balancing/docs/forwarding-rule-concepts#port_specifications).","description_kind":"plain","computed":true},"project":{"type":"string","description":"The project this resource belongs in.","description_kind":"plain","optional":true},"region":{"type":"string","description":"The location of this resource.","description_kind":"plain","optional":true},"self_link":{"type":"string","description":"[Output Only] Server-defined URL for the resource.","description_kind":"plain","computed":true},"service_label":{"type":"string","description":"An optional prefix to the service name for this Forwarding Rule. If specified, the prefix is the first label of the fully qualified service name. The label must be 1-63 characters long, and comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Specifically, the label must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. This field is only used for internal load balancing.","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"[Output Only] The internal fully qualified service name for this Forwarding Rule. This field is only used for internal load balancing.","description_kind":"plain","computed":true},"subnetwork":{"type":"string","description":"This field is only used for `INTERNAL` load balancing. For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule. If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.","description_kind":"plain","computed":true},"target":{"type":"string","description":"The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For `INTERNAL_SELF_MANAGED` load balancing, only `targetHttpProxy` is valid, not `targetHttpsProxy`.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_global_address":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_global_forwarding_rule":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create the resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"IP address that this forwarding rule serves. When a client sends traffic to this IP address, the forwarding rule directs the traffic to the target that you specify in the forwarding rule. If you don't specify a reserved IP address, an ephemeral IP address is assigned. Methods for specifying an IP address: * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in `https://www.googleapis.com/compute/v1/projects/project_id/regions/region/addresses/address-name` * Partial URL or by name, as in: * `projects/project_id/regions/region/addresses/address-name` * `regions/region/addresses/address-name` * `global/addresses/address-name` * `address-name` The loadBalancingScheme and the forwarding rule's target determine the type of IP address that you can use. For detailed information, refer to [IP address specifications](/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).","description_kind":"plain","computed":true},"ip_protocol":{"type":"string","description":"The IP protocol to which this rule applies. For protocol forwarding, valid options are `TCP`, `UDP`, `ESP`, `AH`, `SCTP` or `ICMP`. For Internal TCP/UDP Load Balancing, the load balancing scheme is `INTERNAL`, and one of `TCP` or `UDP` are valid. For Traffic Director, the load balancing scheme is `INTERNAL_SELF_MANAGED`, and only `TCP`is valid. For Internal HTTP(S) Load Balancing, the load balancing scheme is `INTERNAL_MANAGED`, and only `TCP` is valid. For HTTP(S), SSL Proxy, and TCP Proxy Load Balancing, the load balancing scheme is `EXTERNAL` and only `TCP` is valid. For Network TCP/UDP Load Balancing, the load balancing scheme is `EXTERNAL`, and one of `TCP` or `UDP` is valid.","description_kind":"plain","computed":true},"ip_version":{"type":"string","description":"The IP Version that will be used by this forwarding rule. Valid options are `IPV4` or `IPV6`. This can only be specified for an external global forwarding rule. Possible values: UNSPECIFIED_VERSION, IPV4, IPV6","description_kind":"plain","computed":true},"label_fingerprint":{"type":"string","description":"Used internally during label updates.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Labels to apply to this rule.","description_kind":"plain","computed":true},"load_balancing_scheme":{"type":"string","description":"Specifies the forwarding rule type.\n\n* `EXTERNAL` is used for:\n * Classic Cloud VPN gateways\n * Protocol forwarding to VMs from an external IP address\n * The following load balancers: HTTP(S), SSL Proxy, TCP Proxy, and Network TCP/UDP\n* `INTERNAL` is used for:\n * Protocol forwarding to VMs from an internal IP address\n * Internal TCP/UDP load balancers\n* `INTERNAL_MANAGED` is used for:\n * Internal HTTP(S) load balancers\n* `INTERNAL_SELF_MANAGED` is used for:\n * Traffic Director\n* `EXTERNAL_MANAGED` is used for:\n * Global external HTTP(S) load balancers \n\nFor more information about forwarding rules, refer to [Forwarding rule concepts](/load-balancing/docs/forwarding-rule-concepts). Possible values: INVALID, INTERNAL, INTERNAL_MANAGED, INTERNAL_SELF_MANAGED, EXTERNAL, EXTERNAL_MANAGED","description_kind":"plain","computed":true},"metadata_filters":{"type":["list",["object",{"filter_labels":["list",["object",{"name":"string","value":"string"}]],"filter_match_criteria":"string"}]],"description":"Opaque filter criteria used by Loadbalancer to restrict routing configuration to a limited set of [xDS](https://github.com/envoyproxy/data-plane-api/blob/master/XDS_PROTOCOL.md) compliant clients. In their xDS requests to Loadbalancer, xDS clients present [node metadata](https://github.com/envoyproxy/data-plane-api/search?q=%22message+Node%22+in%3A%2Fenvoy%2Fapi%2Fv2%2Fcore%2Fbase.proto\u0026). If a match takes place, the relevant configuration is made available to those proxies. Otherwise, all the resources (e.g. `TargetHttpProxy`, `UrlMap`) referenced by the `ForwardingRule` will not be visible to those proxies.\n\nFor each `metadataFilter` in this list, if its `filterMatchCriteria` is set to MATCH_ANY, at least one of the `filterLabel`s must match the corresponding label provided in the metadata. If its `filterMatchCriteria` is set to MATCH_ALL, then all of its `filterLabel`s must match with corresponding labels provided in the metadata.\n\n`metadataFilters` specified here will be applifed before those specified in the `UrlMap` that this `ForwardingRule` references.\n\n`metadataFilters` only applies to Loadbalancers that have their loadBalancingScheme set to `INTERNAL_SELF_MANAGED`.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"This field is not used for external load balancing. For `INTERNAL` and `INTERNAL_SELF_MANAGED` load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.","description_kind":"plain","computed":true},"port_range":{"type":"string","description":"When the load balancing scheme is `EXTERNAL`, `INTERNAL_SELF_MANAGED` and `INTERNAL_MANAGED`, you can specify a `port_range`. Use with a forwarding rule that points to a target proxy or a target pool. Do not use with a forwarding rule that points to a backend service. This field is used along with the `target` field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance. Applicable only when `IPProtocol` is `TCP`, `UDP`, or `SCTP`, only packets addressed to ports in the specified range will be forwarded to `target`. Forwarding rules with the same `[IPAddress, IPProtocol]` pair must have disjoint port ranges. Some types of forwarding target have constraints on the acceptable ports:\n\n* TargetHttpProxy: 80, 8080\n* TargetHttpsProxy: 443\n* TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688, 1883, 5222\n* TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688, 1883, 5222\n* TargetVpnGateway: 500, 4500\n\n@pattern: d+(?:-d+)?","description_kind":"plain","computed":true},"project":{"type":"string","description":"The project this resource belongs in.","description_kind":"plain","optional":true},"self_link":{"type":"string","description":"[Output Only] Server-defined URL for the resource.","description_kind":"plain","computed":true},"target":{"type":"string","description":"The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For `INTERNAL_SELF_MANAGED` load balancing, only `targetHttpProxy` is valid, not `targetHttpsProxy`.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_ha_vpn_gateway":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"The network this VPN gateway is accepting traffic for.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region this gateway should sit in.","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"vpn_interfaces":{"type":["list",["object",{"id":"number","interconnect_attachment":"string","ip_address":"string"}]],"description":"A list of interfaces on this VPN gateway.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_health_check":{"version":0,"block":{"attributes":{"check_interval_sec":{"type":"number","description":"How often (in seconds) to send a health check. The default value is 5\nseconds.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","computed":true},"grpc_health_check":{"type":["list",["object",{"grpc_service_name":"string","port":"number","port_name":"string","port_specification":"string"}]],"description":"A nested object resource","description_kind":"plain","computed":true},"healthy_threshold":{"type":"number","description":"A so-far unhealthy instance will be marked healthy after this many\nconsecutive successes. The default value is 2.","description_kind":"plain","computed":true},"http2_health_check":{"type":["list",["object",{"host":"string","port":"number","port_name":"string","port_specification":"string","proxy_header":"string","request_path":"string","response":"string"}]],"description":"A nested object resource","description_kind":"plain","computed":true},"http_health_check":{"type":["list",["object",{"host":"string","port":"number","port_name":"string","port_specification":"string","proxy_header":"string","request_path":"string","response":"string"}]],"description":"A nested object resource","description_kind":"plain","computed":true},"https_health_check":{"type":["list",["object",{"host":"string","port":"number","port_name":"string","port_specification":"string","proxy_header":"string","request_path":"string","response":"string"}]],"description":"A nested object resource","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"log_config":{"type":["list",["object",{"enable":"bool"}]],"description":"Configure logging on this health check.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the\nlast character, which cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"ssl_health_check":{"type":["list",["object",{"port":"number","port_name":"string","port_specification":"string","proxy_header":"string","request":"string","response":"string"}]],"description":"A nested object resource","description_kind":"plain","computed":true},"tcp_health_check":{"type":["list",["object",{"port":"number","port_name":"string","port_specification":"string","proxy_header":"string","request":"string","response":"string"}]],"description":"A nested object resource","description_kind":"plain","computed":true},"timeout_sec":{"type":"number","description":"How long (in seconds) to wait before claiming failure.\nThe default value is 5 seconds. It is invalid for timeoutSec to have\ngreater value than checkIntervalSec.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of the health check. One of HTTP, HTTPS, TCP, or SSL.","description_kind":"plain","computed":true},"unhealthy_threshold":{"type":"number","description":"A so-far healthy instance will be marked unhealthy after this many\nconsecutive failures. The default value is 2.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_image":{"version":0,"block":{"attributes":{"archive_size_bytes":{"type":"number","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"disk_size_gb":{"type":"number","description_kind":"plain","computed":true},"family":{"type":"string","description_kind":"plain","optional":true,"computed":true},"filter":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_encryption_key_sha256":{"type":"string","description_kind":"plain","computed":true},"image_id":{"type":"string","description_kind":"plain","computed":true},"label_fingerprint":{"type":"string","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description_kind":"plain","computed":true},"licenses":{"type":["list","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"source_disk":{"type":"string","description_kind":"plain","computed":true},"source_disk_encryption_key_sha256":{"type":"string","description_kind":"plain","computed":true},"source_disk_id":{"type":"string","description_kind":"plain","computed":true},"source_image_id":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_instance":{"version":6,"block":{"attributes":{"advanced_machine_features":{"type":["list",["object",{"enable_nested_virtualization":"bool","threads_per_core":"number"}]],"description":"Controls for advanced machine-related behavior features.","description_kind":"plain","computed":true},"allow_stopping_for_update":{"type":"bool","description":"If true, allows Terraform to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail.","description_kind":"plain","computed":true},"attached_disk":{"type":["list",["object",{"device_name":"string","disk_encryption_key_raw":"string","disk_encryption_key_sha256":"string","kms_key_self_link":"string","mode":"string","source":"string"}]],"description":"List of disks attached to the instance","description_kind":"plain","computed":true},"boot_disk":{"type":["list",["object",{"auto_delete":"bool","device_name":"string","disk_encryption_key_raw":"string","disk_encryption_key_sha256":"string","initialize_params":["list",["object",{"image":"string","labels":["map","string"],"size":"number","type":"string"}]],"kms_key_self_link":"string","mode":"string","source":"string"}]],"description":"The boot disk for the instance.","description_kind":"plain","computed":true},"can_ip_forward":{"type":"bool","description":"Whether sending and receiving of packets with non-matching source or destination IPs is allowed.","description_kind":"plain","computed":true},"confidential_instance_config":{"type":["list",["object",{"enable_confidential_compute":"bool"}]],"description":"The Confidential VM config being used by the instance. on_host_maintenance has to be set to TERMINATE or this will fail to create.","description_kind":"plain","computed":true},"cpu_platform":{"type":"string","description":"The CPU platform used by this instance.","description_kind":"plain","computed":true},"current_status":{"type":"string","description":"Current status of the instance.","description_kind":"plain","computed":true},"deletion_protection":{"type":"bool","description":"Whether deletion protection is enabled on this instance.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A brief description of the resource.","description_kind":"plain","computed":true},"desired_status":{"type":"string","description":"Desired status of the instance. Either \"RUNNING\" or \"TERMINATED\".","description_kind":"plain","computed":true},"enable_display":{"type":"bool","description":"Whether the instance has virtual displays enabled.","description_kind":"plain","computed":true},"guest_accelerator":{"type":["list",["object",{"count":"number","type":"string"}]],"description":"List of the type and count of accelerator cards attached to the instance.","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression [a-z]([-a-z0-9]*[a-z0-9]), concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"The server-assigned unique identifier of this instance.","description_kind":"plain","computed":true},"label_fingerprint":{"type":"string","description":"The unique fingerprint of the labels.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs assigned to the instance.","description_kind":"plain","computed":true},"machine_type":{"type":"string","description":"The machine type to create.","description_kind":"plain","computed":true},"metadata":{"type":["map","string"],"description":"Metadata key/value pairs made available within the instance.","description_kind":"plain","computed":true},"metadata_fingerprint":{"type":"string","description":"The unique fingerprint of the metadata.","description_kind":"plain","computed":true},"metadata_startup_script":{"type":"string","description":"Metadata startup scripts made available within the instance.","description_kind":"plain","computed":true},"min_cpu_platform":{"type":"string","description":"The minimum CPU platform specified for the VM instance.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the instance. One of name or self_link must be provided.","description_kind":"plain","optional":true},"network_interface":{"type":["list",["object",{"access_config":["list",["object",{"nat_ip":"string","network_tier":"string","public_ptr_domain_name":"string"}]],"alias_ip_range":["list",["object",{"ip_cidr_range":"string","subnetwork_range_name":"string"}]],"ipv6_access_config":["list",["object",{"external_ipv6":"string","external_ipv6_prefix_length":"string","network_tier":"string","public_ptr_domain_name":"string"}]],"ipv6_access_type":"string","name":"string","network":"string","network_ip":"string","nic_type":"string","queue_count":"number","stack_type":"string","subnetwork":"string","subnetwork_project":"string"}]],"description":"The networks attached to the instance.","description_kind":"plain","computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If self_link is provided, this value is ignored. If neither self_link nor project are provided, the provider project is used.","description_kind":"plain","optional":true},"reservation_affinity":{"type":["list",["object",{"specific_reservation":["list",["object",{"key":"string","values":["list","string"]}]],"type":"string"}]],"description":"Specifies the reservations that this instance can consume from.","description_kind":"plain","computed":true},"resource_policies":{"type":["list","string"],"description":"A list of short names or self_links of resource policies to attach to the instance. Currently a max of 1 resource policy is supported.","description_kind":"plain","computed":true},"scheduling":{"type":["list",["object",{"automatic_restart":"bool","min_node_cpus":"number","node_affinities":["set",["object",{"key":"string","operator":"string","values":["set","string"]}]],"on_host_maintenance":"string","preemptible":"bool"}]],"description":"The scheduling strategy being used by the instance.","description_kind":"plain","computed":true},"scratch_disk":{"type":["list",["object",{"interface":"string"}]],"description":"The scratch disks attached to the instance.","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","optional":true},"service_account":{"type":["list",["object",{"email":"string","scopes":["set","string"]}]],"description":"The service account to attach to the instance.","description_kind":"plain","computed":true},"shielded_instance_config":{"type":["list",["object",{"enable_integrity_monitoring":"bool","enable_secure_boot":"bool","enable_vtpm":"bool"}]],"description":"The shielded vm config being used by the instance.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"The list of tags attached to the instance.","description_kind":"plain","computed":true},"tags_fingerprint":{"type":"string","description":"The unique fingerprint of the tags.","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone of the instance. If self_link is provided, this value is ignored. If neither self_link nor zone are provided, the provider zone is used.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_compute_instance_group":{"version":2,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instances":{"type":["set","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"named_port":{"type":["list",["object",{"name":"string","port":"number"}]],"description_kind":"plain","computed":true},"network":{"type":"string","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description_kind":"plain","computed":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_compute_instance_serial_port":{"version":0,"block":{"attributes":{"contents":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"port":{"type":"number","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_compute_instance_template":{"version":1,"block":{"attributes":{"advanced_machine_features":{"type":["list",["object",{"enable_nested_virtualization":"bool","threads_per_core":"number"}]],"description":"Controls for advanced machine-related behavior features.","description_kind":"plain","computed":true},"can_ip_forward":{"type":"bool","description":"Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.","description_kind":"plain","computed":true},"confidential_instance_config":{"type":["list",["object",{"enable_confidential_compute":"bool"}]],"description":"The Confidential VM config being used by the instance. on_host_maintenance has to be set to TERMINATE or this will fail to create.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A brief description of this resource.","description_kind":"plain","computed":true},"disk":{"type":["list",["object",{"auto_delete":"bool","boot":"bool","device_name":"string","disk_encryption_key":["list",["object",{"kms_key_self_link":"string"}]],"disk_name":"string","disk_size_gb":"number","disk_type":"string","interface":"string","labels":["map","string"],"mode":"string","resource_policies":["list","string"],"source":"string","source_image":"string","type":"string"}]],"description":"Disks to attach to instances created from this template. This can be specified multiple times for multiple disks.","description_kind":"plain","computed":true},"filter":{"type":"string","description_kind":"plain","optional":true},"guest_accelerator":{"type":["list",["object",{"count":"number","type":"string"}]],"description":"List of the type and count of accelerator cards attached to the instance.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_description":{"type":"string","description":"A description of the instance.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to instances created from this template,","description_kind":"plain","computed":true},"machine_type":{"type":"string","description":"The machine type to create. To create a machine with a custom type (such as extended memory), format the value like custom-VCPUS-MEM_IN_MB like custom-6-20480 for 6 vCPU and 20GB of RAM.","description_kind":"plain","computed":true},"metadata":{"type":["map","string"],"description":"Metadata key/value pairs to make available from within instances created from this template.","description_kind":"plain","computed":true},"metadata_fingerprint":{"type":"string","description":"The unique fingerprint of the metadata.","description_kind":"plain","computed":true},"metadata_startup_script":{"type":"string","description":"An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.","description_kind":"plain","computed":true},"min_cpu_platform":{"type":"string","description":"Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake.","description_kind":"plain","computed":true},"most_recent":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the instance template. If you leave this blank, Terraform will auto-generate a unique name.","description_kind":"plain","optional":true},"name_prefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with name.","description_kind":"plain","computed":true},"network_interface":{"type":["list",["object",{"access_config":["list",["object",{"nat_ip":"string","network_tier":"string","public_ptr_domain_name":"string"}]],"alias_ip_range":["list",["object",{"ip_cidr_range":"string","subnetwork_range_name":"string"}]],"ipv6_access_config":["list",["object",{"external_ipv6":"string","external_ipv6_prefix_length":"string","network_tier":"string","public_ptr_domain_name":"string"}]],"ipv6_access_type":"string","name":"string","network":"string","network_ip":"string","nic_type":"string","queue_count":"number","stack_type":"string","subnetwork":"string","subnetwork_project":"string"}]],"description":"Networks to attach to instances created from this template. This can be specified multiple times for multiple networks.","description_kind":"plain","computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true},"region":{"type":"string","description":"An instance template is a global resource that is not bound to a zone or a region. However, you can still specify some regional resources in an instance template, which restricts the template to the region where that resource resides. For example, a custom subnetwork resource is tied to a specific region. Defaults to the region of the Provider if no value is given.","description_kind":"plain","computed":true},"reservation_affinity":{"type":["list",["object",{"specific_reservation":["list",["object",{"key":"string","values":["list","string"]}]],"type":"string"}]],"description":"Specifies the reservations that this instance can consume from.","description_kind":"plain","computed":true},"scheduling":{"type":["list",["object",{"automatic_restart":"bool","min_node_cpus":"number","node_affinities":["set",["object",{"key":"string","operator":"string","values":["set","string"]}]],"on_host_maintenance":"string","preemptible":"bool"}]],"description":"The scheduling strategy to use.","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"service_account":{"type":["list",["object",{"email":"string","scopes":["set","string"]}]],"description":"Service account to attach to the instance.","description_kind":"plain","computed":true},"shielded_instance_config":{"type":["list",["object",{"enable_integrity_monitoring":"bool","enable_secure_boot":"bool","enable_vtpm":"bool"}]],"description":"Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Note: shielded_instance_config can only be used with boot images with shielded vm support.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"Tags to attach to the instance.","description_kind":"plain","computed":true},"tags_fingerprint":{"type":"string","description":"The unique fingerprint of the tags.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_lb_ip_ranges":{"version":0,"block":{"attributes":{"http_ssl_tcp_internal":{"type":["list","string"],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"network":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_network":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"gateway_ipv4":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"subnetworks_self_links":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_network_endpoint_group":{"version":0,"block":{"attributes":{"default_port":{"type":"number","description":"The default port used if the port number is not specified in the\nnetwork endpoint.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","optional":true},"network":{"type":"string","description":"The network to which all network endpoints in the NEG belong.\nUses \"default\" project network if unspecified.","description_kind":"plain","computed":true},"network_endpoint_type":{"type":"string","description":"Type of network endpoints in this network endpoint group.\nNON_GCP_PRIVATE_IP_PORT is used for hybrid connectivity network\nendpoint groups (see https://cloud.google.com/load-balancing/docs/hybrid).\nNote that NON_GCP_PRIVATE_IP_PORT can only be used with Backend Services\nthat 1) have the following load balancing schemes: EXTERNAL, EXTERNAL_MANAGED,\nINTERNAL_MANAGED, and INTERNAL_SELF_MANAGED and 2) support the RATE or\nCONNECTION balancing modes. Default value: \"GCE_VM_IP_PORT\" Possible values: [\"GCE_VM_IP_PORT\", \"NON_GCP_PRIVATE_IP_PORT\"]","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","optional":true},"size":{"type":"number","description":"Number of network endpoints in the network endpoint group.","description_kind":"plain","computed":true},"subnetwork":{"type":"string","description":"Optional subnetwork to which all network endpoints in the NEG belong.","description_kind":"plain","computed":true},"zone":{"type":"string","description":"Zone where the network endpoint group is located.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_compute_node_types":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"names":{"type":["list","string"],"description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_compute_region_instance_group":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instances":{"type":["list",["object",{"instance":"string","named_ports":["list",["object",{"name":"string","port":"number"}]],"status":"string"}]],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_region_ssl_certificate":{"version":0,"block":{"attributes":{"certificate":{"type":"string","description":"The certificate in PEM format.\nThe certificate chain must be no greater than 5 certs long.\nThe chain must include at least one intermediate cert.","description_kind":"plain","computed":true},"certificate_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.\n\n\nThese are in the same namespace as the managed SSL certificates.","description_kind":"plain","required":true},"name_prefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with name.","description_kind":"plain","computed":true},"private_key":{"type":"string","description":"The write-only private key in PEM format.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description":"The Region in which the created regional ssl certificate should reside.\nIf it is not provided, the provider region is used.","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_regions":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"names":{"type":["list","string"],"description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_compute_resource_policy":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create the resource.","description_kind":"plain","computed":true},"group_placement_policy":{"type":["list",["object",{"availability_domain_count":"number","collocation":"string","vm_count":"number"}]],"description":"Resource policy for instances used for placement configuration.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_schedule_policy":{"type":["list",["object",{"expiration_time":"string","start_time":"string","time_zone":"string","vm_start_schedule":["list",["object",{"schedule":"string"}]],"vm_stop_schedule":["list",["object",{"schedule":"string"}]]}]],"description":"Resource policy for scheduling instance operations.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the resource, provided by the client when initially creating\nthe resource. The resource name must be 1-63 characters long, and comply\nwith RFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression '[a-z]([-a-z0-9]*[a-z0-9])'? which means the\nfirst character must be a lowercase letter, and all following characters\nmust be a dash, lowercase letter, or digit, except the last character,\nwhich cannot be a dash.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description":"Region where resource policy resides.","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true},"snapshot_schedule_policy":{"type":["list",["object",{"retention_policy":["list",["object",{"max_retention_days":"number","on_source_disk_delete":"string"}]],"schedule":["list",["object",{"daily_schedule":["list",["object",{"days_in_cycle":"number","start_time":"string"}]],"hourly_schedule":["list",["object",{"hours_in_cycle":"number","start_time":"string"}]],"weekly_schedule":["list",["object",{"day_of_weeks":["set",["object",{"day":"string","start_time":"string"}]]}]]}]],"snapshot_properties":["list",["object",{"guest_flush":"bool","labels":["map","string"],"storage_locations":["set","string"]}]]}]],"description":"Policy for creating snapshots of persistent disks.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_router":{"version":0,"block":{"attributes":{"bgp":{"type":["list",["object",{"advertise_mode":"string","advertised_groups":["list","string"],"advertised_ip_ranges":["list",["object",{"description":"string","range":"string"}]],"asn":"number","keepalive_interval":"number"}]],"description":"BGP information specific to this router.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","computed":true},"encrypted_interconnect_router":{"type":"bool","description":"Field to indicate if a router is dedicated to use with encrypted\nInterconnect Attachment (IPsec-encrypted Cloud Interconnect feature).\n\nNot currently available publicly.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. The name must be 1-63 characters long, and\ncomply with RFC1035. Specifically, the name must be 1-63 characters\nlong and match the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?'\nwhich means the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit,\nexcept the last character, which cannot be a dash.","description_kind":"plain","required":true},"network":{"type":"string","description":"A reference to the network to which this router belongs.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description":"Region where the router resides.","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_router_status":{"version":0,"block":{"attributes":{"best_routes":{"type":["list",["object",{"description":"string","dest_range":"string","name":"string","network":"string","next_hop_gateway":"string","next_hop_ilb":"string","next_hop_instance":"string","next_hop_instance_zone":"string","next_hop_ip":"string","next_hop_network":"string","next_hop_vpn_tunnel":"string","priority":"number","project":"string","self_link":"string","tags":["set","string"]}]],"description":"Best routes for this router's network.","description_kind":"plain","computed":true},"best_routes_for_router":{"type":["list",["object",{"description":"string","dest_range":"string","name":"string","network":"string","next_hop_gateway":"string","next_hop_ilb":"string","next_hop_instance":"string","next_hop_instance_zone":"string","next_hop_ip":"string","next_hop_network":"string","next_hop_vpn_tunnel":"string","priority":"number","project":"string","self_link":"string","tags":["set","string"]}]],"description":"Best routes learned by this router.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the router to query.","description_kind":"plain","required":true},"network":{"type":"string","description":"URI of the network to which this router belongs.","description_kind":"plain","computed":true},"project":{"type":"string","description":"Project ID of the target router.","description_kind":"plain","optional":true},"region":{"type":"string","description":"Region of the target router.","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_compute_ssl_certificate":{"version":0,"block":{"attributes":{"certificate":{"type":"string","description":"The certificate in PEM format.\nThe certificate chain must be no greater than 5 certs long.\nThe chain must include at least one intermediate cert.","description_kind":"plain","computed":true},"certificate_id":{"type":"number","description":"The unique identifier for the resource.","description_kind":"plain","computed":true},"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.\n\n\nThese are in the same namespace as the managed SSL certificates.","description_kind":"plain","required":true},"name_prefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with name.","description_kind":"plain","computed":true},"private_key":{"type":"string","description":"The write-only private key in PEM format.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_ssl_policy":{"version":0,"block":{"attributes":{"creation_timestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.","description_kind":"plain","computed":true},"custom_features":{"type":["set","string"],"description":"Profile specifies the set of SSL features that can be used by the\nload balancer when negotiating SSL with clients. This can be one of\n'COMPATIBLE', 'MODERN', 'RESTRICTED', or 'CUSTOM'. If using 'CUSTOM',\nthe set of SSL features to enable must be specified in the\n'customFeatures' field.\n\nSee the [official documentation](https://cloud.google.com/compute/docs/load-balancing/ssl-policies#profilefeaturesupport)\nfor which ciphers are available to use. **Note**: this argument\n*must* be present when using the 'CUSTOM' profile. This argument\n*must not* be present when using any other profile.","description_kind":"plain","computed":true},"description":{"type":"string","description":"An optional description of this resource.","description_kind":"plain","computed":true},"enabled_features":{"type":["set","string"],"description":"The list of features enabled in the SSL policy.","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description":"Fingerprint of this resource. A hash of the contents stored in this\nobject. This field is used in optimistic locking.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"min_tls_version":{"type":"string","description":"The minimum version of SSL protocol that can be used by the clients\nto establish a connection with the load balancer. Default value: \"TLS_1_0\" Possible values: [\"TLS_1_0\", \"TLS_1_1\", \"TLS_1_2\"]","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.","description_kind":"plain","required":true},"profile":{"type":"string","description":"Profile specifies the set of SSL features that can be used by the\nload balancer when negotiating SSL with clients. If using 'CUSTOM',\nthe set of SSL features to enable must be specified in the\n'customFeatures' field.\n\nSee the [official documentation](https://cloud.google.com/compute/docs/load-balancing/ssl-policies#profilefeaturesupport)\nfor information on what cipher suites each profile provides. If\n'CUSTOM' is used, the 'custom_features' attribute **must be set**. Default value: \"COMPATIBLE\" Possible values: [\"COMPATIBLE\", \"MODERN\", \"RESTRICTED\", \"CUSTOM\"]","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_subnetwork":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"gateway_address":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_cidr_range":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"network":{"type":"string","description_kind":"plain","computed":true},"private_ip_google_access":{"type":"bool","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secondary_ip_range":{"type":["list",["object",{"ip_cidr_range":"string","range_name":"string"}]],"description_kind":"plain","computed":true},"self_link":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_compute_vpn_gateway":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"network":{"type":"string","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"self_link":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_compute_zones":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"names":{"type":["list","string"],"description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_container_aws_versions":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true},"supported_regions":{"type":["list","string"],"description_kind":"plain","computed":true},"valid_versions":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_container_azure_versions":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true},"supported_regions":{"type":["list","string"],"description_kind":"plain","computed":true},"valid_versions":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_container_cluster":{"version":1,"block":{"attributes":{"addons_config":{"type":["list",["object",{"cloudrun_config":["list",["object",{"disabled":"bool","load_balancer_type":"string"}]],"gcp_filestore_csi_driver_config":["list",["object",{"enabled":"bool"}]],"horizontal_pod_autoscaling":["list",["object",{"disabled":"bool"}]],"http_load_balancing":["list",["object",{"disabled":"bool"}]],"network_policy_config":["list",["object",{"disabled":"bool"}]]}]],"description":"The configuration for addons supported by GKE.","description_kind":"plain","computed":true},"authenticator_groups_config":{"type":["list",["object",{"security_group":"string"}]],"description":"Configuration for the Google Groups for GKE feature.","description_kind":"plain","computed":true},"cluster_autoscaling":{"type":["list",["object",{"auto_provisioning_defaults":["list",["object",{"image_type":"string","oauth_scopes":["list","string"],"service_account":"string"}]],"enabled":"bool","resource_limits":["list",["object",{"maximum":"number","minimum":"number","resource_type":"string"}]]}]],"description":"Per-cluster configuration of Node Auto-Provisioning with Cluster Autoscaler to automatically adjust the size of the cluster and create/delete node pools based on the current needs of the cluster's workload. See the guide to using Node Auto-Provisioning for more details.","description_kind":"plain","computed":true},"cluster_ipv4_cidr":{"type":"string","description":"The IP address range of the Kubernetes pods in this cluster in CIDR notation (e.g. 10.96.0.0/14). Leave blank to have one automatically chosen or specify a /14 block in 10.0.0.0/8. This field will only work for routes-based clusters, where ip_allocation_policy is not defined.","description_kind":"plain","computed":true},"confidential_nodes":{"type":["list",["object",{"enabled":"bool"}]],"description":"Configuration for the confidential nodes feature, which makes nodes run on confidential VMs. Warning: This configuration can't be changed (or added/removed) after cluster creation without deleting and recreating the entire cluster.","description_kind":"plain","computed":true},"database_encryption":{"type":["list",["object",{"key_name":"string","state":"string"}]],"description":"Application-layer Secrets Encryption settings. The object format is {state = string, key_name = string}. Valid values of state are: \"ENCRYPTED\"; \"DECRYPTED\". key_name is the name of a CloudKMS key.","description_kind":"plain","computed":true},"datapath_provider":{"type":"string","description":"The desired datapath provider for this cluster. By default, uses the IPTables-based kube-proxy implementation.","description_kind":"plain","computed":true},"default_max_pods_per_node":{"type":"number","description":"The default maximum number of pods per node in this cluster. This doesn't work on \"routes-based\" clusters, clusters that don't have IP Aliasing enabled.","description_kind":"plain","computed":true},"default_snat_status":{"type":["list",["object",{"disabled":"bool"}]],"description":"Whether the cluster disables default in-node sNAT rules. In-node sNAT rules will be disabled when defaultSnatStatus is disabled.","description_kind":"plain","computed":true},"description":{"type":"string","description":" Description of the cluster.","description_kind":"plain","computed":true},"dns_config":{"type":["list",["object",{"cluster_dns":"string","cluster_dns_domain":"string","cluster_dns_scope":"string"}]],"description":"Configuration for Cloud DNS for Kubernetes Engine.","description_kind":"plain","computed":true},"enable_autopilot":{"type":"bool","description":"Enable Autopilot for this cluster.","description_kind":"plain","computed":true},"enable_binary_authorization":{"type":"bool","description":"Enable Binary Authorization for this cluster. If enabled, all container images will be validated by Google Binary Authorization.","description_kind":"plain","computed":true},"enable_intranode_visibility":{"type":"bool","description":"Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network.","description_kind":"plain","computed":true},"enable_kubernetes_alpha":{"type":"bool","description":"Whether to enable Kubernetes Alpha features for this cluster. Note that when this option is enabled, the cluster cannot be upgraded and will be automatically deleted after 30 days.","description_kind":"plain","computed":true},"enable_legacy_abac":{"type":"bool","description":"Whether the ABAC authorizer is enabled for this cluster. When enabled, identities in the system, including service accounts, nodes, and controllers, will have statically granted permissions beyond those provided by the RBAC configuration or IAM. Defaults to false.","description_kind":"plain","computed":true},"enable_shielded_nodes":{"type":"bool","description":"Enable Shielded Nodes features on all nodes in this cluster. Defaults to true.","description_kind":"plain","computed":true},"enable_tpu":{"type":"bool","description":"Whether to enable Cloud TPU resources in this cluster.","description_kind":"plain","computed":true},"endpoint":{"type":"string","description":"The IP address of this cluster's Kubernetes master.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"initial_node_count":{"type":"number","description":"The number of nodes to create in this cluster's default node pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Must be set if node_pool is not set. If you're using google_container_node_pool objects with no default node pool, you'll need to set this to a value of at least 1, alongside setting remove_default_node_pool to true.","description_kind":"plain","computed":true},"ip_allocation_policy":{"type":["list",["object",{"cluster_ipv4_cidr_block":"string","cluster_secondary_range_name":"string","services_ipv4_cidr_block":"string","services_secondary_range_name":"string"}]],"description":"Configuration of cluster IP allocation for VPC-native clusters. Adding this block enables IP aliasing, making the cluster VPC-native instead of routes-based.","description_kind":"plain","computed":true},"label_fingerprint":{"type":"string","description":"The fingerprint of the set of labels for this cluster.","description_kind":"plain","computed":true},"location":{"type":"string","description":"The location (region or zone) in which the cluster master will be created, as well as the default node location. If you specify a zone (such as us-central1-a), the cluster will be a zonal cluster with a single cluster master. If you specify a region (such as us-west1), the cluster will be a regional cluster with multiple masters spread across zones in the region, and with default node locations in those zones as well.","description_kind":"plain","optional":true},"logging_config":{"type":["list",["object",{"enable_components":["list","string"]}]],"description":"Logging configuration for the cluster.","description_kind":"plain","computed":true},"logging_service":{"type":"string","description":"The logging service that the cluster should write logs to. Available options include logging.googleapis.com(Legacy Stackdriver), logging.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Logging), and none. Defaults to logging.googleapis.com/kubernetes.","description_kind":"plain","computed":true},"maintenance_policy":{"type":["list",["object",{"daily_maintenance_window":["list",["object",{"duration":"string","start_time":"string"}]],"maintenance_exclusion":["set",["object",{"end_time":"string","exclusion_name":"string","start_time":"string"}]],"recurring_window":["list",["object",{"end_time":"string","recurrence":"string","start_time":"string"}]]}]],"description":"The maintenance policy to use for the cluster.","description_kind":"plain","computed":true},"master_auth":{"type":["list",["object",{"client_certificate":"string","client_certificate_config":["list",["object",{"issue_client_certificate":"bool"}]],"client_key":"string","cluster_ca_certificate":"string"}]],"description":"The authentication information for accessing the Kubernetes master. Some values in this block are only returned by the API if your service account has permission to get credentials for your GKE cluster. If you see an unexpected diff unsetting your client cert, ensure you have the container.clusters.getCredentials permission.","description_kind":"plain","computed":true},"master_authorized_networks_config":{"type":["list",["object",{"cidr_blocks":["set",["object",{"cidr_block":"string","display_name":"string"}]]}]],"description":"The desired configuration options for master authorized networks. Omit the nested cidr_blocks attribute to disallow external access (except the cluster node IPs, which GKE automatically whitelists).","description_kind":"plain","computed":true},"master_version":{"type":"string","description":"The current version of the master in the cluster. This may be different than the min_master_version set in the config if the master has been updated by GKE.","description_kind":"plain","computed":true},"min_master_version":{"type":"string","description":"The minimum version of the master. GKE will auto-update the master to new versions, so this does not guarantee the current master version--use the read-only master_version field to obtain that. If unset, the cluster's version will be set by GKE to the version of the most recent official release (which is not necessarily the latest version).","description_kind":"plain","computed":true},"monitoring_config":{"type":["list",["object",{"enable_components":["list","string"]}]],"description":"Monitoring configuration for the cluster.","description_kind":"plain","computed":true},"monitoring_service":{"type":"string","description":"The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com(Legacy Stackdriver), monitoring.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Monitoring), and none. Defaults to monitoring.googleapis.com/kubernetes.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the cluster, unique within the project and location.","description_kind":"plain","required":true},"network":{"type":"string","description":"The name or self_link of the Google Compute Engine network to which the cluster is connected. For Shared VPC, set this to the self link of the shared network.","description_kind":"plain","computed":true},"network_policy":{"type":["list",["object",{"enabled":"bool","provider":"string"}]],"description":"Configuration options for the NetworkPolicy feature.","description_kind":"plain","computed":true},"networking_mode":{"type":"string","description":"Determines whether alias IPs or routes will be used for pod IPs in the cluster.","description_kind":"plain","computed":true},"node_config":{"type":["list",["object",{"boot_disk_kms_key":"string","disk_size_gb":"number","disk_type":"string","gcfs_config":["list",["object",{"enabled":"bool"}]],"guest_accelerator":["list",["object",{"count":"number","gpu_partition_size":"string","type":"string"}]],"gvnic":["list",["object",{"enabled":"bool"}]],"image_type":"string","labels":["map","string"],"local_ssd_count":"number","machine_type":"string","metadata":["map","string"],"min_cpu_platform":"string","node_group":"string","oauth_scopes":["set","string"],"preemptible":"bool","service_account":"string","shielded_instance_config":["list",["object",{"enable_integrity_monitoring":"bool","enable_secure_boot":"bool"}]],"tags":["list","string"],"taint":["list",["object",{"effect":"string","key":"string","value":"string"}]],"workload_metadata_config":["list",["object",{"mode":"string"}]]}]],"description":"The configuration of the nodepool","description_kind":"plain","computed":true},"node_locations":{"type":["set","string"],"description":"The list of zones in which the cluster's nodes are located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If this is specified for a zonal cluster, omit the cluster's zone.","description_kind":"plain","computed":true},"node_pool":{"type":["list",["object",{"autoscaling":["list",["object",{"max_node_count":"number","min_node_count":"number"}]],"initial_node_count":"number","instance_group_urls":["list","string"],"managed_instance_group_urls":["list","string"],"management":["list",["object",{"auto_repair":"bool","auto_upgrade":"bool"}]],"max_pods_per_node":"number","name":"string","name_prefix":"string","node_config":["list",["object",{"boot_disk_kms_key":"string","disk_size_gb":"number","disk_type":"string","gcfs_config":["list",["object",{"enabled":"bool"}]],"guest_accelerator":["list",["object",{"count":"number","gpu_partition_size":"string","type":"string"}]],"gvnic":["list",["object",{"enabled":"bool"}]],"image_type":"string","labels":["map","string"],"local_ssd_count":"number","machine_type":"string","metadata":["map","string"],"min_cpu_platform":"string","node_group":"string","oauth_scopes":["set","string"],"preemptible":"bool","service_account":"string","shielded_instance_config":["list",["object",{"enable_integrity_monitoring":"bool","enable_secure_boot":"bool"}]],"tags":["list","string"],"taint":["list",["object",{"effect":"string","key":"string","value":"string"}]],"workload_metadata_config":["list",["object",{"mode":"string"}]]}]],"node_count":"number","node_locations":["set","string"],"upgrade_settings":["list",["object",{"max_surge":"number","max_unavailable":"number"}]],"version":"string"}]],"description":"List of node pools associated with this cluster. See google_container_node_pool for schema. Warning: node pools defined inside a cluster can't be changed (or added/removed) after cluster creation without deleting and recreating the entire cluster. Unless you absolutely need the ability to say \"these are the only node pools associated with this cluster\", use the google_container_node_pool resource instead of this property.","description_kind":"plain","computed":true},"node_version":{"type":"string","description":"The Kubernetes version on the nodes. Must either be unset or set to the same value as min_master_version on create. Defaults to the default version set by GKE which is not necessarily the latest version. This only affects nodes in the default node pool. While a fuzzy version can be specified, it's recommended that you specify explicit versions as Terraform will see spurious diffs when fuzzy versions are used. See the google_container_engine_versions data source's version_prefix field to approximate fuzzy versions in a Terraform-compatible way. To update nodes in other node pools, use the version attribute on the node pool.","description_kind":"plain","computed":true},"operation":{"type":"string","description_kind":"plain","computed":true},"private_cluster_config":{"type":["list",["object",{"enable_private_endpoint":"bool","enable_private_nodes":"bool","master_global_access_config":["list",["object",{"enabled":"bool"}]],"master_ipv4_cidr_block":"string","peering_name":"string","private_endpoint":"string","public_endpoint":"string"}]],"description":"Configuration for private clusters, clusters with private nodes.","description_kind":"plain","computed":true},"private_ipv6_google_access":{"type":"string","description":"The desired state of IPv6 connectivity to Google Services. By default, no private IPv6 access to or from Google Services (all access will be via IPv4).","description_kind":"plain","computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true},"release_channel":{"type":["list",["object",{"channel":"string"}]],"description":"Configuration options for the Release channel feature, which provide more control over automatic upgrades of your GKE clusters. Note that removing this field from your config will not unenroll it. Instead, use the \"UNSPECIFIED\" channel.","description_kind":"plain","computed":true},"remove_default_node_pool":{"type":"bool","description":"If true, deletes the default node pool upon cluster creation. If you're using google_container_node_pool resources with no default node pool, this should be set to true, alongside setting initial_node_count to at least 1.","description_kind":"plain","computed":true},"resource_labels":{"type":["map","string"],"description":"The GCE resource labels (a map of key/value pairs) to be applied to the cluster.","description_kind":"plain","computed":true},"resource_usage_export_config":{"type":["list",["object",{"bigquery_destination":["list",["object",{"dataset_id":"string"}]],"enable_network_egress_metering":"bool","enable_resource_consumption_metering":"bool"}]],"description":"Configuration for the ResourceUsageExportConfig feature.","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"Server-defined URL for the resource.","description_kind":"plain","computed":true},"services_ipv4_cidr":{"type":"string","description":"The IP address range of the Kubernetes services in this cluster, in CIDR notation (e.g. 1.2.3.4/29). Service addresses are typically put in the last /16 from the container CIDR.","description_kind":"plain","computed":true},"subnetwork":{"type":"string","description":"The name or self_link of the Google Compute Engine subnetwork in which the cluster's instances are launched.","description_kind":"plain","computed":true},"tpu_ipv4_cidr_block":{"type":"string","description":"The IP address range of the Cloud TPUs in this cluster, in CIDR notation (e.g. 1.2.3.4/29).","description_kind":"plain","computed":true},"vertical_pod_autoscaling":{"type":["list",["object",{"enabled":"bool"}]],"description":"Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it.","description_kind":"plain","computed":true},"workload_identity_config":{"type":["list",["object",{"workload_pool":"string"}]],"description":"Configuration for the use of Kubernetes Service Accounts in GCP IAM policies.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_container_engine_versions":{"version":0,"block":{"attributes":{"default_cluster_version":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"latest_master_version":{"type":"string","description_kind":"plain","computed":true},"latest_node_version":{"type":"string","description_kind":"plain","computed":true},"location":{"type":"string","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true},"release_channel_default_version":{"type":["map","string"],"description_kind":"plain","computed":true},"valid_master_versions":{"type":["list","string"],"description_kind":"plain","computed":true},"valid_node_versions":{"type":["list","string"],"description_kind":"plain","computed":true},"version_prefix":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_container_registry_image":{"version":0,"block":{"attributes":{"digest":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_url":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true},"tag":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_container_registry_repository":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true},"repository_url":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_dns_keys":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_signing_keys":{"type":["list",["object",{"algorithm":"string","creation_time":"string","description":"string","digests":["list",["object",{"digest":"string","type":"string"}]],"ds_record":"string","id":"string","is_active":"bool","key_length":"number","key_tag":"number","public_key":"string"}]],"description_kind":"plain","computed":true},"managed_zone":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone_signing_keys":{"type":["list",["object",{"algorithm":"string","creation_time":"string","description":"string","digests":["list",["object",{"digest":"string","type":"string"}]],"id":"string","is_active":"bool","key_length":"number","key_tag":"number","public_key":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_dns_managed_zone":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"dns_name":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"name_servers":{"type":["list","string"],"description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"visibility":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_dns_record_set":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"managed_zone":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true},"rrdatas":{"type":["list","string"],"description_kind":"plain","computed":true},"ttl":{"type":"number","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_folder":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description_kind":"plain","computed":true},"display_name":{"type":"string","description_kind":"plain","computed":true},"folder":{"type":"string","description_kind":"plain","required":true},"folder_id":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifecycle_state":{"type":"string","description_kind":"plain","computed":true},"lookup_organization":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","computed":true},"organization":{"type":"string","description_kind":"plain","computed":true},"parent":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_folder_organization_policy":{"version":0,"block":{"attributes":{"boolean_policy":{"type":["list",["object",{"enforced":"bool"}]],"description":"A boolean policy is a constraint that is either enforced or not.","description_kind":"plain","computed":true},"constraint":{"type":"string","description":"The name of the Constraint the Policy is configuring, for example, serviceuser.services.","description_kind":"plain","required":true},"etag":{"type":"string","description":"The etag of the organization policy. etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other.","description_kind":"plain","computed":true},"folder":{"type":"string","description":"The resource name of the folder to set the policy for. Its format is folders/{folder_id}.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"list_policy":{"type":["list",["object",{"allow":["list",["object",{"all":"bool","values":["set","string"]}]],"deny":["list",["object",{"all":"bool","values":["set","string"]}]],"inherit_from_parent":"bool","suggested_value":"string"}]],"description":"A policy that can define specific values that are allowed or denied for the given constraint. It can also be used to allow or deny all values. ","description_kind":"plain","computed":true},"restore_policy":{"type":["list",["object",{"default":"bool"}]],"description":"A restore policy is a constraint to restore the default policy.","description_kind":"plain","computed":true},"update_time":{"type":"string","description":"The timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds, representing when the variable was last updated. Example: \"2016-10-09T12:33:37.578138407Z\".","description_kind":"plain","computed":true},"version":{"type":"number","description":"Version of the Policy. Default version is 0.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_folders":{"version":0,"block":{"attributes":{"folders":{"type":["list",["object",{"create_time":"string","delete_time":"string","display_name":"string","etag":"string","name":"string","parent":"string","state":"string","update_time":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"parent_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_game_services_game_server_deployment_rollout":{"version":0,"block":{"attributes":{"default_game_server_config":{"type":"string","description":"This field points to the game server config that is\napplied by default to all realms and clusters. For example,\n\n'projects/my-project/locations/global/gameServerDeployments/my-game/configs/my-config'.","description_kind":"plain","computed":true},"deployment_id":{"type":"string","description":"The deployment to rollout the new config to. Only 1 rollout must be associated with each deployment.","description_kind":"plain","required":true},"game_server_config_overrides":{"type":["list",["object",{"config_version":"string","realms_selector":["list",["object",{"realms":["list","string"]}]]}]],"description":"The game_server_config_overrides contains the per game server config\noverrides. The overrides are processed in the order they are listed. As\nsoon as a match is found for a cluster, the rest of the list is not\nprocessed.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The resource id of the game server deployment\n\neg: 'projects/my-project/locations/global/gameServerDeployments/my-deployment/rollout'.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_iam_policy":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_data":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"audit_config":{"nesting_mode":"set","block":{"attributes":{"service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"audit_log_configs":{"nesting_mode":"set","block":{"attributes":{"exempted_members":{"type":["set","string"],"description_kind":"plain","optional":true},"log_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"binding":{"nesting_mode":"set","block":{"attributes":{"members":{"type":["set","string"],"description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expression":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}}},"description_kind":"plain"}},"google_iam_role":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"included_permissions":{"type":["list","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"stage":{"type":"string","description_kind":"plain","computed":true},"title":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_iam_testable_permissions":{"version":0,"block":{"attributes":{"custom_support_level":{"type":"string","description_kind":"plain","optional":true},"full_resource_name":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"permissions":{"type":["list",["object",{"api_disabled":"bool","custom_support_level":"string","name":"string","stage":"string","title":"string"}]],"description_kind":"plain","computed":true},"stages":{"type":["list","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_iap_client":{"version":0,"block":{"attributes":{"brand":{"type":"string","description":"Identifier of the brand to which this client\nis attached to. The format is\n'projects/{project_number}/brands/{brand_id}/identityAwareProxyClients/{client_id}'.","description_kind":"plain","required":true},"client_id":{"type":"string","description":"Output only. Unique identifier of the OAuth client.","description_kind":"plain","required":true},"display_name":{"type":"string","description":"Human-friendly name given to the OAuth client.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secret":{"type":"string","description":"Output only. Client secret of the OAuth client.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_kms_crypto_key":{"version":1,"block":{"attributes":{"destroy_scheduled_duration":{"type":"string","description":"The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED.\nIf not specified at creation time, the default duration is 24 hours.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"import_only":{"type":"bool","description":"Whether this key may contain imported versions only.","description_kind":"plain","computed":true},"key_ring":{"type":"string","description":"The KeyRing that this key belongs to.\nFormat: ''projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}''.","description_kind":"plain","required":true},"labels":{"type":["map","string"],"description":"Labels with user-defined metadata to apply to this resource.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The resource name for the CryptoKey.","description_kind":"plain","required":true},"purpose":{"type":"string","description":"The immutable purpose of this CryptoKey. See the\n[purpose reference](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys#CryptoKeyPurpose)\nfor possible inputs. Default value: \"ENCRYPT_DECRYPT\" Possible values: [\"ENCRYPT_DECRYPT\", \"ASYMMETRIC_SIGN\", \"ASYMMETRIC_DECRYPT\"]","description_kind":"plain","computed":true},"rotation_period":{"type":"string","description":"Every time this period passes, generate a new CryptoKeyVersion and set it as the primary.\nThe first rotation will take place after the specified period. The rotation period has\nthe format of a decimal number with up to 9 fractional digits, followed by the\nletter 's' (seconds). It must be greater than a day (ie, 86400).","description_kind":"plain","computed":true},"skip_initial_version_creation":{"type":"bool","description":"If set to true, the request will create a CryptoKey without any CryptoKeyVersions. \nYou must use the 'google_kms_key_ring_import_job' resource to import the CryptoKeyVersion.","description_kind":"plain","computed":true},"version_template":{"type":["list",["object",{"algorithm":"string","protection_level":"string"}]],"description":"A template describing settings for new crypto key versions.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_kms_crypto_key_version":{"version":0,"block":{"attributes":{"algorithm":{"type":"string","description_kind":"plain","computed":true},"crypto_key":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"protection_level":{"type":"string","description_kind":"plain","computed":true},"public_key":{"type":["list",["object",{"algorithm":"string","pem":"string"}]],"description_kind":"plain","computed":true},"state":{"type":"string","description_kind":"plain","computed":true},"version":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_kms_key_ring":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location for the KeyRing.\nA full list of valid locations can be found by running 'gcloud kms locations list'.","description_kind":"plain","required":true},"name":{"type":"string","description":"The resource name for the KeyRing.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_kms_secret":{"version":0,"block":{"attributes":{"additional_authenticated_data":{"type":"string","description_kind":"plain","optional":true},"ciphertext":{"type":"string","description_kind":"plain","required":true},"crypto_key":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"plaintext":{"type":"string","description_kind":"plain","computed":true,"sensitive":true}},"description_kind":"plain"}},"google_kms_secret_ciphertext":{"version":0,"block":{"attributes":{"ciphertext":{"type":"string","description_kind":"plain","computed":true},"crypto_key":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"plaintext":{"type":"string","description_kind":"plain","required":true,"sensitive":true}},"description_kind":"plain","deprecated":true}},"google_monitoring_app_engine_service":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Name used for UI elements listing this Service.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"module_id":{"type":"string","description":"The ID of the App Engine module underlying this service. \nCorresponds to the 'moduleId' resource label for a 'gae_app'\nmonitored resource(see https://cloud.google.com/monitoring/api/resources#tag_gae_app)","description_kind":"plain","required":true},"name":{"type":"string","description":"The full resource name for this service. The syntax is:\nprojects/[PROJECT_ID]/services/[SERVICE_ID].","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"service_id":{"type":"string","description":"An optional service ID to use. If not given, the server will generate a\nservice ID.","description_kind":"plain","computed":true},"telemetry":{"type":["list",["object",{"resource_name":"string"}]],"description":"Configuration for how to query telemetry on a Service.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_monitoring_cluster_istio_service":{"version":0,"block":{"attributes":{"cluster_name":{"type":"string","description":"The name of the Kubernetes cluster in which this Istio service is defined. \n Corresponds to the clusterName resource label in k8s_cluster resources.","description_kind":"plain","required":true},"display_name":{"type":"string","description":"Name used for UI elements listing this Service.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description":"The location of the Kubernetes cluster in which this Istio service is defined. \n Corresponds to the location resource label in k8s_cluster resources.","description_kind":"plain","required":true},"name":{"type":"string","description":"The full resource name for this service. The syntax is:\nprojects/[PROJECT_ID]/services/[SERVICE_ID].","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"service_id":{"type":"string","description":"An optional service ID to use. If not given, the server will generate a\nservice ID.","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The name of the Istio service underlying this service. \n Corresponds to the destination_service_name metric label in Istio metrics.","description_kind":"plain","required":true},"service_namespace":{"type":"string","description":"The namespace of the Istio service underlying this service. \n Corresponds to the destination_service_namespace metric label in Istio metrics.","description_kind":"plain","required":true},"telemetry":{"type":["list",["object",{"resource_name":"string"}]],"description":"Configuration for how to query telemetry on a Service.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_monitoring_istio_canonical_service":{"version":0,"block":{"attributes":{"canonical_service":{"type":"string","description":"The name of the canonical service underlying this service.. \n Corresponds to the destination_service_name metric label in Istio metrics.","description_kind":"plain","required":true},"canonical_service_namespace":{"type":"string","description":"The namespace of the canonical service underlying this service.\n Corresponds to the destination_service_namespace metric label in Istio metrics.","description_kind":"plain","required":true},"display_name":{"type":"string","description":"Name used for UI elements listing this Service.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mesh_uid":{"type":"string","description":"Identifier for the Istio mesh in which this canonical service is defined.\n Corresponds to the meshUid metric label in Istio metrics.","description_kind":"plain","required":true},"name":{"type":"string","description":"The full resource name for this service. The syntax is:\nprojects/[PROJECT_ID]/services/[SERVICE_ID].","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"service_id":{"type":"string","description":"An optional service ID to use. If not given, the server will generate a\nservice ID.","description_kind":"plain","computed":true},"telemetry":{"type":["list",["object",{"resource_name":"string"}]],"description":"Configuration for how to query telemetry on a Service.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_monitoring_mesh_istio_service":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Name used for UI elements listing this Service.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mesh_uid":{"type":"string","description":"Identifier for the mesh in which this Istio service is defined.\n Corresponds to the meshUid metric label in Istio metrics.","description_kind":"plain","required":true},"name":{"type":"string","description":"The full resource name for this service. The syntax is:\nprojects/[PROJECT_ID]/services/[SERVICE_ID].","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"service_id":{"type":"string","description":"An optional service ID to use. If not given, the server will generate a\nservice ID.","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The name of the Istio service underlying this service. \n Corresponds to the destination_service_name metric label in Istio metrics.","description_kind":"plain","required":true},"service_namespace":{"type":"string","description":"The namespace of the Istio service underlying this service.\n Corresponds to the destination_service_namespace metric label in Istio metrics.","description_kind":"plain","required":true},"telemetry":{"type":["list",["object",{"resource_name":"string"}]],"description":"Configuration for how to query telemetry on a Service.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_monitoring_notification_channel":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"An optional human-readable description of this notification channel. This description may provide additional details, beyond the display name, for the channel. This may not exceed 1024 Unicode characters.","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"An optional human-readable name for this notification channel. It is recommended that you specify a non-empty and unique name in order to make it easier to identify the channels in your project, though this is not enforced. The display name is limited to 512 Unicode characters.","description_kind":"plain","optional":true},"enabled":{"type":"bool","description":"Whether notifications are forwarded to the described channel. This makes it possible to disable delivery of notifications to a particular channel without removing the channel from all alerting policies that reference the channel. This is a more convenient approach when the change is temporary and you want to receive notifications from the same set of alerting policies on the channel at some point in the future.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Configuration fields that define the channel and its behavior. The\npermissible and required labels are specified in the\nNotificationChannelDescriptor corresponding to the type field.\n\nLabels with sensitive data are obfuscated by the API and therefore Terraform cannot\ndetermine if there are upstream changes to these fields. They can also be configured via\nthe sensitive_labels block, but cannot be configured in both places.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The full REST resource name for this channel. The syntax is:\nprojects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]\nThe [CHANNEL_ID] is automatically assigned by the server on creation.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"sensitive_labels":{"type":["list",["object",{"auth_token":"string","password":"string","service_key":"string"}]],"description":"Different notification type behaviors are configured primarily using the the 'labels' field on this\nresource. This block contains the labels which contain secrets or passwords so that they can be marked\nsensitive and hidden from plan output. The name of the field, eg: password, will be the key\nin the 'labels' map in the api request.\n\nCredentials may not be specified in both locations and will cause an error. Changing from one location\nto a different credential configuration in the config will require an apply to update state.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of the notification channel. This field matches the value of the NotificationChannelDescriptor.type field. See https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.notificationChannelDescriptors/list to get the list of valid values such as \"email\", \"slack\", etc...","description_kind":"plain","optional":true},"user_labels":{"type":["map","string"],"description":"User-supplied key/value data that does not need to conform to the corresponding NotificationChannelDescriptor's schema, unlike the labels field. This field is intended to be used for organizing and identifying the NotificationChannel objects.The field can contain up to 64 entries. Each key and value is limited to 63 Unicode characters or 128 bytes, whichever is smaller. Labels and values can contain only lowercase letters, numerals, underscores, and dashes. Keys must begin with a letter.","description_kind":"plain","optional":true},"verification_status":{"type":"string","description":"Indicates whether this channel has been verified or not. On a ListNotificationChannels or GetNotificationChannel operation, this field is expected to be populated.If the value is UNVERIFIED, then it indicates that the channel is non-functioning (it both requires verification and lacks verification); otherwise, it is assumed that the channel works.If the channel is neither VERIFIED nor UNVERIFIED, it implies that the channel is of a type that does not require verification or that this specific channel has been exempted from verification because it was created prior to verification being required for channels of this type.This field cannot be modified using a standard UpdateNotificationChannel operation. To change the value of this field, you must call VerifyNotificationChannel.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_monitoring_uptime_check_ips":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"uptime_check_ips":{"type":["list",["object",{"ip_address":"string","location":"string","region":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_netblock_ip_ranges":{"version":0,"block":{"attributes":{"cidr_blocks":{"type":["list","string"],"description_kind":"plain","computed":true},"cidr_blocks_ipv4":{"type":["list","string"],"description_kind":"plain","computed":true},"cidr_blocks_ipv6":{"type":["list","string"],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"range_type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_organization":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description_kind":"plain","computed":true},"directory_customer_id":{"type":"string","description_kind":"plain","computed":true},"domain":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifecycle_state":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"org_id":{"type":"string","description_kind":"plain","computed":true},"organization":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_privateca_certificate_authority":{"version":0,"block":{"attributes":{"access_urls":{"type":["list",["object",{"ca_certificate_access_url":"string","crl_access_urls":["list","string"]}]],"description":"URLs for accessing content published by this CA, such as the CA certificate and CRLs.","description_kind":"plain","computed":true},"certificate_authority_id":{"type":"string","description":"The user provided Resource ID for this Certificate Authority.","description_kind":"plain","optional":true},"config":{"type":["list",["object",{"subject_config":["list",["object",{"subject":["list",["object",{"common_name":"string","country_code":"string","locality":"string","organization":"string","organizational_unit":"string","postal_code":"string","province":"string","street_address":"string"}]],"subject_alt_name":["list",["object",{"dns_names":["list","string"],"email_addresses":["list","string"],"ip_addresses":["list","string"],"uris":["list","string"]}]]}]],"x509_config":["list",["object",{"additional_extensions":["list",["object",{"critical":"bool","object_id":["list",["object",{"object_id_path":["list","number"]}]],"value":"string"}]],"aia_ocsp_servers":["list","string"],"ca_options":["list",["object",{"is_ca":"bool","max_issuer_path_length":"number","non_ca":"bool","zero_max_issuer_path_length":"bool"}]],"key_usage":["list",["object",{"base_key_usage":["list",["object",{"cert_sign":"bool","content_commitment":"bool","crl_sign":"bool","data_encipherment":"bool","decipher_only":"bool","digital_signature":"bool","encipher_only":"bool","key_agreement":"bool","key_encipherment":"bool"}]],"extended_key_usage":["list",["object",{"client_auth":"bool","code_signing":"bool","email_protection":"bool","ocsp_signing":"bool","server_auth":"bool","time_stamping":"bool"}]],"unknown_extended_key_usages":["list",["object",{"object_id_path":["list","number"]}]]}]],"policy_ids":["list",["object",{"object_id_path":["list","number"]}]]}]]}]],"description":"The config used to create a self-signed X.509 certificate or CSR.","description_kind":"plain","computed":true},"create_time":{"type":"string","description":"The time at which this CertificateAuthority was created.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine\nfractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"gcs_bucket":{"type":"string","description":"The name of a Cloud Storage bucket where this CertificateAuthority will publish content,\nsuch as the CA certificate and CRLs. This must be a bucket name, without any prefixes\n(such as 'gs://') or suffixes (such as '.googleapis.com'). For example, to use a bucket named\nmy-bucket, you would simply specify 'my-bucket'. If not specified, a managed bucket will be\ncreated.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ignore_active_certificates_on_deletion":{"type":"bool","description":"This field allows the CA to be deleted even if the CA has active certs. Active certs include both unrevoked and unexpired certs.\nUse with care. Defaults to 'false'.","description_kind":"plain","computed":true},"key_spec":{"type":["list",["object",{"algorithm":"string","cloud_kms_key_version":"string"}]],"description":"Used when issuing certificates for this CertificateAuthority. If this CertificateAuthority\nis a self-signed CertificateAuthority, this key is also used to sign the self-signed CA\ncertificate. Otherwise, it is used to sign a CSR.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Labels with user-defined metadata.\n\nAn object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\":\n\"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","computed":true},"lifetime":{"type":"string","description":"The desired lifetime of the CA certificate. Used to create the \"notBeforeTime\" and\n\"notAfterTime\" fields inside an X.509 certificate. A duration in seconds with up to nine\nfractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","computed":true},"location":{"type":"string","description":"Location of the CertificateAuthority. A full list of valid locations can be found by\nrunning 'gcloud privateca locations list'.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The resource name for this CertificateAuthority in the format\nprojects/*/locations/*/certificateAuthorities/*.","description_kind":"plain","computed":true},"pem_ca_certificates":{"type":["list","string"],"description":"This CertificateAuthority's certificate chain, including the current\nCertificateAuthority's certificate. Ordered such that the root issuer is the final\nelement (consistent with RFC 5246). For a self-signed CA, this will only list the current\nCertificateAuthority's certificate.","description_kind":"plain","computed":true},"pem_csr":{"type":"string","description_kind":"plain","computed":true},"pool":{"type":"string","description":"The name of the CaPool this Certificate Authority belongs to.","description_kind":"plain","optional":true},"project":{"type":"string","description_kind":"plain","optional":true},"state":{"type":"string","description":"The State for this CertificateAuthority.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The Type of this CertificateAuthority.\n\n~\u003e **Note:** For 'SUBORDINATE' Certificate Authorities, they need to\nbe manually activated (via Cloud Console of 'gcloud') before they can\nissue certificates. Default value: \"SELF_SIGNED\" Possible values: [\"SELF_SIGNED\", \"SUBORDINATE\"]","description_kind":"plain","computed":true},"update_time":{"type":"string","description":"The time at which this CertificateAuthority was updated.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine\nfractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_project":{"version":1,"block":{"attributes":{"auto_create_network":{"type":"bool","description":"Create the 'default' network automatically. Default true. If set to false, the default network will be deleted. Note that, for quota purposes, you will still need to have 1 network slot available to create the project successfully, even if you set auto_create_network to false, since the network will exist momentarily.","description_kind":"plain","computed":true},"billing_account":{"type":"string","description":"The alphanumeric ID of the billing account this project belongs to. The user or service account performing this operation with Terraform must have Billing Account Administrator privileges (roles/billing.admin) in the organization. See Google Cloud Billing API Access Control for more details.","description_kind":"plain","computed":true},"folder_id":{"type":"string","description":"The numeric ID of the folder this project should be created under. Only one of org_id or folder_id may be specified. If the folder_id is specified, then the project is created under the specified folder. Changing this forces the project to be migrated to the newly specified folder.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to the project.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The display name of the project.","description_kind":"plain","computed":true},"number":{"type":"string","description":"The numeric identifier of the project.","description_kind":"plain","computed":true},"org_id":{"type":"string","description":"The numeric ID of the organization this project belongs to. Changing this forces a new project to be created. Only one of org_id or folder_id may be specified. If the org_id is specified then the project is created at the top level. Changing this forces the project to be migrated to the newly specified organization.","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project ID. Changing this forces a new project to be created.","description_kind":"plain","optional":true},"skip_delete":{"type":"bool","description":"If true, the Terraform resource can be deleted without deleting the Project via the Google API.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_project_organization_policy":{"version":0,"block":{"attributes":{"boolean_policy":{"type":["list",["object",{"enforced":"bool"}]],"description":"A boolean policy is a constraint that is either enforced or not.","description_kind":"plain","computed":true},"constraint":{"type":"string","description":"The name of the Constraint the Policy is configuring, for example, serviceuser.services.","description_kind":"plain","required":true},"etag":{"type":"string","description":"The etag of the organization policy. etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"list_policy":{"type":["list",["object",{"allow":["list",["object",{"all":"bool","values":["set","string"]}]],"deny":["list",["object",{"all":"bool","values":["set","string"]}]],"inherit_from_parent":"bool","suggested_value":"string"}]],"description":"A policy that can define specific values that are allowed or denied for the given constraint. It can also be used to allow or deny all values. ","description_kind":"plain","computed":true},"project":{"type":"string","description":"The project ID.","description_kind":"plain","required":true},"restore_policy":{"type":["list",["object",{"default":"bool"}]],"description":"A restore policy is a constraint to restore the default policy.","description_kind":"plain","computed":true},"update_time":{"type":"string","description":"The timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds, representing when the variable was last updated. Example: \"2016-10-09T12:33:37.578138407Z\".","description_kind":"plain","computed":true},"version":{"type":"number","description":"Version of the Policy. Default version is 0.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_projects":{"version":0,"block":{"attributes":{"filter":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"projects":{"type":["list",["object",{"create_time":"string","labels":["map","string"],"lifecycle_state":"string","name":"string","number":"string","parent":["map","string"],"project_id":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_pubsub_topic":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kms_key_name":{"type":"string","description":"The resource name of the Cloud KMS CryptoKey to be used to protect access\nto messages published on this topic. Your project's PubSub service account\n('service-{{PROJECT_NUMBER}}@gcp-sa-pubsub.iam.gserviceaccount.com') must have\n'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this feature.\nThe expected format is 'projects/*/locations/*/keyRings/*/cryptoKeys/*'","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to this Topic.","description_kind":"plain","computed":true},"message_retention_duration":{"type":"string","description":"Indicates the minimum duration to retain a message after it is published\nto the topic. If this field is set, messages published to the topic in\nthe last messageRetentionDuration are always available to subscribers.\nFor instance, it allows any attached subscription to seek to a timestamp\nthat is up to messageRetentionDuration in the past. If this field is not\nset, message retention is controlled by settings on individual subscriptions.\nCannot be more than 7 days or less than 10 minutes.","description_kind":"plain","computed":true},"message_storage_policy":{"type":["list",["object",{"allowed_persistence_regions":["list","string"]}]],"description":"Policy constraining the set of Google Cloud Platform regions where\nmessages published to the topic may be stored. If not present, then no\nconstraints are in effect.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the topic.","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true},"schema_settings":{"type":["list",["object",{"encoding":"string","schema":"string"}]],"description":"Settings for validating messages published against a schema.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_redis_instance":{"version":0,"block":{"attributes":{"alternative_location_id":{"type":"string","description":"Only applicable to STANDARD_HA tier which protects the instance\nagainst zonal failures by provisioning it across two zones.\nIf provided, it must be a different zone from the one provided in\n[locationId].","description_kind":"plain","computed":true},"auth_enabled":{"type":"bool","description":"Optional. Indicates whether OSS Redis AUTH is enabled for the\ninstance. If set to \"true\" AUTH is enabled on the instance.\nDefault value is \"false\" meaning AUTH is disabled.","description_kind":"plain","computed":true},"auth_string":{"type":"string","description":"AUTH String set on the instance. This field will only be populated if auth_enabled is true.","description_kind":"plain","computed":true},"authorized_network":{"type":"string","description":"The full name of the Google Compute Engine network to which the\ninstance is connected. If left unspecified, the default network\nwill be used.","description_kind":"plain","computed":true},"connect_mode":{"type":"string","description":"The connection mode of the Redis instance. Default value: \"DIRECT_PEERING\" Possible values: [\"DIRECT_PEERING\", \"PRIVATE_SERVICE_ACCESS\"]","description_kind":"plain","computed":true},"create_time":{"type":"string","description":"The time the instance was created in RFC3339 UTC \"Zulu\" format,\naccurate to nanoseconds.","description_kind":"plain","computed":true},"current_location_id":{"type":"string","description":"The current zone where the Redis endpoint is placed.\nFor Basic Tier instances, this will always be the same as the\n[locationId] provided by the user at creation time. For Standard Tier\ninstances, this can be either [locationId] or [alternativeLocationId]\nand can change after a failover event.","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"An arbitrary and optional user-provided name for the instance.","description_kind":"plain","computed":true},"host":{"type":"string","description":"Hostname or IP address of the exposed Redis endpoint used by clients\nto connect to the service.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"Resource labels to represent user provided metadata.","description_kind":"plain","computed":true},"location_id":{"type":"string","description":"The zone where the instance will be provisioned. If not provided,\nthe service will choose a zone for the instance. For STANDARD_HA tier,\ninstances will be created across two zones for protection against\nzonal failures. If [alternativeLocationId] is also provided, it must\nbe different from [locationId].","description_kind":"plain","computed":true},"maintenance_policy":{"type":["list",["object",{"create_time":"string","description":"string","update_time":"string","weekly_maintenance_window":["list",["object",{"day":"string","duration":"string","start_time":["list",["object",{"hours":"number","minutes":"number","nanos":"number","seconds":"number"}]]}]]}]],"description":"Maintenance policy for an instance.","description_kind":"plain","computed":true},"maintenance_schedule":{"type":["list",["object",{"end_time":"string","schedule_deadline_time":"string","start_time":"string"}]],"description":"Upcoming maintenance schedule.","description_kind":"plain","computed":true},"memory_size_gb":{"type":"number","description":"Redis memory size in GiB.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The ID of the instance or a fully qualified identifier for the instance.","description_kind":"plain","required":true},"nodes":{"type":["list",["object",{"id":"string","zone":"string"}]],"description":"Output only. Info per node.","description_kind":"plain","computed":true},"persistence_iam_identity":{"type":"string","description":"Output only. Cloud IAM identity used by import / export operations\nto transfer data to/from Cloud Storage. Format is \"serviceAccount:\".\nThe value may change over time for a given instance so should be\nchecked before each import/export operation.","description_kind":"plain","computed":true},"port":{"type":"number","description":"The port number of the exposed Redis endpoint.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"read_endpoint":{"type":"string","description":"Output only. Hostname or IP address of the exposed readonly Redis endpoint. Standard tier only.\nTargets all healthy replica nodes in instance. Replication is asynchronous and replica nodes\nwill exhibit some lag behind the primary. Write requests must target 'host'.","description_kind":"plain","computed":true},"read_endpoint_port":{"type":"number","description":"Output only. The port number of the exposed readonly redis endpoint. Standard tier only. \nWrite requests should target 'port'.","description_kind":"plain","computed":true},"read_replicas_mode":{"type":"string","description":"Optional. Read replica mode. Can only be specified when trying to create the instance.\nIf not set, Memorystore Redis backend will default to READ_REPLICAS_DISABLED.\n- READ_REPLICAS_DISABLED: If disabled, read endpoint will not be provided and the \ninstance cannot scale up or down the number of replicas.\n- READ_REPLICAS_ENABLED: If enabled, read endpoint will be provided and the instance \ncan scale up and down the number of replicas. Possible values: [\"READ_REPLICAS_DISABLED\", \"READ_REPLICAS_ENABLED\"]","description_kind":"plain","computed":true},"redis_configs":{"type":["map","string"],"description":"Redis configuration parameters, according to http://redis.io/topics/config.\nPlease check Memorystore documentation for the list of supported parameters:\nhttps://cloud.google.com/memorystore/docs/redis/reference/rest/v1/projects.locations.instances#Instance.FIELDS.redis_configs","description_kind":"plain","computed":true},"redis_version":{"type":"string","description":"The version of Redis software. If not provided, latest supported\nversion will be used. Please check the API documentation linked \nat the top for the latest valid values.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The name of the Redis region of the instance.","description_kind":"plain","optional":true},"replica_count":{"type":"number","description":"Optional. The number of replica nodes. The valid range for the Standard Tier with \nread replicas enabled is [1-5] and defaults to 2. If read replicas are not enabled\nfor a Standard Tier instance, the only valid value is 1 and the default is 1. \nThe valid value for basic tier is 0 and the default is also 0.","description_kind":"plain","computed":true},"reserved_ip_range":{"type":"string","description":"The CIDR range of internal addresses that are reserved for this\ninstance. If not provided, the service will choose an unused /29\nblock, for example, 10.0.0.0/29 or 192.168.0.0/29. Ranges must be\nunique and non-overlapping with existing subnets in an authorized\nnetwork.","description_kind":"plain","computed":true},"server_ca_certs":{"type":["list",["object",{"cert":"string","create_time":"string","expire_time":"string","serial_number":"string","sha1_fingerprint":"string"}]],"description":"List of server CA certificates for the instance.","description_kind":"plain","computed":true},"tier":{"type":"string","description":"The service tier of the instance. Must be one of these values:\n\n- BASIC: standalone instance\n- STANDARD_HA: highly available primary/replica instances Default value: \"BASIC\" Possible values: [\"BASIC\", \"STANDARD_HA\"]","description_kind":"plain","computed":true},"transit_encryption_mode":{"type":"string","description":"The TLS mode of the Redis instance, If not provided, TLS is disabled for the instance.\n\n- SERVER_AUTHENTICATION: Client to Server traffic encryption enabled with server authentication Default value: \"DISABLED\" Possible values: [\"SERVER_AUTHENTICATION\", \"DISABLED\"]","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_secret_manager_secret":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description":"The time at which the Secret was created.","description_kind":"plain","computed":true},"expire_time":{"type":"string","description":"Timestamp in UTC when the Secret is scheduled to expire. This is always provided on output, regardless of what was sent on input.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"The labels assigned to this Secret.\n\nLabel keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,\nand must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}][\\p{Ll}\\p{Lo}\\p{N}_-]{0,62}\n\nLabel values must be between 0 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,\nand must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}\n\nNo more than 64 labels can be assigned to a given resource.\n\nAn object containing a list of \"key\": value pairs. Example:\n{ \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The resource name of the Secret. Format:\n'projects/{{project}}/secrets/{{secret_id}}'","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"replication":{"type":["list",["object",{"automatic":"bool","user_managed":["list",["object",{"replicas":["list",["object",{"customer_managed_encryption":["list",["object",{"kms_key_name":"string"}]],"location":"string"}]]}]]}]],"description":"The replication policy of the secret data attached to the Secret. It cannot be changed\nafter the Secret has been created.","description_kind":"plain","computed":true},"rotation":{"type":["list",["object",{"next_rotation_time":"string","rotation_period":"string"}]],"description":"The rotation time and period for a Secret. At 'next_rotation_time', Secret Manager will send a Pub/Sub notification to the topics configured on the Secret. 'topics' must be set to configure rotation.","description_kind":"plain","computed":true},"secret_id":{"type":"string","description":"This must be unique within the project.","description_kind":"plain","required":true},"topics":{"type":["list",["object",{"name":"string"}]],"description":"A list of up to 10 Pub/Sub topics to which messages are published when control plane operations are called on the secret or its versions.","description_kind":"plain","computed":true},"ttl":{"type":"string","description":"The TTL for the Secret.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_secret_manager_secret_version":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description_kind":"plain","computed":true},"destroy_time":{"type":"string","description_kind":"plain","computed":true},"enabled":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secret":{"type":"string","description_kind":"plain","required":true},"secret_data":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"version":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_service_account":{"version":0,"block":{"attributes":{"account_id":{"type":"string","description_kind":"plain","required":true},"display_name":{"type":"string","description_kind":"plain","computed":true},"email":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"unique_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_service_account_access_token":{"version":0,"block":{"attributes":{"access_token":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"delegates":{"type":["set","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifetime":{"type":"string","description_kind":"plain","optional":true},"scopes":{"type":["set","string"],"description_kind":"plain","required":true},"target_service_account":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_service_account_id_token":{"version":0,"block":{"attributes":{"delegates":{"type":["set","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id_token":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"include_email":{"type":"bool","description_kind":"plain","optional":true},"target_audience":{"type":"string","description_kind":"plain","required":true},"target_service_account":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_service_account_key":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_algorithm":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true},"public_key":{"type":"string","description_kind":"plain","computed":true},"public_key_type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_service_networking_peered_dns_domain":{"version":0,"block":{"attributes":{"dns_suffix":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"network":{"type":"string","description_kind":"plain","required":true},"parent":{"type":"string","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","required":true},"service":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"google_sourcerepo_repository":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Resource name of the repository, of the form '{{repo}}'.\nThe repo name may contain slashes. eg, 'name/with/slash'","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true},"pubsub_configs":{"type":["set",["object",{"message_format":"string","service_account_email":"string","topic":"string"}]],"description":"How this repository publishes a change in the repository through Cloud Pub/Sub. \nKeyed by the topic names.","description_kind":"plain","computed":true},"size":{"type":"number","description":"The disk usage of the repo, in bytes.","description_kind":"plain","computed":true},"url":{"type":"string","description":"URL to clone the repository from Google Cloud Source Repositories.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_spanner_instance":{"version":0,"block":{"attributes":{"config":{"type":"string","description":"The name of the instance's configuration (similar but not\nquite the same as a region) which defines the geographic placement and\nreplication of your databases in this instance. It determines where your data\nis stored. Values are typically of the form 'regional-europe-west1' , 'us-central' etc.\nIn order to obtain a valid list please consult the\n[Configuration section of the docs](https://cloud.google.com/spanner/docs/instances).","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"The descriptive name for this instance as it appears in UIs. Must be\nunique per project and between 4 and 30 characters in length.","description_kind":"plain","optional":true},"force_destroy":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"An object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.","description_kind":"plain","computed":true},"name":{"type":"string","description":"A unique identifier for the instance, which cannot be changed after\nthe instance is created. The name must be between 6 and 30 characters\nin length.\n\n\nIf not provided, a random string starting with 'tf-' will be selected.","description_kind":"plain","required":true},"num_nodes":{"type":"number","description":"The number of nodes allocated to this instance. Exactly one of either node_count or processing_units\nmust be present in terraform.","description_kind":"plain","computed":true},"processing_units":{"type":"number","description":"The number of processing units allocated to this instance. Exactly one of processing_units \nor node_count must be present in terraform.","description_kind":"plain","computed":true},"project":{"type":"string","description_kind":"plain","optional":true},"state":{"type":"string","description":"Instance status: 'CREATING' or 'READY'.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_sql_backup_run":{"version":0,"block":{"attributes":{"backup_id":{"type":"number","description":"The identifier for this backup run. Unique only for a specific Cloud SQL instance. If left empty and multiple backups exist for the instance, most_recent must be set to true.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description":"Name of the database instance.","description_kind":"plain","required":true},"location":{"type":"string","description":"Location of the backups.","description_kind":"plain","computed":true},"most_recent":{"type":"bool","description":"Toggles use of the most recent backup run if multiple backups exist for a Cloud SQL instance.","description_kind":"plain","optional":true},"start_time":{"type":"string","description":"The time the backup operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of this run.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_sql_ca_certs":{"version":0,"block":{"attributes":{"active_version":{"type":"string","description_kind":"plain","computed":true},"certs":{"type":["list",["object",{"cert":"string","common_name":"string","create_time":"string","expiration_time":"string","sha1_fingerprint":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance":{"type":"string","description_kind":"plain","required":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"google_sql_database_instance":{"version":0,"block":{"attributes":{"clone":{"type":["list",["object",{"allocated_ip_range":"string","point_in_time":"string","source_instance_name":"string"}]],"description":"Configuration for creating a new instance as a clone of another instance.","description_kind":"plain","computed":true},"connection_name":{"type":"string","description":"The connection name of the instance to be used in connection strings. For example, when connecting with Cloud SQL Proxy.","description_kind":"plain","computed":true},"database_version":{"type":"string","description":"The MySQL, PostgreSQL or SQL Server (beta) version to use. Supported values include MYSQL_5_6, MYSQL_5_7, MYSQL_8_0, POSTGRES_9_6, POSTGRES_10, POSTGRES_11, POSTGRES_12, POSTGRES_13, SQLSERVER_2017_STANDARD, SQLSERVER_2017_ENTERPRISE, SQLSERVER_2017_EXPRESS, SQLSERVER_2017_WEB. Database Version Policies includes an up-to-date reference of supported versions.","description_kind":"plain","computed":true},"deletion_protection":{"type":"bool","description":"Used to block Terraform from deleting a SQL Instance.","description_kind":"plain","computed":true},"first_ip_address":{"type":"string","description":"The first IPv4 address of any type assigned. This is to support accessing the first address in the list in a terraform output when the resource is configured with a count.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":["list",["object",{"ip_address":"string","time_to_retire":"string","type":"string"}]],"description_kind":"plain","computed":true},"master_instance_name":{"type":"string","description":"The name of the instance that will act as the master in the replication setup. Note, this requires the master to have binary_log_enabled set, as well as existing backups.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the instance. If the name is left blank, Terraform will randomly generate one when the instance is first created. This is done because after a name is used, it cannot be reused for up to one week.","description_kind":"plain","required":true},"private_ip_address":{"type":"string","description":"IPv4 address assigned. This is a workaround for an issue fixed in Terraform 0.12 but also provides a convenient way to access an IP of a specific type without performing filtering in a Terraform config.","description_kind":"plain","computed":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","optional":true},"public_ip_address":{"type":"string","description":"IPv4 address assigned. This is a workaround for an issue fixed in Terraform 0.12 but also provides a convenient way to access an IP of a specific type without performing filtering in a Terraform config.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region the instance will sit in. Note, Cloud SQL is not available in all regions. A valid region must be provided to use this resource. If a region is not provided in the resource definition, the provider region will be used instead, but this will be an apply-time error for instances if the provider region is not supported with Cloud SQL. If you choose not to provide the region argument for this resource, make sure you understand this.","description_kind":"plain","computed":true},"replica_configuration":{"type":["list",["object",{"ca_certificate":"string","client_certificate":"string","client_key":"string","connect_retry_interval":"number","dump_file_path":"string","failover_target":"bool","master_heartbeat_period":"number","password":"string","ssl_cipher":"string","username":"string","verify_server_certificate":"bool"}]],"description":"The configuration for replication.","description_kind":"plain","computed":true},"restore_backup_context":{"type":["list",["object",{"backup_run_id":"number","instance_id":"string","project":"string"}]],"description_kind":"plain","computed":true},"root_password":{"type":"string","description":"Initial root password. Required for MS SQL Server, ignored by MySQL and PostgreSQL.","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"server_ca_cert":{"type":["list",["object",{"cert":"string","common_name":"string","create_time":"string","expiration_time":"string","sha1_fingerprint":"string"}]],"description_kind":"plain","computed":true},"service_account_email_address":{"type":"string","description":"The service account email address assigned to the instance.","description_kind":"plain","computed":true},"settings":{"type":["list",["object",{"activation_policy":"string","availability_type":"string","backup_configuration":["list",["object",{"backup_retention_settings":["list",["object",{"retained_backups":"number","retention_unit":"string"}]],"binary_log_enabled":"bool","enabled":"bool","location":"string","point_in_time_recovery_enabled":"bool","start_time":"string","transaction_log_retention_days":"number"}]],"collation":"string","database_flags":["list",["object",{"name":"string","value":"string"}]],"disk_autoresize":"bool","disk_autoresize_limit":"number","disk_size":"number","disk_type":"string","insights_config":["list",["object",{"query_insights_enabled":"bool","query_string_length":"number","record_application_tags":"bool","record_client_address":"bool"}]],"ip_configuration":["list",["object",{"allocated_ip_range":"string","authorized_networks":["set",["object",{"expiration_time":"string","name":"string","value":"string"}]],"ipv4_enabled":"bool","private_network":"string","require_ssl":"bool"}]],"location_preference":["list",["object",{"follow_gae_application":"string","zone":"string"}]],"maintenance_window":["list",["object",{"day":"number","hour":"number","update_track":"string"}]],"pricing_plan":"string","tier":"string","user_labels":["map","string"],"version":"number"}]],"description":"The settings to use for the database. The configuration is detailed below.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_storage_bucket":{"version":0,"block":{"attributes":{"cors":{"type":["list",["object",{"max_age_seconds":"number","method":["list","string"],"origin":["list","string"],"response_header":["list","string"]}]],"description":"The bucket's Cross-Origin Resource Sharing (CORS) configuration.","description_kind":"plain","computed":true},"default_event_based_hold":{"type":"bool","description":"Whether or not to automatically apply an eventBasedHold to new objects added to the bucket.","description_kind":"plain","computed":true},"encryption":{"type":["list",["object",{"default_kms_key_name":"string"}]],"description":"The bucket's encryption configuration.","description_kind":"plain","computed":true},"force_destroy":{"type":"bool","description":"When deleting a bucket, this boolean option will delete all contained objects. If you try to delete a bucket that contains objects, Terraform will fail that run.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description":"A set of key/value label pairs to assign to the bucket.","description_kind":"plain","computed":true},"lifecycle_rule":{"type":["list",["object",{"action":["set",["object",{"storage_class":"string","type":"string"}]],"condition":["set",["object",{"age":"number","created_before":"string","custom_time_before":"string","days_since_custom_time":"number","days_since_noncurrent_time":"number","matches_storage_class":["list","string"],"noncurrent_time_before":"string","num_newer_versions":"number","with_state":"string"}]]}]],"description":"The bucket's Lifecycle Rules configuration.","description_kind":"plain","computed":true},"location":{"type":"string","description":"The Google Cloud Storage location","description_kind":"plain","computed":true},"logging":{"type":["list",["object",{"log_bucket":"string","log_object_prefix":"string"}]],"description":"The bucket's Access \u0026 Storage Logs configuration.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the bucket.","description_kind":"plain","required":true},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it is not provided, the provider project is used.","description_kind":"plain","computed":true},"requester_pays":{"type":"bool","description":"Enables Requester Pays on a storage bucket.","description_kind":"plain","computed":true},"retention_policy":{"type":["list",["object",{"is_locked":"bool","retention_period":"number"}]],"description":"Configuration of the bucket's data retention policy for how long objects in the bucket should be retained.","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"The URI of the created resource.","description_kind":"plain","computed":true},"storage_class":{"type":"string","description":"The Storage Class of the new bucket. Supported values include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE.","description_kind":"plain","computed":true},"uniform_bucket_level_access":{"type":"bool","description":"Enables uniform bucket-level access on a bucket.","description_kind":"plain","computed":true},"url":{"type":"string","description":"The base URL of the bucket, in the format gs://\u003cbucket-name\u003e.","description_kind":"plain","computed":true},"versioning":{"type":["list",["object",{"enabled":"bool"}]],"description":"The bucket's Versioning configuration.","description_kind":"plain","computed":true},"website":{"type":["list",["object",{"main_page_suffix":"string","not_found_page":"string"}]],"description":"Configuration if the bucket acts as a website.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_storage_bucket_object":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The name of the containing bucket.","description_kind":"plain","optional":true},"cache_control":{"type":"string","description":"Cache-Control directive to specify caching behavior of object data. If omitted and object is accessible to all anonymous users, the default will be public, max-age=3600","description_kind":"plain","computed":true},"content":{"type":"string","description":"Data as string to be uploaded. Must be defined if source is not. Note: The content field is marked as sensitive. To view the raw contents of the object, please define an output.","description_kind":"plain","computed":true},"content_disposition":{"type":"string","description":"Content-Disposition of the object data.","description_kind":"plain","computed":true},"content_encoding":{"type":"string","description":"Content-Encoding of the object data.","description_kind":"plain","computed":true},"content_language":{"type":"string","description":"Content-Language of the object data.","description_kind":"plain","computed":true},"content_type":{"type":"string","description":"Content-Type of the object data. Defaults to \"application/octet-stream\" or \"text/plain; charset=utf-8\".","description_kind":"plain","computed":true},"crc32c":{"type":"string","description":"Base 64 CRC32 hash of the uploaded data.","description_kind":"plain","computed":true},"customer_encryption":{"type":["list",["object",{"encryption_algorithm":"string","encryption_key":"string"}]],"description":"Encryption key; encoded using base64.","description_kind":"plain","computed":true},"detect_md5hash":{"type":"string","description_kind":"plain","computed":true},"event_based_hold":{"type":"bool","description":"Whether an object is under event-based hold. Event-based hold is a way to retain objects until an event occurs, which is signified by the hold's release (i.e. this value is set to false). After being released (set to false), such objects will be subject to bucket-level retention (if any).","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kms_key_name":{"type":"string","description":"Resource name of the Cloud KMS key that will be used to encrypt the object. Overrides the object metadata's kmsKeyName value, if any.","description_kind":"plain","computed":true},"md5hash":{"type":"string","description":"Base 64 MD5 hash of the uploaded data.","description_kind":"plain","computed":true},"media_link":{"type":"string","description":"A url reference to download this object.","description_kind":"plain","computed":true},"metadata":{"type":["map","string"],"description":"User-provided metadata, in key/value pairs.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the object. If you're interpolating the name of this object, see output_name instead.","description_kind":"plain","optional":true},"output_name":{"type":"string","description":"The name of the object. Use this field in interpolations with google_storage_object_acl to recreate google_storage_object_acl resources when your google_storage_bucket_object is recreated.","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"A url reference to this object.","description_kind":"plain","computed":true},"source":{"type":"string","description":"A path to the data you want to upload. Must be defined if content is not.","description_kind":"plain","computed":true},"storage_class":{"type":"string","description":"The StorageClass of the new bucket object. Supported values include: MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE. If not provided, this defaults to the bucket's default storage class or to a standard class.","description_kind":"plain","computed":true},"temporary_hold":{"type":"bool","description":"Whether an object is under temporary hold. While this flag is set to true, the object is protected against deletion and overwrites.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_storage_bucket_object_content":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The name of the containing bucket.","description_kind":"plain","required":true},"cache_control":{"type":"string","description":"Cache-Control directive to specify caching behavior of object data. If omitted and object is accessible to all anonymous users, the default will be public, max-age=3600","description_kind":"plain","computed":true},"content":{"type":"string","description":"Data as string to be uploaded. Must be defined if source is not. Note: The content field is marked as sensitive. To view the raw contents of the object, please define an output.","description_kind":"plain","optional":true},"content_disposition":{"type":"string","description":"Content-Disposition of the object data.","description_kind":"plain","computed":true},"content_encoding":{"type":"string","description":"Content-Encoding of the object data.","description_kind":"plain","computed":true},"content_language":{"type":"string","description":"Content-Language of the object data.","description_kind":"plain","computed":true},"content_type":{"type":"string","description":"Content-Type of the object data. Defaults to \"application/octet-stream\" or \"text/plain; charset=utf-8\".","description_kind":"plain","computed":true},"crc32c":{"type":"string","description":"Base 64 CRC32 hash of the uploaded data.","description_kind":"plain","computed":true},"customer_encryption":{"type":["list",["object",{"encryption_algorithm":"string","encryption_key":"string"}]],"description":"Encryption key; encoded using base64.","description_kind":"plain","computed":true},"detect_md5hash":{"type":"string","description_kind":"plain","computed":true},"event_based_hold":{"type":"bool","description":"Whether an object is under event-based hold. Event-based hold is a way to retain objects until an event occurs, which is signified by the hold's release (i.e. this value is set to false). After being released (set to false), such objects will be subject to bucket-level retention (if any).","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kms_key_name":{"type":"string","description":"Resource name of the Cloud KMS key that will be used to encrypt the object. Overrides the object metadata's kmsKeyName value, if any.","description_kind":"plain","computed":true},"md5hash":{"type":"string","description":"Base 64 MD5 hash of the uploaded data.","description_kind":"plain","computed":true},"media_link":{"type":"string","description":"A url reference to download this object.","description_kind":"plain","computed":true},"metadata":{"type":["map","string"],"description":"User-provided metadata, in key/value pairs.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the object. If you're interpolating the name of this object, see output_name instead.","description_kind":"plain","required":true},"output_name":{"type":"string","description":"The name of the object. Use this field in interpolations with google_storage_object_acl to recreate google_storage_object_acl resources when your google_storage_bucket_object is recreated.","description_kind":"plain","computed":true},"self_link":{"type":"string","description":"A url reference to this object.","description_kind":"plain","computed":true},"source":{"type":"string","description":"A path to the data you want to upload. Must be defined if content is not.","description_kind":"plain","computed":true},"storage_class":{"type":"string","description":"The StorageClass of the new bucket object. Supported values include: MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE. If not provided, this defaults to the bucket's default storage class or to a standard class.","description_kind":"plain","computed":true},"temporary_hold":{"type":"bool","description":"Whether an object is under temporary hold. While this flag is set to true, the object is protected against deletion and overwrites.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_storage_object_signed_url":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"content_md5":{"type":"string","description_kind":"plain","optional":true},"content_type":{"type":"string","description_kind":"plain","optional":true},"credentials":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"duration":{"type":"string","description_kind":"plain","optional":true},"extension_headers":{"type":["map","string"],"description_kind":"plain","optional":true},"http_method":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"path":{"type":"string","description_kind":"plain","required":true},"signed_url":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_storage_project_service_account":{"version":0,"block":{"attributes":{"email_address":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"user_project":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"google_storage_transfer_project_service_account":{"version":0,"block":{"attributes":{"email":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"subject_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"google_tpu_tensorflow_versions":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project":{"type":"string","description_kind":"plain","optional":true,"computed":true},"versions":{"type":["list","string"],"description_kind":"plain","computed":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}}}}}} diff --git a/config/storage/config.go b/config/storage/config.go index 56a0fb82..0086bfb0 100644 --- a/config/storage/config.go +++ b/config/storage/config.go @@ -3,6 +3,7 @@ package storage import ( "context" "path/filepath" + "time" "github.com/crossplane/terrajet/pkg/config" @@ -28,5 +29,13 @@ func Configure(p *config.Provider) { project, err := common.GetField(providerConfig, common.KeyProject) return filepath.Join(project, externalName), err } + // Note(turkenh): Terraform provider added retries to bucket resource + // for eventual consistency: https://github.com/hashicorp/terraform-provider-google/pull/10287 + // However, this causes refresh to keep retrying until timeout if the + // bucket does not exist indeed. This causes the initial observe call to + // hang on until timeout. We configure read timeout to a relatively + // smaller value as a workaround/solution. + // Related issue: https://github.com/crossplane-contrib/provider-jet-gcp/issues/12 + r.OperationTimeouts.Read = 1 * time.Minute }) } diff --git a/examples/storage/bucket.yaml b/examples/storage/bucket.yaml index ec632cb3..f1720b2c 100644 --- a/examples/storage/bucket.yaml +++ b/examples/storage/bucket.yaml @@ -6,12 +6,6 @@ metadata: # Note that this will be the actual bucket name, so it has to be globally # unique/available. crossplane.io/external-name: crossplane-example-bucket - # This annotation is a workaround for the following bug which sets - # create/read timeouts to 1 min: - # "https://github.com/crossplane-contrib/provider-jet-gcp/issues/12 - # "e2bfb730-ecaa-11e6-8f88-34363bc7c4c0" is the TimeoutKey: - # https://github.com/hashicorp/terraform-plugin-sdk/blob/112e2164c381d80e8ada3170dac9a8a5db01079a/helper/schema/resource_timeout.go#L14 - terrajet.crossplane.io/provider-meta: '{"e2bfb730-ecaa-11e6-8f88-34363bc7c4c0":{"create":60000000000,"read":60000000000}}' spec: forProvider: location: US diff --git a/go.mod b/go.mod index 125bd42d..9d3c922d 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.17 require ( github.com/crossplane/crossplane-runtime v0.15.1-0.20220315141414-988c9ba9c255 github.com/crossplane/crossplane-tools v0.0.0-20220310165030-1f43fc12793e - github.com/crossplane/terrajet v0.4.0-rc.0.0.20220421012850-4f9db892a4ae + github.com/crossplane/terrajet v0.4.0-rc.0.0.20220506071911-3b673dcc0b59 github.com/hashicorp/terraform-plugin-sdk/v2 v2.7.0 github.com/pkg/errors v0.9.1 gopkg.in/alecthomas/kingpin.v2 v2.2.6 diff --git a/go.sum b/go.sum index 02ff2c62..775bc7bf 100644 --- a/go.sum +++ b/go.sum @@ -156,8 +156,8 @@ github.com/crossplane/crossplane-runtime v0.15.1-0.20220315141414-988c9ba9c255 h github.com/crossplane/crossplane-runtime v0.15.1-0.20220315141414-988c9ba9c255/go.mod h1:IPT3HTsovwmbw3i+SdsOyaC3r3b7TW+otBMmZsHLnSU= github.com/crossplane/crossplane-tools v0.0.0-20220310165030-1f43fc12793e h1:HqLaMji3FRPwEBA5P6twPz0HbE6no0XOnByLU5O1noM= github.com/crossplane/crossplane-tools v0.0.0-20220310165030-1f43fc12793e/go.mod h1:xFf30hwHd5n0/a0D4ZomId8nxQTTjE0Hc1j4/rWxefc= -github.com/crossplane/terrajet v0.4.0-rc.0.0.20220421012850-4f9db892a4ae h1:16m4myvQjkUxx8Rai4CePbrjKZnivLPD8VQ++J8HRyU= -github.com/crossplane/terrajet v0.4.0-rc.0.0.20220421012850-4f9db892a4ae/go.mod h1:PY1geRNxxNXs2RFhGC36N7dDu3wZPhUZmAk6c4gQxAI= +github.com/crossplane/terrajet v0.4.0-rc.0.0.20220506071911-3b673dcc0b59 h1:X7rZwJJ0L6wq5vh1RZdX0SE1sTBgXmxgKUgVf+4foEI= +github.com/crossplane/terrajet v0.4.0-rc.0.0.20220506071911-3b673dcc0b59/go.mod h1:PY1geRNxxNXs2RFhGC36N7dDu3wZPhUZmAk6c4gQxAI= github.com/dave/jennifer v1.4.1 h1:XyqG6cn5RQsTj3qlWQTKlRGAyrTcsk1kUmWdZBzRjDw= github.com/dave/jennifer v1.4.1/go.mod h1:7jEdnm+qBcxl8PC0zyp7vxcpSRnzXSt9r39tpTVGlwA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= diff --git a/package/crds/compute.gcp.jet.crossplane.io_addresses.yaml b/package/crds/compute.gcp.jet.crossplane.io_addresses.yaml index 0e716ba5..976cb9c2 100644 --- a/package/crds/compute.gcp.jet.crossplane.io_addresses.yaml +++ b/package/crds/compute.gcp.jet.crossplane.io_addresses.yaml @@ -67,7 +67,7 @@ spec: description: The static external IP address represented by this resource. Only IPv4 is supported. An address may only be specified for INTERNAL address types. The IP address must be inside the - specified subnetwork, if any. + specified subnetwork, if any. Set by the API if undefined. type: string addressType: description: 'The type of address to reserve. Default value: "EXTERNAL" diff --git a/package/crds/compute.gcp.jet.crossplane.io_firewalls.yaml b/package/crds/compute.gcp.jet.crossplane.io_firewalls.yaml index efe442aa..4986e500 100644 --- a/package/crds/compute.gcp.jet.crossplane.io_firewalls.yaml +++ b/package/crds/compute.gcp.jet.crossplane.io_firewalls.yaml @@ -212,7 +212,8 @@ spec: within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is - supported. + supported. For INGRESS traffic, one of 'source_ranges', 'source_tags' + or 'source_service_accounts' is required. items: type: string type: array @@ -228,7 +229,9 @@ spec: to an instance with service account listed in sourceServiceAccount. The connection does not need to match both properties for the firewall to apply. sourceServiceAccounts cannot be used at the - same time as sourceTags or targetTags. + same time as sourceTags or targetTags. For INGRESS traffic, + one of 'source_ranges', 'source_tags' or 'source_service_accounts' + is required. items: type: string type: array @@ -242,7 +245,8 @@ spec: will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties - for the firewall to apply. + for the firewall to apply. For INGRESS traffic, one of 'source_ranges', + 'source_tags' or 'source_service_accounts' is required. items: type: string type: array diff --git a/package/crds/compute.gcp.jet.crossplane.io_instances.yaml b/package/crds/compute.gcp.jet.crossplane.io_instances.yaml index 6539d45f..f902cb72 100644 --- a/package/crds/compute.gcp.jet.crossplane.io_instances.yaml +++ b/package/crds/compute.gcp.jet.crossplane.io_instances.yaml @@ -369,6 +369,11 @@ spec: description: The type of vNIC to be used on this interface. Possible values:GVNIC, VIRTIO_NET type: string + queueCount: + description: The networking queue count that's specified + by users for the network interface. Both Rx and Tx queues + will be set to this number. It will be empty if not specified. + type: number stackType: description: The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If diff --git a/package/crds/compute.gcp.jet.crossplane.io_routers.yaml b/package/crds/compute.gcp.jet.crossplane.io_routers.yaml index 1282ee3f..3b76151e 100644 --- a/package/crds/compute.gcp.jet.crossplane.io_routers.yaml +++ b/package/crds/compute.gcp.jet.crossplane.io_routers.yaml @@ -110,6 +110,18 @@ spec: tunnels that link to this router will have the same local ASN. type: number + keepaliveInterval: + description: The interval in seconds between BGP keepalive + messages that are sent to the peer. Hold time is three + times the interval at which keepalive messages are sent, + and the hold time is the maximum number of seconds allowed + to elapse between successive keepalive messages that BGP + receives from a peer. BGP will use the smaller of either + the local hold time value or the peer's hold time value + as the hold time for the BGP connection between the two + peers. If set, this value must be between 20 and 60. The + default is 20. + type: number required: - asn type: object diff --git a/package/crds/compute.gcp.jet.crossplane.io_subnetworks.yaml b/package/crds/compute.gcp.jet.crossplane.io_subnetworks.yaml index 10fcc92f..f8809f5d 100644 --- a/package/crds/compute.gcp.jet.crossplane.io_subnetworks.yaml +++ b/package/crds/compute.gcp.jet.crossplane.io_subnetworks.yaml @@ -169,12 +169,11 @@ spec: project: type: string purpose: - description: "The purpose of the resource. This field can be either - PRIVATE or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose + description: "The purpose of the resource. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork - that is reserved for Internal HTTP(S) Load Balancing. If unspecified, - the purpose defaults to PRIVATE. \n If set to INTERNAL_HTTPS_LOAD_BALANCER - you must also set 'role'." + that is reserved for Internal HTTP(S) Load Balancing. \n If + set to INTERNAL_HTTPS_LOAD_BALANCER you must also set the 'role' + field." type: string region: description: The GCP region for this subnetwork. diff --git a/package/crds/container.gcp.jet.crossplane.io_clusters.yaml b/package/crds/container.gcp.jet.crossplane.io_clusters.yaml index 5432b6c4..16ca74db 100644 --- a/package/crds/container.gcp.jet.crossplane.io_clusters.yaml +++ b/package/crds/container.gcp.jet.crossplane.io_clusters.yaml @@ -80,6 +80,18 @@ spec: - disabled type: object type: array + gcpFilestoreCsiDriverConfig: + description: The status of the Filestore CSI driver addon, + which allows the usage of filestore instance as volumes. + Defaults to disabled; set enabled = true to enable. + items: + properties: + enabled: + type: boolean + required: + - enabled + type: object + type: array horizontalPodAutoscaling: description: The status of the Horizontal Pod Autoscaling addon, which increases or decreases the number of replica @@ -153,6 +165,10 @@ spec: NAP. items: properties: + imageType: + description: The default image type used by NAP once + a new node pool is being created. + type: string oauthScopes: description: Scopes that are used by NAP when creating node pools. @@ -205,6 +221,21 @@ spec: This field will only work for routes-based clusters, where ip_allocation_policy is not defined. type: string + confidentialNodes: + description: 'Configuration for the confidential nodes feature, + which makes nodes run on confidential VMs. Warning: This configuration + can''t be changed (or added/removed) after cluster creation + without deleting and recreating the entire cluster.' + items: + properties: + enabled: + description: Whether Confidential Nodes feature is enabled + for all nodes in this cluster. + type: boolean + required: + - enabled + type: object + type: array databaseEncryption: description: 'Application-layer Secrets Encryption settings. The object format is {state = string, key_name = string}. Valid @@ -249,6 +280,21 @@ spec: description: description: Description of the cluster. type: string + dnsConfig: + description: Configuration for Cloud DNS for Kubernetes Engine. + items: + properties: + clusterDns: + description: Which in-cluster DNS provider should be used. + type: string + clusterDnsDomain: + description: The suffix used for all cluster service records. + type: string + clusterDnsScope: + description: The scope of access to cluster DNS records. + type: string + type: object + type: array enableAutopilot: description: Enable Autopilot for this cluster. type: boolean @@ -518,6 +564,11 @@ spec: description: The configuration of the nodepool items: properties: + bootDiskKmsKey: + description: The Customer Managed Encryption Key used to + encrypt the boot disk attached to each node in the node + pool. + type: string diskSizeGb: description: Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. @@ -525,6 +576,17 @@ spec: diskType: description: Type of the disk attached to each node. type: string + gcfsConfig: + description: GCFS configuration for this node. + items: + properties: + enabled: + description: Whether or not GCFS is enabled + type: boolean + required: + - enabled + type: object + type: array guestAccelerator: description: List of the type and count of accelerator cards attached to the instance. @@ -538,6 +600,17 @@ spec: type: string type: object type: array + gvnic: + description: Enable or disable gvnic in the node pool. + items: + properties: + enabled: + description: Whether or not gvnic is enabled + type: boolean + required: + - enabled + type: object + type: array imageType: description: The image type to use for this node. Note that for a given image type, the latest version of it will @@ -570,6 +643,11 @@ spec: The instance may be scheduled on the specified or newer CPU platform. type: string + nodeGroup: + description: Setting this field will assign instances of + this pool to run on the specified node group. This is + useful for running workloads on sole tenant nodes. + type: string oauthScopes: description: The set of Google API scopes to be made available on all of the node VMs. @@ -708,6 +786,11 @@ spec: description: The configuration of the nodepool items: properties: + bootDiskKmsKey: + description: The Customer Managed Encryption Key used + to encrypt the boot disk attached to each node in + the node pool. + type: string diskSizeGb: description: Size of the disk attached to each node, specified in GB. The smallest allowed disk size @@ -716,6 +799,17 @@ spec: diskType: description: Type of the disk attached to each node. type: string + gcfsConfig: + description: GCFS configuration for this node. + items: + properties: + enabled: + description: Whether or not GCFS is enabled + type: boolean + required: + - enabled + type: object + type: array guestAccelerator: description: List of the type and count of accelerator cards attached to the instance. @@ -729,6 +823,17 @@ spec: type: string type: object type: array + gvnic: + description: Enable or disable gvnic in the node pool. + items: + properties: + enabled: + description: Whether or not gvnic is enabled + type: boolean + required: + - enabled + type: object + type: array imageType: description: The image type to use for this node. Note that for a given image type, the latest version @@ -761,6 +866,12 @@ spec: instance. The instance may be scheduled on the specified or newer CPU platform. type: string + nodeGroup: + description: Setting this field will assign instances + of this pool to run on the specified node group. + This is useful for running workloads on sole tenant + nodes. + type: string oauthScopes: description: The set of Google API scopes to be made available on all of the node VMs. diff --git a/package/crds/container.gcp.jet.crossplane.io_nodepools.yaml b/package/crds/container.gcp.jet.crossplane.io_nodepools.yaml index 185b6400..0f3f5119 100644 --- a/package/crds/container.gcp.jet.crossplane.io_nodepools.yaml +++ b/package/crds/container.gcp.jet.crossplane.io_nodepools.yaml @@ -139,6 +139,11 @@ spec: description: The configuration of the nodepool items: properties: + bootDiskKmsKey: + description: The Customer Managed Encryption Key used to + encrypt the boot disk attached to each node in the node + pool. + type: string diskSizeGb: description: Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. @@ -146,6 +151,17 @@ spec: diskType: description: Type of the disk attached to each node. type: string + gcfsConfig: + description: GCFS configuration for this node. + items: + properties: + enabled: + description: Whether or not GCFS is enabled + type: boolean + required: + - enabled + type: object + type: array guestAccelerator: description: List of the type and count of accelerator cards attached to the instance. @@ -159,6 +175,17 @@ spec: type: string type: object type: array + gvnic: + description: Enable or disable gvnic in the node pool. + items: + properties: + enabled: + description: Whether or not gvnic is enabled + type: boolean + required: + - enabled + type: object + type: array imageType: description: The image type to use for this node. Note that for a given image type, the latest version of it will @@ -191,6 +218,11 @@ spec: The instance may be scheduled on the specified or newer CPU platform. type: string + nodeGroup: + description: Setting this field will assign instances of + this pool to run on the specified node group. This is + useful for running workloads on sole tenant nodes. + type: string oauthScopes: description: The set of Google API scopes to be made available on all of the node VMs. diff --git a/package/crds/monitoring.gcp.jet.crossplane.io_alertpolicies.yaml b/package/crds/monitoring.gcp.jet.crossplane.io_alertpolicies.yaml index 6112545c..37b40c6f 100644 --- a/package/crds/monitoring.gcp.jet.crossplane.io_alertpolicies.yaml +++ b/package/crds/monitoring.gcp.jet.crossplane.io_alertpolicies.yaml @@ -63,6 +63,28 @@ spec: type: string forProvider: properties: + alertStrategy: + description: Control over how this alert policy's notification + channels are notified. + items: + properties: + autoClose: + description: If an alert policy that was active has no data + for this long, any open incidents will close. + type: string + notificationRateLimit: + description: Required for alert policies with a LogMatch + condition. This limit is not implemented for alert policies + that are not log-based. + items: + properties: + period: + description: Not more than one notification per period. + type: string + type: object + type: array + type: object + type: array combiner: description: 'How to combine the results of multiple conditions to determine if an incident should be opened. Possible values: @@ -209,6 +231,32 @@ spec: - duration type: object type: array + conditionMatchedLog: + description: A condition that checks for log messages matching + given constraints. If set, no other conditions can be + present. + items: + properties: + filter: + description: A logs-based filter. + type: string + labelExtractors: + additionalProperties: + type: string + description: A map from a label key to an extractor + expression, which is used to extract the value for + this label key. Each entry in this map is a specification + for how data should be extracted from log entries + that match filter. Each combination of extracted + values is treated as a separate rule for the purposes + of triggering notifications. Label keys and corresponding + values can be used in notifications generated by + this condition. + type: object + required: + - filter + type: object + type: array conditionMonitoringQueryLanguage: description: A Monitoring Query Language query that outputs a boolean stream diff --git a/package/crds/monitoring.gcp.jet.crossplane.io_uptimecheckconfigs.yaml b/package/crds/monitoring.gcp.jet.crossplane.io_uptimecheckconfigs.yaml index 3aa16864..15a2068a 100644 --- a/package/crds/monitoring.gcp.jet.crossplane.io_uptimecheckconfigs.yaml +++ b/package/crds/monitoring.gcp.jet.crossplane.io_uptimecheckconfigs.yaml @@ -168,8 +168,9 @@ spec: path: description: The path to the page to run the check against. Will be combined with the host (specified within the MonitoredResource) - and port to construct the full URL. Optional (defaults - to "/"). + and port to construct the full URL. If the provided path + does not begin with "/", a "/" will be prepended automatically. + Optional (defaults to "/"). type: string port: description: The port to the page to run the check against. diff --git a/package/crds/redis.gcp.jet.crossplane.io_instances.yaml b/package/crds/redis.gcp.jet.crossplane.io_instances.yaml index ea64b1d2..b8434ca2 100644 --- a/package/crds/redis.gcp.jet.crossplane.io_instances.yaml +++ b/package/crds/redis.gcp.jet.crossplane.io_instances.yaml @@ -100,11 +100,85 @@ spec: for protection against zonal failures. If [alternativeLocationId] is also provided, it must be different from [locationId]. type: string + maintenancePolicy: + description: Maintenance policy for an instance. + items: + properties: + description: + description: Optional. Description of what this policy is + for. Create/Update methods return INVALID_ARGUMENT if + the length is greater than 512. + type: string + weeklyMaintenanceWindow: + description: Optional. Maintenance window that is applied + to resources covered by this policy. Minimum 1. For the + current version, the maximum number of weekly_window is + expected to be one. + items: + properties: + day: + description: "Required. The day of week that maintenance + updates occur. \n - DAY_OF_WEEK_UNSPECIFIED: The + day of the week is unspecified. - MONDAY: Monday + - TUESDAY: Tuesday - WEDNESDAY: Wednesday - THURSDAY: + Thursday - FRIDAY: Friday - SATURDAY: Saturday - + SUNDAY: Sunday Possible values: [\"DAY_OF_WEEK_UNSPECIFIED\", + \"MONDAY\", \"TUESDAY\", \"WEDNESDAY\", \"THURSDAY\", + \"FRIDAY\", \"SATURDAY\", \"SUNDAY\"]" + type: string + startTime: + description: Required. Start time of the window in + UTC time. + items: + properties: + hours: + description: Hours of day in 24 hour format. + Should be from 0 to 23. An API may choose + to allow the value "24:00:00" for scenarios + like business closing time. + type: number + minutes: + description: Minutes of hour of day. Must be + from 0 to 59. + type: number + nanos: + description: Fractions of seconds in nanoseconds. + Must be from 0 to 999,999,999. + type: number + seconds: + description: Seconds of minutes of the time. + Must normally be from 0 to 59. An API may + allow the value 60 if it allows leap-seconds. + type: number + type: object + type: array + required: + - day + - startTime + type: object + type: array + type: object + type: array + maintenanceSchedule: + description: Upcoming maintenance schedule. + items: + type: object + type: array memorySizeGb: description: Redis memory size in GiB. type: number project: type: string + readReplicasMode: + description: 'Optional. Read replica mode. Can only be specified + when trying to create the instance. If not set, Memorystore + Redis backend will default to READ_REPLICAS_DISABLED. - READ_REPLICAS_DISABLED: + If disabled, read endpoint will not be provided and the instance + cannot scale up or down the number of replicas. - READ_REPLICAS_ENABLED: + If enabled, read endpoint will be provided and the instance + can scale up and down the number of replicas. Possible values: + ["READ_REPLICAS_DISABLED", "READ_REPLICAS_ENABLED"]' + type: string redisConfigs: additionalProperties: type: string @@ -120,6 +194,14 @@ spec: region: description: The name of the Redis region of the instance. type: string + replicaCount: + description: Optional. The number of replica nodes. The valid + range for the Standard Tier with read replicas enabled is [1-5] + and defaults to 2. If read replicas are not enabled for a Standard + Tier instance, the only valid value is 1 and the default is + 1. The valid value for basic tier is 0 and the default is also + 0. + type: number reservedIpRange: description: The CIDR range of internal addresses that are reserved for this instance. If not provided, the service will choose @@ -136,7 +218,7 @@ spec: transitEncryptionMode: description: "The TLS mode of the Redis instance, If not provided, TLS is disabled for the instance. \n - SERVER_AUTHENTICATION: - Client to Server traffic encryption enabled with server authentcation + Client to Server traffic encryption enabled with server authentication Default value: \"DISABLED\" Possible values: [\"SERVER_AUTHENTICATION\", \"DISABLED\"]" type: string @@ -252,10 +334,23 @@ spec: type: string id: type: string + nodes: + items: + properties: + id: + type: string + zone: + type: string + type: object + type: array persistenceIamIdentity: type: string port: type: number + readEndpoint: + type: string + readEndpointPort: + type: number serverCaCerts: items: properties: diff --git a/package/crds/sql.gcp.jet.crossplane.io_databaseinstances.yaml b/package/crds/sql.gcp.jet.crossplane.io_databaseinstances.yaml index 5bad4d28..32bac87d 100644 --- a/package/crds/sql.gcp.jet.crossplane.io_databaseinstances.yaml +++ b/package/crds/sql.gcp.jet.crossplane.io_databaseinstances.yaml @@ -68,6 +68,15 @@ spec: of another instance. items: properties: + allocatedIpRange: + description: 'The name of the allocated ip range for the + private ip CloudSQL instance. For example: "google-managed-services-default". + If set, the cloned instance ip will be created in the + allocated range. The range name must comply with [RFC + 1035](https://tools.ietf.org/html/rfc1035). Specifically, + the name must be 1-63 characters long and match the regular + expression [a-z]([-a-z0-9]*[a-z0-9])?.' + type: string pointInTime: description: The timestamp of the point in time that should be restored. @@ -321,6 +330,14 @@ spec: ipConfiguration: items: properties: + allocatedIpRange: + description: 'The name of the allocated ip range for + the private ip CloudSQL instance. For example: "google-managed-services-default". + If set, the instance ip will be created in the allocated + range. The range name must comply with RFC 1035. + Specifically, the name must be 1-63 characters long + and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?.' + type: string authorizedNetworks: items: properties: diff --git a/package/crds/storage.gcp.jet.crossplane.io_buckets.yaml b/package/crds/storage.gcp.jet.crossplane.io_buckets.yaml index 23fc37ba..df5e08de 100644 --- a/package/crds/storage.gcp.jet.crossplane.io_buckets.yaml +++ b/package/crds/storage.gcp.jet.crossplane.io_buckets.yaml @@ -97,6 +97,8 @@ spec: type: object type: array defaultEventBasedHold: + description: Whether or not to automatically apply an eventBasedHold + to new objects added to the bucket. type: boolean encryption: description: The bucket's encryption configuration.