diff --git a/.changelog/5994.txt b/.changelog/5994.txt new file mode 100644 index 00000000000..173e87cdaa9 --- /dev/null +++ b/.changelog/5994.txt @@ -0,0 +1,21 @@ +```release-note: enhancement +compute: added `service_directory_registrations` to `google_compute_forwarding_rule` resource +``` +```release-note:enhancement +containeraws: added `proxy_config` to `google_container_aws_node_pool` resource +``` +```release-note:enhancement +containerazure: added `proxy_config` to `google_container_azure_node_pool` resource +``` +```release-note:enhancement +containeraws: added `instance_placement` and `logging_config` to `google_container_aws_cluster` resource (beta) +``` +```release-note:enhancement +containeraws: added `image_type` and `instance_placement` to `google_container_aws_node_pool` resource (beta) +``` +```release-note:enhancement +containerazure: added `logging_config` to `google_container_azure_cluster` resource (beta) +``` +```release-note:enhancement +containerazure: added `image_type` to `google_container_azure_node_pool` resource (beta) +``` diff --git a/go.mod b/go.mod index b39c00bf880..733188e0b73 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,7 @@ module github.com/hashicorp/terraform-provider-google require ( cloud.google.com/go/bigtable v1.13.0 cloud.google.com/go/iam v0.1.1 // indirect - github.com/GoogleCloudPlatform/declarative-resource-client-library v1.1.0 + github.com/GoogleCloudPlatform/declarative-resource-client-library v1.5.1 github.com/apparentlymart/go-cidr v1.1.0 github.com/client9/misspell v0.3.4 github.com/davecgh/go-spew v1.1.1 diff --git a/go.sum b/go.sum index 1a7dc43f0f2..c0bda701dc3 100644 --- a/go.sum +++ b/go.sum @@ -1543,3 +1543,9 @@ github.com/GoogleCloudPlatform/declarative-resource-client-library v0.0.0-202203 github.com/GoogleCloudPlatform/declarative-resource-client-library v0.0.0-20220316014534-ac1c1c4fdb29/go.mod h1:UJoDYx6t3+xCOd+dZX8+NrEB+Y/eW1pQlvxh2Gt7y5E= github.com/GoogleCloudPlatform/declarative-resource-client-library v1.1.0 h1:6EDY4EUsCW/mTRzYJ8SEzL2V5JACYCiIswnbhpaAwaY= github.com/GoogleCloudPlatform/declarative-resource-client-library v1.1.0/go.mod h1:UJoDYx6t3+xCOd+dZX8+NrEB+Y/eW1pQlvxh2Gt7y5E= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.4.1 h1:nqlJvanh1GLSkVNpw6e4ecXtMd8Vl7c/USkI9qTyVzI= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.4.1/go.mod h1:UJoDYx6t3+xCOd+dZX8+NrEB+Y/eW1pQlvxh2Gt7y5E= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.5.1 h1:WsauUAtzKxwcfR2SAN8K/yeHS6S4pGK6r/oJdKJaTgI= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.5.1/go.mod h1:UJoDYx6t3+xCOd+dZX8+NrEB+Y/eW1pQlvxh2Gt7y5E= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.5.1 h1:WsauUAtzKxwcfR2SAN8K/yeHS6S4pGK6r/oJdKJaTgI= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.5.1/go.mod h1:UJoDYx6t3+xCOd+dZX8+NrEB+Y/eW1pQlvxh2Gt7y5E= diff --git a/google/resource_compute_forwarding_rule.go b/google/resource_compute_forwarding_rule.go index 4a2f9d3bbae..45581e30e6a 100644 --- a/google/resource_compute_forwarding_rule.go +++ b/google/resource_compute_forwarding_rule.go @@ -173,6 +173,15 @@ func resourceComputeForwardingRule() *schema.Resource { Description: "The location of this resource.", }, + "service_directory_registrations": { + Type: schema.TypeList, + Computed: true, + Optional: true, + ForceNew: true, + Description: "Service Directory resources to register this forwarding rule with. Currently, only supports a single Service Directory resource.", + Elem: ComputeForwardingRuleServiceDirectoryRegistrationsSchema(), + }, + "service_label": { Type: schema.TypeString, Optional: true, @@ -224,6 +233,27 @@ func resourceComputeForwardingRule() *schema.Resource { } } +func ComputeForwardingRuleServiceDirectoryRegistrationsSchema() *schema.Resource { + return &schema.Resource{ + Schema: map[string]*schema.Schema{ + "namespace": { + Type: schema.TypeString, + Computed: true, + Optional: true, + ForceNew: true, + Description: "Service Directory namespace to register the forwarding rule under.", + }, + + "service": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + Description: "Service Directory service to register the forwarding rule under.", + }, + }, + } +} + func resourceComputeForwardingRuleCreate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) project, err := getProject(d, config) @@ -236,25 +266,26 @@ func resourceComputeForwardingRuleCreate(d *schema.ResourceData, meta interface{ } obj := &compute.ForwardingRule{ - Name: dcl.String(d.Get("name").(string)), - AllPorts: dcl.Bool(d.Get("all_ports").(bool)), - AllowGlobalAccess: dcl.Bool(d.Get("allow_global_access").(bool)), - BackendService: dcl.String(d.Get("backend_service").(string)), - Description: dcl.String(d.Get("description").(string)), - IPAddress: dcl.StringOrNil(d.Get("ip_address").(string)), - IPProtocol: compute.ForwardingRuleIPProtocolEnumRef(d.Get("ip_protocol").(string)), - IsMirroringCollector: dcl.Bool(d.Get("is_mirroring_collector").(bool)), - Labels: checkStringMap(d.Get("labels")), - LoadBalancingScheme: compute.ForwardingRuleLoadBalancingSchemeEnumRef(d.Get("load_balancing_scheme").(string)), - Network: dcl.StringOrNil(d.Get("network").(string)), - NetworkTier: compute.ForwardingRuleNetworkTierEnumRef(d.Get("network_tier").(string)), - PortRange: dcl.String(d.Get("port_range").(string)), - Ports: expandStringArray(d.Get("ports")), - Project: dcl.String(project), - Location: dcl.String(region), - ServiceLabel: dcl.String(d.Get("service_label").(string)), - Subnetwork: dcl.StringOrNil(d.Get("subnetwork").(string)), - Target: dcl.String(d.Get("target").(string)), + Name: dcl.String(d.Get("name").(string)), + AllPorts: dcl.Bool(d.Get("all_ports").(bool)), + AllowGlobalAccess: dcl.Bool(d.Get("allow_global_access").(bool)), + BackendService: dcl.String(d.Get("backend_service").(string)), + Description: dcl.String(d.Get("description").(string)), + IPAddress: dcl.StringOrNil(d.Get("ip_address").(string)), + IPProtocol: compute.ForwardingRuleIPProtocolEnumRef(d.Get("ip_protocol").(string)), + IsMirroringCollector: dcl.Bool(d.Get("is_mirroring_collector").(bool)), + Labels: checkStringMap(d.Get("labels")), + LoadBalancingScheme: compute.ForwardingRuleLoadBalancingSchemeEnumRef(d.Get("load_balancing_scheme").(string)), + Network: dcl.StringOrNil(d.Get("network").(string)), + NetworkTier: compute.ForwardingRuleNetworkTierEnumRef(d.Get("network_tier").(string)), + PortRange: dcl.String(d.Get("port_range").(string)), + Ports: expandStringArray(d.Get("ports")), + Project: dcl.String(project), + Location: dcl.String(region), + ServiceDirectoryRegistrations: expandComputeForwardingRuleServiceDirectoryRegistrationsArray(d.Get("service_directory_registrations")), + ServiceLabel: dcl.String(d.Get("service_label").(string)), + Subnetwork: dcl.StringOrNil(d.Get("subnetwork").(string)), + Target: dcl.String(d.Get("target").(string)), } id, err := replaceVarsForId(d, config, "projects/{{project}}/regions/{{region}}/forwardingRules/{{name}}") @@ -306,25 +337,26 @@ func resourceComputeForwardingRuleRead(d *schema.ResourceData, meta interface{}) } obj := &compute.ForwardingRule{ - Name: dcl.String(d.Get("name").(string)), - AllPorts: dcl.Bool(d.Get("all_ports").(bool)), - AllowGlobalAccess: dcl.Bool(d.Get("allow_global_access").(bool)), - BackendService: dcl.String(d.Get("backend_service").(string)), - Description: dcl.String(d.Get("description").(string)), - IPAddress: dcl.StringOrNil(d.Get("ip_address").(string)), - IPProtocol: compute.ForwardingRuleIPProtocolEnumRef(d.Get("ip_protocol").(string)), - IsMirroringCollector: dcl.Bool(d.Get("is_mirroring_collector").(bool)), - Labels: checkStringMap(d.Get("labels")), - LoadBalancingScheme: compute.ForwardingRuleLoadBalancingSchemeEnumRef(d.Get("load_balancing_scheme").(string)), - Network: dcl.StringOrNil(d.Get("network").(string)), - NetworkTier: compute.ForwardingRuleNetworkTierEnumRef(d.Get("network_tier").(string)), - PortRange: dcl.String(d.Get("port_range").(string)), - Ports: expandStringArray(d.Get("ports")), - Project: dcl.String(project), - Location: dcl.String(region), - ServiceLabel: dcl.String(d.Get("service_label").(string)), - Subnetwork: dcl.StringOrNil(d.Get("subnetwork").(string)), - Target: dcl.String(d.Get("target").(string)), + Name: dcl.String(d.Get("name").(string)), + AllPorts: dcl.Bool(d.Get("all_ports").(bool)), + AllowGlobalAccess: dcl.Bool(d.Get("allow_global_access").(bool)), + BackendService: dcl.String(d.Get("backend_service").(string)), + Description: dcl.String(d.Get("description").(string)), + IPAddress: dcl.StringOrNil(d.Get("ip_address").(string)), + IPProtocol: compute.ForwardingRuleIPProtocolEnumRef(d.Get("ip_protocol").(string)), + IsMirroringCollector: dcl.Bool(d.Get("is_mirroring_collector").(bool)), + Labels: checkStringMap(d.Get("labels")), + LoadBalancingScheme: compute.ForwardingRuleLoadBalancingSchemeEnumRef(d.Get("load_balancing_scheme").(string)), + Network: dcl.StringOrNil(d.Get("network").(string)), + NetworkTier: compute.ForwardingRuleNetworkTierEnumRef(d.Get("network_tier").(string)), + PortRange: dcl.String(d.Get("port_range").(string)), + Ports: expandStringArray(d.Get("ports")), + Project: dcl.String(project), + Location: dcl.String(region), + ServiceDirectoryRegistrations: expandComputeForwardingRuleServiceDirectoryRegistrationsArray(d.Get("service_directory_registrations")), + ServiceLabel: dcl.String(d.Get("service_label").(string)), + Subnetwork: dcl.StringOrNil(d.Get("subnetwork").(string)), + Target: dcl.String(d.Get("target").(string)), } userAgent, err := generateUserAgentString(d, config.userAgent) @@ -397,6 +429,9 @@ func resourceComputeForwardingRuleRead(d *schema.ResourceData, meta interface{}) if err = d.Set("region", res.Location); err != nil { return fmt.Errorf("error setting region in state: %s", err) } + if err = d.Set("service_directory_registrations", flattenComputeForwardingRuleServiceDirectoryRegistrationsArray(res.ServiceDirectoryRegistrations)); err != nil { + return fmt.Errorf("error setting service_directory_registrations in state: %s", err) + } if err = d.Set("service_label", res.ServiceLabel); err != nil { return fmt.Errorf("error setting service_label in state: %s", err) } @@ -433,25 +468,26 @@ func resourceComputeForwardingRuleUpdate(d *schema.ResourceData, meta interface{ } obj := &compute.ForwardingRule{ - Name: dcl.String(d.Get("name").(string)), - AllPorts: dcl.Bool(d.Get("all_ports").(bool)), - AllowGlobalAccess: dcl.Bool(d.Get("allow_global_access").(bool)), - BackendService: dcl.String(d.Get("backend_service").(string)), - Description: dcl.String(d.Get("description").(string)), - IPAddress: dcl.StringOrNil(d.Get("ip_address").(string)), - IPProtocol: compute.ForwardingRuleIPProtocolEnumRef(d.Get("ip_protocol").(string)), - IsMirroringCollector: dcl.Bool(d.Get("is_mirroring_collector").(bool)), - Labels: checkStringMap(d.Get("labels")), - LoadBalancingScheme: compute.ForwardingRuleLoadBalancingSchemeEnumRef(d.Get("load_balancing_scheme").(string)), - Network: dcl.StringOrNil(d.Get("network").(string)), - NetworkTier: compute.ForwardingRuleNetworkTierEnumRef(d.Get("network_tier").(string)), - PortRange: dcl.String(d.Get("port_range").(string)), - Ports: expandStringArray(d.Get("ports")), - Project: dcl.String(project), - Location: dcl.String(region), - ServiceLabel: dcl.String(d.Get("service_label").(string)), - Subnetwork: dcl.StringOrNil(d.Get("subnetwork").(string)), - Target: dcl.String(d.Get("target").(string)), + Name: dcl.String(d.Get("name").(string)), + AllPorts: dcl.Bool(d.Get("all_ports").(bool)), + AllowGlobalAccess: dcl.Bool(d.Get("allow_global_access").(bool)), + BackendService: dcl.String(d.Get("backend_service").(string)), + Description: dcl.String(d.Get("description").(string)), + IPAddress: dcl.StringOrNil(d.Get("ip_address").(string)), + IPProtocol: compute.ForwardingRuleIPProtocolEnumRef(d.Get("ip_protocol").(string)), + IsMirroringCollector: dcl.Bool(d.Get("is_mirroring_collector").(bool)), + Labels: checkStringMap(d.Get("labels")), + LoadBalancingScheme: compute.ForwardingRuleLoadBalancingSchemeEnumRef(d.Get("load_balancing_scheme").(string)), + Network: dcl.StringOrNil(d.Get("network").(string)), + NetworkTier: compute.ForwardingRuleNetworkTierEnumRef(d.Get("network_tier").(string)), + PortRange: dcl.String(d.Get("port_range").(string)), + Ports: expandStringArray(d.Get("ports")), + Project: dcl.String(project), + Location: dcl.String(region), + ServiceDirectoryRegistrations: expandComputeForwardingRuleServiceDirectoryRegistrationsArray(d.Get("service_directory_registrations")), + ServiceLabel: dcl.String(d.Get("service_label").(string)), + Subnetwork: dcl.StringOrNil(d.Get("subnetwork").(string)), + Target: dcl.String(d.Get("target").(string)), } directive := UpdateDirective userAgent, err := generateUserAgentString(d, config.userAgent) @@ -498,25 +534,26 @@ func resourceComputeForwardingRuleDelete(d *schema.ResourceData, meta interface{ } obj := &compute.ForwardingRule{ - Name: dcl.String(d.Get("name").(string)), - AllPorts: dcl.Bool(d.Get("all_ports").(bool)), - AllowGlobalAccess: dcl.Bool(d.Get("allow_global_access").(bool)), - BackendService: dcl.String(d.Get("backend_service").(string)), - Description: dcl.String(d.Get("description").(string)), - IPAddress: dcl.StringOrNil(d.Get("ip_address").(string)), - IPProtocol: compute.ForwardingRuleIPProtocolEnumRef(d.Get("ip_protocol").(string)), - IsMirroringCollector: dcl.Bool(d.Get("is_mirroring_collector").(bool)), - Labels: checkStringMap(d.Get("labels")), - LoadBalancingScheme: compute.ForwardingRuleLoadBalancingSchemeEnumRef(d.Get("load_balancing_scheme").(string)), - Network: dcl.StringOrNil(d.Get("network").(string)), - NetworkTier: compute.ForwardingRuleNetworkTierEnumRef(d.Get("network_tier").(string)), - PortRange: dcl.String(d.Get("port_range").(string)), - Ports: expandStringArray(d.Get("ports")), - Project: dcl.String(project), - Location: dcl.String(region), - ServiceLabel: dcl.String(d.Get("service_label").(string)), - Subnetwork: dcl.StringOrNil(d.Get("subnetwork").(string)), - Target: dcl.String(d.Get("target").(string)), + Name: dcl.String(d.Get("name").(string)), + AllPorts: dcl.Bool(d.Get("all_ports").(bool)), + AllowGlobalAccess: dcl.Bool(d.Get("allow_global_access").(bool)), + BackendService: dcl.String(d.Get("backend_service").(string)), + Description: dcl.String(d.Get("description").(string)), + IPAddress: dcl.StringOrNil(d.Get("ip_address").(string)), + IPProtocol: compute.ForwardingRuleIPProtocolEnumRef(d.Get("ip_protocol").(string)), + IsMirroringCollector: dcl.Bool(d.Get("is_mirroring_collector").(bool)), + Labels: checkStringMap(d.Get("labels")), + LoadBalancingScheme: compute.ForwardingRuleLoadBalancingSchemeEnumRef(d.Get("load_balancing_scheme").(string)), + Network: dcl.StringOrNil(d.Get("network").(string)), + NetworkTier: compute.ForwardingRuleNetworkTierEnumRef(d.Get("network_tier").(string)), + PortRange: dcl.String(d.Get("port_range").(string)), + Ports: expandStringArray(d.Get("ports")), + Project: dcl.String(project), + Location: dcl.String(region), + ServiceDirectoryRegistrations: expandComputeForwardingRuleServiceDirectoryRegistrationsArray(d.Get("service_directory_registrations")), + ServiceLabel: dcl.String(d.Get("service_label").(string)), + Subnetwork: dcl.StringOrNil(d.Get("subnetwork").(string)), + Target: dcl.String(d.Get("target").(string)), } log.Printf("[DEBUG] Deleting ForwardingRule %q", d.Id()) @@ -565,3 +602,61 @@ func resourceComputeForwardingRuleImport(d *schema.ResourceData, meta interface{ return []*schema.ResourceData{d}, nil } + +func expandComputeForwardingRuleServiceDirectoryRegistrationsArray(o interface{}) []compute.ForwardingRuleServiceDirectoryRegistrations { + if o == nil { + return nil + } + + objs := o.([]interface{}) + if len(objs) == 0 || objs[0] == nil { + return nil + } + + items := make([]compute.ForwardingRuleServiceDirectoryRegistrations, 0, len(objs)) + for _, item := range objs { + i := expandComputeForwardingRuleServiceDirectoryRegistrations(item) + items = append(items, *i) + } + + return items +} + +func expandComputeForwardingRuleServiceDirectoryRegistrations(o interface{}) *compute.ForwardingRuleServiceDirectoryRegistrations { + if o == nil { + return nil + } + + obj := o.(map[string]interface{}) + return &compute.ForwardingRuleServiceDirectoryRegistrations{ + Namespace: dcl.StringOrNil(obj["namespace"].(string)), + Service: dcl.String(obj["service"].(string)), + } +} + +func flattenComputeForwardingRuleServiceDirectoryRegistrationsArray(objs []compute.ForwardingRuleServiceDirectoryRegistrations) []interface{} { + if objs == nil { + return nil + } + + items := []interface{}{} + for _, item := range objs { + i := flattenComputeForwardingRuleServiceDirectoryRegistrations(&item) + items = append(items, i) + } + + return items +} + +func flattenComputeForwardingRuleServiceDirectoryRegistrations(obj *compute.ForwardingRuleServiceDirectoryRegistrations) interface{} { + if obj == nil || obj.Empty() { + return nil + } + transformed := map[string]interface{}{ + "namespace": obj.Namespace, + "service": obj.Service, + } + + return transformed + +} diff --git a/google/resource_container_aws_cluster.go b/google/resource_container_aws_cluster.go index d8ac301c8d1..024a75b7ba9 100644 --- a/google/resource_container_aws_cluster.go +++ b/google/resource_container_aws_cluster.go @@ -180,7 +180,7 @@ func ContainerAwsClusterAuthorizationSchema() *schema.Resource { "admin_users": { Type: schema.TypeList, 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: "Users to perform operations as a cluster admin. A managed ClusterRoleBinding will be created to grant the `cluster-admin` ClusterRole to the users. Up to ten admin users can be provided. For more info on RBAC, see https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles", Elem: ContainerAwsClusterAuthorizationAdminUsersSchema(), }, }, diff --git a/google/resource_container_aws_node_pool.go b/google/resource_container_aws_node_pool.go index 36d2de54fa4..4addcef6dac 100644 --- a/google/resource_container_aws_node_pool.go +++ b/google/resource_container_aws_node_pool.go @@ -212,6 +212,14 @@ func ContainerAwsNodePoolConfigSchema() *schema.Resource { Elem: &schema.Schema{Type: schema.TypeString}, }, + "proxy_config": { + Type: schema.TypeList, + Optional: true, + Description: "Proxy configuration for outbound HTTP(S) traffic.", + MaxItems: 1, + Elem: ContainerAwsNodePoolConfigProxyConfigSchema(), + }, + "root_volume": { Type: schema.TypeList, Computed: true, @@ -268,6 +276,24 @@ func ContainerAwsNodePoolConfigConfigEncryptionSchema() *schema.Resource { } } +func ContainerAwsNodePoolConfigProxyConfigSchema() *schema.Resource { + return &schema.Resource{ + Schema: map[string]*schema.Schema{ + "secret_arn": { + Type: schema.TypeString, + Required: true, + Description: "The ARN of the AWS Secret Manager secret that contains the HTTP(S) proxy configuration.", + }, + + "secret_version": { + Type: schema.TypeString, + Required: true, + Description: "The version string of the AWS Secret Manager secret that contains the HTTP(S) proxy configuration.", + }, + }, + } +} + func ContainerAwsNodePoolConfigRootVolumeSchema() *schema.Resource { return &schema.Resource{ Schema: map[string]*schema.Schema{ @@ -664,6 +690,7 @@ func expandContainerAwsNodePoolConfig(o interface{}) *containeraws.NodePoolConfi IamInstanceProfile: dcl.String(obj["iam_instance_profile"].(string)), InstanceType: dcl.StringOrNil(obj["instance_type"].(string)), Labels: checkStringMap(obj["labels"]), + ProxyConfig: expandContainerAwsNodePoolConfigProxyConfig(obj["proxy_config"]), RootVolume: expandContainerAwsNodePoolConfigRootVolume(obj["root_volume"]), SecurityGroupIds: expandStringArray(obj["security_group_ids"]), SshConfig: expandContainerAwsNodePoolConfigSshConfig(obj["ssh_config"]), @@ -681,6 +708,7 @@ func flattenContainerAwsNodePoolConfig(obj *containeraws.NodePoolConfig) interfa "iam_instance_profile": obj.IamInstanceProfile, "instance_type": obj.InstanceType, "labels": obj.Labels, + "proxy_config": flattenContainerAwsNodePoolConfigProxyConfig(obj.ProxyConfig), "root_volume": flattenContainerAwsNodePoolConfigRootVolume(obj.RootVolume), "security_group_ids": obj.SecurityGroupIds, "ssh_config": flattenContainerAwsNodePoolConfigSshConfig(obj.SshConfig), @@ -718,6 +746,34 @@ func flattenContainerAwsNodePoolConfigConfigEncryption(obj *containeraws.NodePoo } +func expandContainerAwsNodePoolConfigProxyConfig(o interface{}) *containeraws.NodePoolConfigProxyConfig { + if o == nil { + return containeraws.EmptyNodePoolConfigProxyConfig + } + objArr := o.([]interface{}) + if len(objArr) == 0 || objArr[0] == nil { + return containeraws.EmptyNodePoolConfigProxyConfig + } + obj := objArr[0].(map[string]interface{}) + return &containeraws.NodePoolConfigProxyConfig{ + SecretArn: dcl.String(obj["secret_arn"].(string)), + SecretVersion: dcl.String(obj["secret_version"].(string)), + } +} + +func flattenContainerAwsNodePoolConfigProxyConfig(obj *containeraws.NodePoolConfigProxyConfig) interface{} { + if obj == nil || obj.Empty() { + return nil + } + transformed := map[string]interface{}{ + "secret_arn": obj.SecretArn, + "secret_version": obj.SecretVersion, + } + + return []interface{}{transformed} + +} + func expandContainerAwsNodePoolConfigRootVolume(o interface{}) *containeraws.NodePoolConfigRootVolume { if o == nil { return nil diff --git a/google/resource_container_aws_node_pool_generated_test.go b/google/resource_container_aws_node_pool_generated_test.go index b5638715ceb..4511bba3c10 100644 --- a/google/resource_container_aws_node_pool_generated_test.go +++ b/google/resource_container_aws_node_pool_generated_test.go @@ -187,6 +187,11 @@ resource "google_container_aws_node_pool" "primary" { security_group_ids = ["%{aws_sg}"] + proxy_config { + secret_arn = "arn:aws:secretsmanager:us-west-2:126285863215:secret:proxy_config20210824150329476300000001-ABCDEF" + secret_version = "12345678-ABCD-EFGH-IJKL-987654321098" + } + ssh_config { ec2_key_pair = "%{byo_prefix}-1p-dev-ssh" } @@ -338,6 +343,11 @@ resource "google_container_aws_node_pool" "primary" { security_group_ids = ["%{aws_sg}"] + proxy_config { + secret_arn = "arn:aws:secretsmanager:us-west-2:126285863215:secret:proxy_config20210824150329476300000001-ABCDEF" + secret_version = "12345678-ABCD-EFGH-IJKL-987654321098" + } + ssh_config { ec2_key_pair = "%{byo_prefix}-1p-dev-ssh" } diff --git a/google/resource_container_azure_cluster.go b/google/resource_container_azure_cluster.go index a8e6c4d4415..fb2e50ca4d6 100644 --- a/google/resource_container_azure_cluster.go +++ b/google/resource_container_azure_cluster.go @@ -195,7 +195,7 @@ func ContainerAzureClusterAuthorizationSchema() *schema.Resource { "admin_users": { Type: schema.TypeList, 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: "Users that can perform operations as a cluster admin. A new ClusterRoleBinding will be created to grant the cluster-admin ClusterRole to the users. Up to ten admin users can be provided. For more info on RBAC, see https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles", Elem: ContainerAzureClusterAuthorizationAdminUsersSchema(), }, }, diff --git a/google/resource_container_azure_cluster_generated_test.go b/google/resource_container_azure_cluster_generated_test.go index c892ae5e68d..72715481d21 100644 --- a/google/resource_container_azure_cluster_generated_test.go +++ b/google/resource_container_azure_cluster_generated_test.go @@ -124,6 +124,11 @@ resource "google_container_azure_client" "basic" { func testAccContainerAzureCluster_BasicHandWrittenUpdate0(context map[string]interface{}) string { return Nprintf(` +data "google_container_azure_versions" "versions" { + project = "%{project_name}" + location = "us-west1" +} + resource "google_container_azure_cluster" "primary" { authorization { admin_users { @@ -140,7 +145,7 @@ resource "google_container_azure_cluster" "primary" { } subnet_id = "/subscriptions/%{azure_sub}/resourceGroups/%{byo_prefix}-dev-byo/providers/Microsoft.Network/virtualNetworks/%{byo_prefix}-dev-vnet/subnets/default" - version = "1.21.6-gke.1500" + version = "${data.google_container_azure_versions.versions.valid_versions[0]}" database_encryption { key_id = "/subscriptions/%{azure_sub}/resourceGroups/%{byo_prefix}-dev-cluster/providers/Microsoft.KeyVault/vaults/%{byo_prefix}-dev-keyvault/keys/%{byo_prefix}-dev-key" diff --git a/google/resource_container_azure_node_pool.go b/google/resource_container_azure_node_pool.go index 3ce44289313..b41a42c9929 100644 --- a/google/resource_container_azure_node_pool.go +++ b/google/resource_container_azure_node_pool.go @@ -202,6 +202,15 @@ func ContainerAzureNodePoolConfigSchema() *schema.Resource { Elem: ContainerAzureNodePoolConfigSshConfigSchema(), }, + "proxy_config": { + Type: schema.TypeList, + Optional: true, + ForceNew: true, + Description: "Proxy configuration for outbound HTTP(S) traffic.", + MaxItems: 1, + Elem: ContainerAzureNodePoolConfigProxyConfigSchema(), + }, + "root_volume": { Type: schema.TypeList, Computed: true, @@ -244,6 +253,26 @@ func ContainerAzureNodePoolConfigSshConfigSchema() *schema.Resource { } } +func ContainerAzureNodePoolConfigProxyConfigSchema() *schema.Resource { + return &schema.Resource{ + Schema: map[string]*schema.Schema{ + "resource_group_id": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "The ARM ID the of the resource group containing proxy keyvault. Resource group ids are formatted as `/subscriptions//resourceGroups/`", + }, + + "secret_id": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "The URL the of the proxy setting secret with its version. Secret ids are formatted as `https:.vault.azure.net/secrets//`.", + }, + }, + } +} + func ContainerAzureNodePoolConfigRootVolumeSchema() *schema.Resource { return &schema.Resource{ Schema: map[string]*schema.Schema{ @@ -584,10 +613,11 @@ func expandContainerAzureNodePoolConfig(o interface{}) *containerazure.NodePoolC } obj := objArr[0].(map[string]interface{}) return &containerazure.NodePoolConfig{ - SshConfig: expandContainerAzureNodePoolConfigSshConfig(obj["ssh_config"]), - RootVolume: expandContainerAzureNodePoolConfigRootVolume(obj["root_volume"]), - Tags: checkStringMap(obj["tags"]), - VmSize: dcl.StringOrNil(obj["vm_size"].(string)), + SshConfig: expandContainerAzureNodePoolConfigSshConfig(obj["ssh_config"]), + ProxyConfig: expandContainerAzureNodePoolConfigProxyConfig(obj["proxy_config"]), + RootVolume: expandContainerAzureNodePoolConfigRootVolume(obj["root_volume"]), + Tags: checkStringMap(obj["tags"]), + VmSize: dcl.StringOrNil(obj["vm_size"].(string)), } } @@ -596,10 +626,11 @@ func flattenContainerAzureNodePoolConfig(obj *containerazure.NodePoolConfig) int return nil } transformed := map[string]interface{}{ - "ssh_config": flattenContainerAzureNodePoolConfigSshConfig(obj.SshConfig), - "root_volume": flattenContainerAzureNodePoolConfigRootVolume(obj.RootVolume), - "tags": obj.Tags, - "vm_size": obj.VmSize, + "ssh_config": flattenContainerAzureNodePoolConfigSshConfig(obj.SshConfig), + "proxy_config": flattenContainerAzureNodePoolConfigProxyConfig(obj.ProxyConfig), + "root_volume": flattenContainerAzureNodePoolConfigRootVolume(obj.RootVolume), + "tags": obj.Tags, + "vm_size": obj.VmSize, } return []interface{}{transformed} @@ -632,6 +663,34 @@ func flattenContainerAzureNodePoolConfigSshConfig(obj *containerazure.NodePoolCo } +func expandContainerAzureNodePoolConfigProxyConfig(o interface{}) *containerazure.NodePoolConfigProxyConfig { + if o == nil { + return containerazure.EmptyNodePoolConfigProxyConfig + } + objArr := o.([]interface{}) + if len(objArr) == 0 || objArr[0] == nil { + return containerazure.EmptyNodePoolConfigProxyConfig + } + obj := objArr[0].(map[string]interface{}) + return &containerazure.NodePoolConfigProxyConfig{ + ResourceGroupId: dcl.String(obj["resource_group_id"].(string)), + SecretId: dcl.String(obj["secret_id"].(string)), + } +} + +func flattenContainerAzureNodePoolConfigProxyConfig(obj *containerazure.NodePoolConfigProxyConfig) interface{} { + if obj == nil || obj.Empty() { + return nil + } + transformed := map[string]interface{}{ + "resource_group_id": obj.ResourceGroupId, + "secret_id": obj.SecretId, + } + + return []interface{}{transformed} + +} + func expandContainerAzureNodePoolConfigRootVolume(o interface{}) *containerazure.NodePoolConfigRootVolume { if o == nil { return nil diff --git a/google/resource_container_azure_node_pool_generated_test.go b/google/resource_container_azure_node_pool_generated_test.go index 9150031cbf0..d11e8cad985 100644 --- a/google/resource_container_azure_node_pool_generated_test.go +++ b/google/resource_container_azure_node_pool_generated_test.go @@ -129,6 +129,11 @@ resource "google_container_azure_node_pool" "primary" { authorized_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC8yaayO6lnb2v+SedxUMa2c8vtIEzCzBjM3EJJsv8Vm9zUDWR7dXWKoNGARUb2mNGXASvI6mFIDXTIlkQ0poDEPpMaXR0g2cb5xT8jAAJq7fqXL3+0rcJhY/uigQ+MrT6s+ub0BFVbsmGHNrMQttXX9gtmwkeAEvj3mra9e5pkNf90qlKnZz6U0SVArxVsLx07vHPHDIYrl0OPG4zUREF52igbBPiNrHJFDQJT/4YlDMJmo/QT/A1D6n9ocemvZSzhRx15/Arjowhr+VVKSbaxzPtEfY0oIg2SrqJnnr/l3Du5qIefwh5VmCZe4xopPUaDDoOIEFriZ88sB+3zz8ib8sk8zJJQCgeP78tQvXCgS+4e5W3TUg9mxjB6KjXTyHIVhDZqhqde0OI3Fy1UuVzRUwnBaLjBnAwP5EoFQGRmDYk/rEYe7HTmovLeEBUDQocBQKT4Ripm/xJkkWY7B07K/tfo56dGUCkvyIVXKBInCh+dLK7gZapnd4UWkY0xBYcwo1geMLRq58iFTLA2j/JmpmHXp7m0l7jJii7d44uD3tTIFYThn7NlOnvhLim/YcBK07GMGIN7XwrrKZKmxXaspw6KBWVhzuw1UPxctxshYEaMLfFg/bwOw8HvMPr9VtrElpSB7oiOh91PDIPdPBgHCi7N2QgQ5l/ZDBHieSpNrQ== thomasrodgers" } + proxy_config { + resource_group_id = "/subscriptions/%{azure_sub}/resourceGroups/%{byo_prefix}-dev-cluster" + secret_id = "https://%{byo_prefix}-dev-keyvault.vault.azure.net/secrets/%{byo_prefix}-dev-secret/%{azure_config_secret}" + } + root_volume { size_gib = 32 } @@ -226,6 +231,11 @@ resource "google_container_azure_node_pool" "primary" { authorized_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC8yaayO6lnb2v+SedxUMa2c8vtIEzCzBjM3EJJsv8Vm9zUDWR7dXWKoNGARUb2mNGXASvI6mFIDXTIlkQ0poDEPpMaXR0g2cb5xT8jAAJq7fqXL3+0rcJhY/uigQ+MrT6s+ub0BFVbsmGHNrMQttXX9gtmwkeAEvj3mra9e5pkNf90qlKnZz6U0SVArxVsLx07vHPHDIYrl0OPG4zUREF52igbBPiNrHJFDQJT/4YlDMJmo/QT/A1D6n9ocemvZSzhRx15/Arjowhr+VVKSbaxzPtEfY0oIg2SrqJnnr/l3Du5qIefwh5VmCZe4xopPUaDDoOIEFriZ88sB+3zz8ib8sk8zJJQCgeP78tQvXCgS+4e5W3TUg9mxjB6KjXTyHIVhDZqhqde0OI3Fy1UuVzRUwnBaLjBnAwP5EoFQGRmDYk/rEYe7HTmovLeEBUDQocBQKT4Ripm/xJkkWY7B07K/tfo56dGUCkvyIVXKBInCh+dLK7gZapnd4UWkY0xBYcwo1geMLRq58iFTLA2j/JmpmHXp7m0l7jJii7d44uD3tTIFYThn7NlOnvhLim/YcBK07GMGIN7XwrrKZKmxXaspw6KBWVhzuw1UPxctxshYEaMLfFg/bwOw8HvMPr9VtrElpSB7oiOh91PDIPdPBgHCi7N2QgQ5l/ZDBHieSpNrQ== thomasrodgers" } + proxy_config { + resource_group_id = "/subscriptions/%{azure_sub}/resourceGroups/%{byo_prefix}-dev-cluster" + secret_id = "https://%{byo_prefix}-dev-keyvault.vault.azure.net/secrets/%{byo_prefix}-dev-secret/%{azure_config_secret}" + } + root_volume { size_gib = 32 } @@ -245,7 +255,7 @@ resource "google_container_azure_node_pool" "primary" { name = "tf-test-node-pool-name%{random_suffix}" subnet_id = "/subscriptions/%{azure_sub}/resourceGroups/%{byo_prefix}-dev-byo/providers/Microsoft.Network/virtualNetworks/%{byo_prefix}-dev-vnet/subnets/default" - version = "1.21.6-gke.1500" + version = "${data.google_container_azure_versions.versions.valid_versions[0]}" annotations = { annotation-two = "value-two" diff --git a/google/resource_eventarc_trigger.go b/google/resource_eventarc_trigger.go index 344645e208f..7ee69a12566 100644 --- a/google/resource_eventarc_trigger.go +++ b/google/resource_eventarc_trigger.go @@ -246,7 +246,7 @@ func EventarcTriggerMatchingCriteriaSchema() *schema.Resource { "value": { Type: schema.TypeString, Required: true, - Description: "Required. The value for the attribute.", + Description: "Required. The value for the attribute. See https://cloud.google.com/eventarc/docs/creating-triggers#trigger-gcloud for available values.", }, "operator": { diff --git a/website/docs/r/compute_forwarding_rule.html.markdown b/website/docs/r/compute_forwarding_rule.html.markdown index c7500b626ec..41ea443de77 100644 --- a/website/docs/r/compute_forwarding_rule.html.markdown +++ b/website/docs/r/compute_forwarding_rule.html.markdown @@ -1161,6 +1161,12 @@ The following arguments are supported: specified, it is assumed to be PREMIUM. Possible values are `PREMIUM` and `STANDARD`. +* `service_directory_registrations` - + (Optional) + Service Directory resources to register this forwarding rule with. Currently, + only supports a single Service Directory resource. + Structure is [documented below](#nested_service_directory_registrations). + * `service_label` - (Optional) An optional prefix to the service name for this Forwarding Rule. @@ -1183,6 +1189,16 @@ The following arguments are supported: If it is not provided, the provider project is used. +The `service_directory_registrations` block supports: + +* `namespace` - + (Optional) + Service Directory namespace to register the forwarding rule under. + +* `service` - + (Optional) + Service Directory service to register the forwarding rule under. + ## Attributes Reference In addition to the arguments listed above, the following computed attributes are exported: diff --git a/website/docs/r/container_aws_cluster.html.markdown b/website/docs/r/container_aws_cluster.html.markdown index 31715a7b702..da61e3b1314 100644 --- a/website/docs/r/container_aws_cluster.html.markdown +++ b/website/docs/r/container_aws_cluster.html.markdown @@ -155,7 +155,7 @@ The `authorization` block supports: * `admin_users` - (Required) - 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 + Users to perform operations as a cluster admin. A managed ClusterRoleBinding will be created to grant the `cluster-admin` ClusterRole to the users. Up to ten admin users can be provided. For more info on RBAC, see https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles The `admin_users` block supports: @@ -181,6 +181,10 @@ The `control_plane` block supports: (Required) The name of the AWS IAM instance pofile to assign to each control plane replica. +* `instance_placement` - + (Optional) + (Beta only) Details of placement information for an instance. + * `instance_type` - (Optional) Optional. The AWS instance type. When unspecified, it defaults to `m5.large`. @@ -272,12 +276,22 @@ The `networking` block supports: (Optional) Optional. A human readable description of this cluster. Cannot be longer than 255 UTF-8 encoded bytes. +* `logging_config` - + (Optional) + (Beta only) Logging configuration. + * `project` - (Optional) The project for the resource +The `instance_placement` block supports: + +* `tenancy` - + (Optional) + The tenancy for the instance. Possible values: TENANCY_UNSPECIFIED, DEFAULT, DEDICATED, HOST + The `main_volume` block supports: * `iops` - @@ -330,6 +344,18 @@ The `ssh_config` block supports: (Required) The name of the EC2 key pair used to login into cluster machines. +The `logging_config` block supports: + +* `component_config` - + (Optional) + Configuration of the logging components. + +The `component_config` block supports: + +* `enable_components` - + (Optional) + Components of the logging configuration to be enabled. + ## Attributes Reference In addition to the arguments listed above, the following computed attributes are exported: diff --git a/website/docs/r/container_aws_node_pool.html.markdown b/website/docs/r/container_aws_node_pool.html.markdown index 52b66cb8187..79c9ff9c28c 100644 --- a/website/docs/r/container_aws_node_pool.html.markdown +++ b/website/docs/r/container_aws_node_pool.html.markdown @@ -144,6 +144,11 @@ resource "google_container_aws_node_pool" "primary" { security_group_ids = ["sg-00000000000000000"] + proxy_config { + secret_arn = "arn:aws:secretsmanager:us-west-2:126285863215:secret:proxy_config20210824150329476300000001-ABCDEF" + secret_version = "12345678-ABCD-EFGH-IJKL-987654321098" + } + ssh_config { ec2_key_pair = "my--1p-dev-ssh" } @@ -237,6 +242,14 @@ The `config` block supports: (Required) The name of the AWS IAM role assigned to nodes in the pool. +* `image_type` - + (Optional) + (Beta only) The OS image type to use on node pool instances. + +* `instance_placement` - + (Optional) + (Beta only) Details of placement information for an instance. + * `instance_type` - (Optional) Optional. The AWS instance type. When unspecified, it defaults to `m5.large`. @@ -245,6 +258,10 @@ The `config` block supports: (Optional) 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" }. +* `proxy_config` - + (Optional) + Proxy configuration for outbound HTTP(S) traffic. + * `root_volume` - (Optional) 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. @@ -289,6 +306,22 @@ The `max_pods_constraint` block supports: +The `instance_placement` block supports: + +* `tenancy` - + (Optional) + The tenancy for the instance. Possible values: TENANCY_UNSPECIFIED, DEFAULT, DEDICATED, HOST + +The `proxy_config` block supports: + +* `secret_arn` - + (Required) + The ARN of the AWS Secret Manager secret that contains the HTTP(S) proxy configuration. + +* `secret_version` - + (Required) + The version string of the AWS Secret Manager secret that contains the HTTP(S) proxy configuration. + The `root_volume` block supports: * `iops` - diff --git a/website/docs/r/container_azure_cluster.html.markdown b/website/docs/r/container_azure_cluster.html.markdown index 4661e2ec542..0396e480860 100644 --- a/website/docs/r/container_azure_cluster.html.markdown +++ b/website/docs/r/container_azure_cluster.html.markdown @@ -128,7 +128,7 @@ The `authorization` block supports: * `admin_users` - (Required) - 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 + Users that can perform operations as a cluster admin. A new ClusterRoleBinding will be created to grant the cluster-admin ClusterRole to the users. Up to ten admin users can be provided. For more info on RBAC, see https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles The `admin_users` block supports: @@ -217,6 +217,10 @@ The `networking` block supports: (Optional) Optional. A human readable description of this cluster. Cannot be longer than 255 UTF-8 encoded bytes. +* `logging_config` - + (Optional) + (Beta only) Logging configuration. + * `project` - (Optional) The project for the resource @@ -261,6 +265,18 @@ The `root_volume` block supports: (Optional) Optional. The size of the disk, in GiBs. When unspecified, a default value is provided. See the specific reference in the parent resource. +The `logging_config` block supports: + +* `component_config` - + (Optional) + Configuration of the logging components. + +The `component_config` block supports: + +* `enable_components` - + (Optional) + Components of the logging configuration to be enabled. + ## Attributes Reference In addition to the arguments listed above, the following computed attributes are exported: diff --git a/website/docs/r/container_azure_node_pool.html.markdown b/website/docs/r/container_azure_node_pool.html.markdown index ee151ac1e98..9271e54cf0c 100644 --- a/website/docs/r/container_azure_node_pool.html.markdown +++ b/website/docs/r/container_azure_node_pool.html.markdown @@ -92,6 +92,11 @@ resource "google_container_azure_node_pool" "primary" { authorized_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC8yaayO6lnb2v+SedxUMa2c8vtIEzCzBjM3EJJsv8Vm9zUDWR7dXWKoNGARUb2mNGXASvI6mFIDXTIlkQ0poDEPpMaXR0g2cb5xT8jAAJq7fqXL3+0rcJhY/uigQ+MrT6s+ub0BFVbsmGHNrMQttXX9gtmwkeAEvj3mra9e5pkNf90qlKnZz6U0SVArxVsLx07vHPHDIYrl0OPG4zUREF52igbBPiNrHJFDQJT/4YlDMJmo/QT/A1D6n9ocemvZSzhRx15/Arjowhr+VVKSbaxzPtEfY0oIg2SrqJnnr/l3Du5qIefwh5VmCZe4xopPUaDDoOIEFriZ88sB+3zz8ib8sk8zJJQCgeP78tQvXCgS+4e5W3TUg9mxjB6KjXTyHIVhDZqhqde0OI3Fy1UuVzRUwnBaLjBnAwP5EoFQGRmDYk/rEYe7HTmovLeEBUDQocBQKT4Ripm/xJkkWY7B07K/tfo56dGUCkvyIVXKBInCh+dLK7gZapnd4UWkY0xBYcwo1geMLRq58iFTLA2j/JmpmHXp7m0l7jJii7d44uD3tTIFYThn7NlOnvhLim/YcBK07GMGIN7XwrrKZKmxXaspw6KBWVhzuw1UPxctxshYEaMLfFg/bwOw8HvMPr9VtrElpSB7oiOh91PDIPdPBgHCi7N2QgQ5l/ZDBHieSpNrQ== thomasrodgers" } + proxy_config { + resource_group_id = "/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-cluster" + secret_id = "https://my--dev-keyvault.vault.azure.net/secrets/my--dev-secret/0000000000000000000000000000000000" + } + root_volume { size_gib = 32 } @@ -173,6 +178,14 @@ The `autoscaling` block supports: The `config` block supports: +* `image_type` - + (Optional) + (Beta only) The OS image type to use on node pool instances. + +* `proxy_config` - + (Optional) + Proxy configuration for outbound HTTP(S) traffic. + * `root_volume` - (Optional) Optional. Configuration related to the root volume provisioned for each node pool machine. When unspecified, it defaults to a 32-GiB Azure Disk. @@ -217,6 +230,16 @@ The `max_pods_constraint` block supports: +The `proxy_config` block supports: + +* `resource_group_id` - + (Required) + The ARM ID the of the resource group containing proxy keyvault. Resource group ids are formatted as `/subscriptions//resourceGroups/` + +* `secret_id` - + (Required) + The URL the of the proxy setting secret with its version. Secret ids are formatted as `https:.vault.azure.net/secrets//`. + The `root_volume` block supports: * `size_gib` - diff --git a/website/docs/r/eventarc_trigger.html.markdown b/website/docs/r/eventarc_trigger.html.markdown index 84cda3c6d30..9a1a1075274 100644 --- a/website/docs/r/eventarc_trigger.html.markdown +++ b/website/docs/r/eventarc_trigger.html.markdown @@ -127,7 +127,7 @@ The `matching_criteria` block supports: * `value` - (Required) - Required. The value for the attribute. + Required. The value for the attribute. See https://cloud.google.com/eventarc/docs/creating-triggers#trigger-gcloud for available values. - - -