Add support for custom request headers in backend services (#1537)

* revendor compute beta apis

* changes to subnetwork iam from api revendoring

* add support for custom request headers in backend services
This commit is contained in:
Dana Hoffman 2018-05-29 13:29:40 -07:00 committed by GitHub
parent 926420ab90
commit dc46348d67
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 638 additions and 307 deletions

View File

@ -121,7 +121,10 @@ func (u *ComputeSubnetworkIamUpdater) SetResourceIamPolicy(policy *cloudresource
return errwrap.Wrapf(fmt.Sprintf("Invalid IAM policy for %s: {{err}}", u.DescribeResource()), err)
}
_, err = u.Config.clientComputeBeta.Subnetworks.SetIamPolicy(u.project, u.region, u.resourceId, computePolicy).Do()
req := &computeBeta.RegionSetPolicyRequest{
Policy: computePolicy,
}
_, err = u.Config.clientComputeBeta.Subnetworks.SetIamPolicy(u.project, u.region, u.resourceId, req).Do()
if err != nil {
return errwrap.Wrapf(fmt.Sprintf("Error setting IAM policy for %s: {{err}}", u.DescribeResource()), err)

View File

@ -9,7 +9,6 @@ import (
"github.com/hashicorp/errwrap"
"github.com/hashicorp/terraform/helper/schema"
computeBeta "google.golang.org/api/compute/v0.beta"
compute "google.golang.org/api/compute/v1"
)
func resourceComputeBackendService() *schema.Resource {
@ -159,6 +158,13 @@ func resourceComputeBackendService() *schema.Resource {
},
},
"custom_request_headers": &schema.Schema{
Type: schema.TypeSet,
Optional: true,
Elem: &schema.Schema{Type: schema.TypeString},
Set: schema.HashString,
},
"description": &schema.Schema{
Type: schema.TypeString,
Optional: true,
@ -247,7 +253,7 @@ func resourceComputeBackendServiceCreate(d *schema.ResourceData, meta interface{
}
log.Printf("[DEBUG] Creating new Backend Service: %#v", service)
op, err := config.clientCompute.BackendServices.Insert(
op, err := config.clientComputeBeta.BackendServices.Insert(
project, service).Do()
if err != nil {
return fmt.Errorf("Error creating backend service: %s", err)
@ -259,7 +265,7 @@ func resourceComputeBackendServiceCreate(d *schema.ResourceData, meta interface{
d.SetId(service.Name)
// Wait for the operation to complete
waitErr := computeOperationWait(config.clientCompute, op, project, "Creating Backend Service")
waitErr := computeSharedOperationWait(config.clientCompute, op, project, "Creating Backend Service")
if waitErr != nil {
// The resource didn't actually create
d.SetId("")
@ -315,6 +321,7 @@ func resourceComputeBackendServiceRead(d *schema.ResourceData, meta interface{})
return err
}
d.Set("security_policy", service.SecurityPolicy)
d.Set("custom_request_headers", service.CustomRequestHeaders)
return nil
}
@ -334,13 +341,13 @@ func resourceComputeBackendServiceUpdate(d *schema.ResourceData, meta interface{
}
log.Printf("[DEBUG] Updating existing Backend Service %q: %#v", d.Id(), service)
op, err := config.clientCompute.BackendServices.Update(
op, err := config.clientComputeBeta.BackendServices.Update(
project, d.Id(), service).Do()
if err != nil {
return fmt.Errorf("Error updating backend service: %s", err)
}
err = computeOperationWait(config.clientCompute, op, project, "Updating Backend Service")
err = computeSharedOperationWait(config.clientCompute, op, project, "Updating Backend Service")
if err != nil {
return err
}
@ -390,12 +397,12 @@ func resourceComputeBackendServiceDelete(d *schema.ResourceData, meta interface{
return nil
}
func expandIap(configured []interface{}) *compute.BackendServiceIAP {
func expandIap(configured []interface{}) *computeBeta.BackendServiceIAP {
if len(configured) == 0 {
return nil
}
if data, ok := configured[0].(map[string]interface{}); ok {
return &compute.BackendServiceIAP{
return &computeBeta.BackendServiceIAP{
Enabled: true,
Oauth2ClientId: data["oauth2_client_id"].(string),
Oauth2ClientSecret: data["oauth2_client_secret"].(string),
@ -420,8 +427,8 @@ func flattenIap(iap *computeBeta.BackendServiceIAP) []map[string]interface{} {
return result
}
func expandBackends(configured []interface{}) ([]*compute.Backend, error) {
backends := make([]*compute.Backend, 0, len(configured))
func expandBackends(configured []interface{}) ([]*computeBeta.Backend, error) {
backends := make([]*computeBeta.Backend, 0, len(configured))
for _, raw := range configured {
data := raw.(map[string]interface{})
@ -431,7 +438,7 @@ func expandBackends(configured []interface{}) ([]*compute.Backend, error) {
return nil, errors.New("google_compute_backend_service.backend.group must be set")
}
b := compute.Backend{
b := computeBeta.Backend{
Group: g.(string),
}
@ -501,7 +508,7 @@ func flattenBackends(backends []*computeBeta.Backend) []map[string]interface{} {
return result
}
func expandBackendService(d *schema.ResourceData) (*compute.BackendService, error) {
func expandBackendService(d *schema.ResourceData) (*computeBeta.BackendService, error) {
hc := d.Get("health_checks").(*schema.Set).List()
healthChecks := make([]string, 0, len(hc))
for _, v := range hc {
@ -515,17 +522,18 @@ func expandBackendService(d *schema.ResourceData) (*compute.BackendService, erro
// type defaults to enable or disable IAP in the existence or absence
// of the block, instead of checking if the block exists, zeroing out
// fields, etc.
service := &compute.BackendService{
service := &computeBeta.BackendService{
Name: d.Get("name").(string),
HealthChecks: healthChecks,
Iap: &compute.BackendServiceIAP{
Iap: &computeBeta.BackendServiceIAP{
ForceSendFields: []string{"Enabled", "Oauth2ClientId", "Oauth2ClientSecret"},
},
CdnPolicy: &compute.BackendServiceCdnPolicy{
CacheKeyPolicy: &compute.CacheKeyPolicy{
CdnPolicy: &computeBeta.BackendServiceCdnPolicy{
CacheKeyPolicy: &computeBeta.CacheKeyPolicy{
ForceSendFields: []string{"IncludeProtocol", "IncludeHost", "IncludeQueryString", "QueryStringWhitelist", "QueryStringBlacklist"},
},
},
CustomRequestHeaders: convertStringSet(d.Get("custom_request_headers").(*schema.Set)),
}
if v, ok := d.GetOk("iap"); ok {
@ -565,7 +573,7 @@ func expandBackendService(d *schema.ResourceData) (*compute.BackendService, erro
}
connectionDrainingTimeoutSec := d.Get("connection_draining_timeout_sec")
connectionDraining := &compute.ConnectionDraining{
connectionDraining := &computeBeta.ConnectionDraining{
DrainingTimeoutSec: int64(connectionDrainingTimeoutSec.(int)),
}
@ -581,7 +589,7 @@ func expandBackendService(d *schema.ResourceData) (*compute.BackendService, erro
return service, nil
}
func expandCdnPolicy(configured []interface{}) *compute.BackendServiceCdnPolicy {
func expandCdnPolicy(configured []interface{}) *computeBeta.BackendServiceCdnPolicy {
if len(configured) == 0 {
return nil
}
@ -593,8 +601,8 @@ func expandCdnPolicy(configured []interface{}) *compute.BackendServiceCdnPolicy
}
ckpData := ckp[0].(map[string]interface{})
return &compute.BackendServiceCdnPolicy{
CacheKeyPolicy: &compute.CacheKeyPolicy{
return &computeBeta.BackendServiceCdnPolicy{
CacheKeyPolicy: &computeBeta.CacheKeyPolicy{
IncludeHost: ckpData["include_host"].(bool),
IncludeProtocol: ckpData["include_protocol"].(bool),
IncludeQueryString: ckpData["include_query_string"].(bool),

View File

@ -588,6 +588,37 @@ func TestAccComputeBackendService_withMaxConnectionsPerInstance(t *testing.T) {
}
}
func TestAccComputeBackendService_withCustomHeaders(t *testing.T) {
t.Parallel()
serviceName := fmt.Sprintf("tf-test-%s", acctest.RandString(10))
checkName := fmt.Sprintf("tf-test-%s", acctest.RandString(10))
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
CheckDestroy: testAccCheckComputeBackendServiceDestroy,
Steps: []resource.TestStep{
resource.TestStep{
Config: testAccComputeBackendService_withCustomHeaders(serviceName, checkName),
},
resource.TestStep{
ResourceName: "google_compute_backend_service.foobar",
ImportState: true,
ImportStateVerify: true,
},
resource.TestStep{
Config: testAccComputeBackendService_basic(serviceName, checkName),
},
resource.TestStep{
ResourceName: "google_compute_backend_service.foobar",
ImportState: true,
ImportStateVerify: true,
},
},
})
}
func testAccComputeBackendService_basic(serviceName, checkName string) string {
return fmt.Sprintf(`
resource "google_compute_backend_service" "foobar" {
@ -955,3 +986,21 @@ resource "google_compute_health_check" "default" {
}
`, serviceName, maxConnectionsPerInstance, igName, itName, checkName)
}
func testAccComputeBackendService_withCustomHeaders(serviceName, checkName string) string {
return fmt.Sprintf(`
resource "google_compute_backend_service" "foobar" {
name = "%s"
health_checks = ["${google_compute_http_health_check.zero.self_link}"]
custom_request_headers = ["Client-Region: {client_region}", "Client-Rtt: {client_rtt_msec}"]
}
resource "google_compute_http_health_check" "zero" {
name = "%s"
request_path = "/"
check_interval_sec = 1
timeout_sec = 1
}
`, serviceName, checkName)
}

View File

@ -7,6 +7,7 @@ import (
"github.com/hashicorp/terraform/helper/hashcode"
"github.com/hashicorp/terraform/helper/schema"
computeBeta "google.golang.org/api/compute/v0.beta"
"google.golang.org/api/compute/v1"
)
@ -118,7 +119,7 @@ func resourceComputeRegionBackendServiceCreate(d *schema.ResourceData, meta inte
healthChecks = append(healthChecks, v.(string))
}
service := compute.BackendService{
service := computeBeta.BackendService{
Name: d.Get("name").(string),
HealthChecks: healthChecks,
LoadBalancingScheme: "INTERNAL",
@ -149,7 +150,7 @@ func resourceComputeRegionBackendServiceCreate(d *schema.ResourceData, meta inte
}
if v, ok := d.GetOk("connection_draining_timeout_sec"); ok {
connectionDraining := &compute.ConnectionDraining{
connectionDraining := &computeBeta.ConnectionDraining{
DrainingTimeoutSec: int64(v.(int)),
}
@ -168,7 +169,7 @@ func resourceComputeRegionBackendServiceCreate(d *schema.ResourceData, meta inte
log.Printf("[DEBUG] Creating new Region Backend Service: %#v", service)
op, err := config.clientCompute.RegionBackendServices.Insert(
op, err := config.clientComputeBeta.RegionBackendServices.Insert(
project, region, &service).Do()
if err != nil {
return fmt.Errorf("Error creating backend service: %s", err)
@ -178,7 +179,7 @@ func resourceComputeRegionBackendServiceCreate(d *schema.ResourceData, meta inte
d.SetId(service.Name)
err = computeOperationWait(config.clientCompute, op, project, "Creating Region Backend Service")
err = computeSharedOperationWait(config.clientCompute, op, project, "Creating Region Backend Service")
if err != nil {
return err
}
@ -242,7 +243,7 @@ func resourceComputeRegionBackendServiceUpdate(d *schema.ResourceData, meta inte
healthChecks = append(healthChecks, v.(string))
}
service := compute.BackendService{
service := computeBeta.BackendService{
Name: d.Get("name").(string),
Fingerprint: d.Get("fingerprint").(string),
HealthChecks: healthChecks,
@ -270,7 +271,7 @@ func resourceComputeRegionBackendServiceUpdate(d *schema.ResourceData, meta inte
}
if d.HasChange("connection_draining_timeout_sec") {
connectionDraining := &compute.ConnectionDraining{
connectionDraining := &computeBeta.ConnectionDraining{
DrainingTimeoutSec: int64(d.Get("connection_draining_timeout_sec").(int)),
}
@ -278,7 +279,7 @@ func resourceComputeRegionBackendServiceUpdate(d *schema.ResourceData, meta inte
}
log.Printf("[DEBUG] Updating existing Backend Service %q: %#v", d.Id(), service)
op, err := config.clientCompute.RegionBackendServices.Update(
op, err := config.clientComputeBeta.RegionBackendServices.Update(
project, region, d.Id(), &service).Do()
if err != nil {
return fmt.Errorf("Error updating backend service: %s", err)
@ -286,7 +287,7 @@ func resourceComputeRegionBackendServiceUpdate(d *schema.ResourceData, meta inte
d.SetId(service.Name)
err = computeOperationWait(config.clientCompute, op, project, "Updating Backend Service")
err = computeSharedOperationWait(config.clientCompute, op, project, "Updating Backend Service")
if err != nil {
return err
}

View File

@ -29,7 +29,7 @@
"description": "Creates and runs virtual machines on Google Cloud Platform.",
"discoveryVersion": "v1",
"documentationLink": "https://developers.google.com/compute/docs/reference/latest/",
"etag": "\"-iA1DTNe4s-I6JZXPt1t1Ypy8IU/rbLFk9Clb6vab1hqkKH1aK-_W6I\"",
"etag": "\"Zkyw9ACJZUvcYmlFaKGChzhmtnE/injzol5OJYImoyc_4_PefG_Oiuc\"",
"icons": {
"x16": "https://www.google.com/images/icons/product/compute_engine-16.png",
"x32": "https://www.google.com/images/icons/product/compute_engine-32.png"
@ -74,12 +74,12 @@
"type": "boolean"
},
"quotaUser": {
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.",
"description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
"location": "query",
"type": "string"
},
"userIp": {
"description": "IP address of the site where the request originates. Use this if you want to enforce per-user limits.",
"description": "Deprecated. Please use quotaUser instead.",
"location": "query",
"type": "string"
}
@ -138,7 +138,7 @@
]
},
"get": {
"description": "Returns the specified accelerator type. Get a list of available accelerator types by making a list() request.",
"description": "Returns the specified accelerator type.",
"httpMethod": "GET",
"id": "compute.acceleratorTypes.get",
"parameterOrder": [
@ -669,7 +669,7 @@
]
},
"get": {
"description": "Returns the specified autoscaler resource. Get a list of available autoscalers by making a list() request.",
"description": "Returns the specified autoscaler resource. Gets a list of available autoscalers by making a list() request.",
"httpMethod": "GET",
"id": "compute.autoscalers.get",
"parameterOrder": [
@ -1074,7 +1074,7 @@
]
},
"get": {
"description": "Returns the specified BackendBucket resource. Get a list of available backend buckets by making a list() request.",
"description": "Returns the specified BackendBucket resource. Gets a list of available backend buckets by making a list() request.",
"httpMethod": "GET",
"id": "compute.backendBuckets.get",
"parameterOrder": [
@ -1447,7 +1447,7 @@
]
},
"get": {
"description": "Returns the specified BackendService resource. Get a list of available backend services by making a list() request.",
"description": "Returns the specified BackendService resource. Gets a list of available backend services by making a list() request.",
"httpMethod": "GET",
"id": "compute.backendServices.get",
"parameterOrder": [
@ -1811,7 +1811,7 @@
]
},
"get": {
"description": "Returns the specified disk type. Get a list of available disk types by making a list() request.",
"description": "Returns the specified disk type. Gets a list of available disk types by making a list() request.",
"httpMethod": "GET",
"id": "compute.diskTypes.get",
"parameterOrder": [
@ -2061,7 +2061,7 @@
]
},
"get": {
"description": "Returns a specified persistent disk. Get a list of available persistent disks by making a list() request.",
"description": "Returns a specified persistent disk. Gets a list of available persistent disks by making a list() request.",
"httpMethod": "GET",
"id": "compute.disks.get",
"parameterOrder": [
@ -3050,7 +3050,7 @@
]
},
"get": {
"description": "Returns the specified address resource. Get a list of available addresses by making a list() request.",
"description": "Returns the specified address resource. Gets a list of available addresses by making a list() request.",
"httpMethod": "GET",
"id": "compute.globalAddresses.get",
"parameterOrder": [
@ -3281,7 +3281,7 @@
]
},
"get": {
"description": "Returns the specified GlobalForwardingRule resource. Get a list of available forwarding rules by making a list() request.",
"description": "Returns the specified GlobalForwardingRule resource. Gets a list of available forwarding rules by making a list() request.",
"httpMethod": "GET",
"id": "compute.globalForwardingRules.get",
"parameterOrder": [
@ -3594,7 +3594,7 @@
]
},
"get": {
"description": "Retrieves the specified Operations resource. Get a list of operations by making a list() request.",
"description": "Retrieves the specified Operations resource. Gets a list of operations by making a list() request.",
"httpMethod": "GET",
"id": "compute.globalOperations.get",
"parameterOrder": [
@ -3719,7 +3719,7 @@
]
},
"get": {
"description": "Returns the specified HealthCheck resource. Get a list of available health checks by making a list() request.",
"description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
"httpMethod": "GET",
"id": "compute.healthChecks.get",
"parameterOrder": [
@ -3996,7 +3996,7 @@
]
},
"get": {
"description": "Returns the specified HttpHealthCheck resource. Get a list of available HTTP health checks by making a list() request.",
"description": "Returns the specified HttpHealthCheck resource. Gets a list of available HTTP health checks by making a list() request.",
"httpMethod": "GET",
"id": "compute.httpHealthChecks.get",
"parameterOrder": [
@ -4273,7 +4273,7 @@
]
},
"get": {
"description": "Returns the specified HttpsHealthCheck resource. Get a list of available HTTPS health checks by making a list() request.",
"description": "Returns the specified HttpsHealthCheck resource. Gets a list of available HTTPS health checks by making a list() request.",
"httpMethod": "GET",
"id": "compute.httpsHealthChecks.get",
"parameterOrder": [
@ -4591,7 +4591,7 @@
]
},
"get": {
"description": "Returns the specified image. Get a list of available images by making a list() request.",
"description": "Returns the specified image. Gets a list of available images by making a list() request.",
"httpMethod": "GET",
"id": "compute.images.get",
"parameterOrder": [
@ -5013,7 +5013,7 @@
]
},
"get": {
"description": "Returns all of the details about the specified managed instance group. Get a list of available managed instance groups by making a list() request.",
"description": "Returns all of the details about the specified managed instance group. Gets a list of available managed instance groups by making a list() request.",
"httpMethod": "GET",
"id": "compute.instanceGroupManagers.get",
"parameterOrder": [
@ -5778,7 +5778,7 @@
]
},
"get": {
"description": "Returns the specified instance group. Get a list of available instance groups by making a list() request.",
"description": "Returns the specified instance group. Gets a list of available instance groups by making a list() request.",
"httpMethod": "GET",
"id": "compute.instanceGroups.get",
"parameterOrder": [
@ -6161,7 +6161,7 @@
]
},
"get": {
"description": "Returns the specified instance template. Get a list of available instance templates by making a list() request.",
"description": "Returns the specified instance template. Gets a list of available instance templates by making a list() request.",
"httpMethod": "GET",
"id": "compute.instanceTemplates.get",
"parameterOrder": [
@ -6636,7 +6636,7 @@
]
},
"get": {
"description": "Returns the specified Instance resource. Get a list of available instances by making a list() request.",
"description": "Returns the specified Instance resource. Gets a list of available instances by making a list() request.",
"httpMethod": "GET",
"id": "compute.instances.get",
"parameterOrder": [
@ -7495,7 +7495,7 @@
]
},
"start": {
"description": "Starts an instance that was stopped using the using the instances().stop method. For more information, see Restart an instance.",
"description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
"httpMethod": "POST",
"id": "compute.instances.start",
"parameterOrder": [
@ -7541,7 +7541,7 @@
]
},
"startWithEncryptionKey": {
"description": "Starts an instance that was stopped using the using the instances().stop method. For more information, see Restart an instance.",
"description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
"httpMethod": "POST",
"id": "compute.instances.startWithEncryptionKey",
"parameterOrder": [
@ -8179,7 +8179,7 @@
"interconnectLocations": {
"methods": {
"get": {
"description": "Returns the details for the specified interconnect location. Get a list of available interconnect locations by making a list() request.",
"description": "Returns the details for the specified interconnect location. Gets a list of available interconnect locations by making a list() request.",
"httpMethod": "GET",
"id": "compute.interconnectLocations.get",
"parameterOrder": [
@ -8684,7 +8684,7 @@
]
},
"list": {
"description": "Retrieves the list of licenses available in the specified project. This method does not get any licenses that belong to other projects, including licenses attached to publicly-available images, like Debian 8. If you want to get a list of publicly-available licenses, use this method to make a request to the respective image project, such as debian-cloud or windows-cloud.",
"description": "Retrieves the list of licenses available in the specified project. This method does not get any licenses that belong to other projects, including licenses attached to publicly-available images, like Debian 9. If you want to get a list of publicly-available licenses, use this method to make a request to the respective image project, such as debian-cloud or windows-cloud.",
"httpMethod": "GET",
"id": "compute.licenses.list",
"parameterOrder": [
@ -8786,7 +8786,7 @@
]
},
"get": {
"description": "Returns the specified machine type. Get a list of available machine types by making a list() request.",
"description": "Returns the specified machine type. Gets a list of available machine types by making a list() request.",
"httpMethod": "GET",
"id": "compute.machineTypes.get",
"parameterOrder": [
@ -8968,7 +8968,7 @@
]
},
"get": {
"description": "Returns the specified network. Get a list of available networks by making a list() request.",
"description": "Returns the specified network. Gets a list of available networks by making a list() request.",
"httpMethod": "GET",
"id": "compute.networks.get",
"parameterOrder": [
@ -9397,7 +9397,7 @@
]
},
"getXpnHost": {
"description": "Get the shared VPC host project that this project links to. May be empty if no link exists.",
"description": "Gets the shared VPC host project that this project links to. May be empty if no link exists.",
"httpMethod": "GET",
"id": "compute.projects.getXpnHost",
"parameterOrder": [
@ -9422,7 +9422,7 @@
]
},
"getXpnResources": {
"description": "Get service resources (a.k.a service project) associated with this host project.",
"description": "Gets service resources (a.k.a service project) associated with this host project.",
"httpMethod": "GET",
"id": "compute.projects.getXpnResources",
"parameterOrder": [
@ -9466,7 +9466,7 @@
]
},
"listXpnHosts": {
"description": "List all shared VPC host projects visible to the user in an organization.",
"description": "Lists all shared VPC host projects visible to the user in an organization.",
"httpMethod": "POST",
"id": "compute.projects.listXpnHosts",
"parameterOrder": [
@ -10440,7 +10440,7 @@
]
},
"get": {
"description": "Returns the specified commitment resource. Get a list of available commitments by making a list() request.",
"description": "Returns the specified commitment resource. Gets a list of available commitments by making a list() request.",
"httpMethod": "GET",
"id": "compute.regionCommitments.get",
"parameterOrder": [
@ -10584,7 +10584,7 @@
"regionDiskTypes": {
"methods": {
"get": {
"description": "Returns the specified regional disk type. Get a list of available disk types by making a list() request.",
"description": "Returns the specified regional disk type. Gets a list of available disk types by making a list() request.",
"httpMethod": "GET",
"id": "compute.regionDiskTypes.get",
"parameterOrder": [
@ -12189,7 +12189,7 @@
"regions": {
"methods": {
"get": {
"description": "Returns the specified Region resource. Get a list of available regions by making a list() request.",
"description": "Returns the specified Region resource. Gets a list of available regions by making a list() request.",
"httpMethod": "GET",
"id": "compute.regions.get",
"parameterOrder": [
@ -12371,7 +12371,7 @@
]
},
"get": {
"description": "Returns the specified Router resource. Get a list of available routers by making a list() request.",
"description": "Returns the specified Router resource. Gets a list of available routers by making a list() request.",
"httpMethod": "GET",
"id": "compute.routers.get",
"parameterOrder": [
@ -12783,7 +12783,7 @@
]
},
"get": {
"description": "Returns the specified Route resource. Get a list of available routes by making a list() request.",
"description": "Returns the specified Route resource. Gets a list of available routes by making a list() request.",
"httpMethod": "GET",
"id": "compute.routes.get",
"parameterOrder": [
@ -13371,7 +13371,7 @@
]
},
"get": {
"description": "Returns the specified Snapshot resource. Get a list of available snapshots by making a list() request.",
"description": "Returns the specified Snapshot resource. Gets a list of available snapshots by making a list() request.",
"httpMethod": "GET",
"id": "compute.snapshots.get",
"parameterOrder": [
@ -13569,7 +13569,7 @@
]
},
"get": {
"description": "Returns the specified SslCertificate resource. Get a list of available SSL certificates by making a list() request.",
"description": "Returns the specified SslCertificate resource. Gets a list of available SSL certificates by making a list() request.",
"httpMethod": "GET",
"id": "compute.sslCertificates.get",
"parameterOrder": [
@ -13763,7 +13763,7 @@
]
},
"get": {
"description": "List all of the ordered rules present in a single specified policy.",
"description": "Lists all of the ordered rules present in a single specified policy.",
"httpMethod": "GET",
"id": "compute.sslPolicies.get",
"parameterOrder": [
@ -13796,7 +13796,7 @@
]
},
"insert": {
"description": "Returns the specified SSL policy resource. Get a list of available SSL policies by making a list() request.",
"description": "Returns the specified SSL policy resource. Gets a list of available SSL policies by making a list() request.",
"httpMethod": "POST",
"id": "compute.sslPolicies.insert",
"parameterOrder": [
@ -13829,7 +13829,7 @@
]
},
"list": {
"description": "List all the SSL policies that have been configured for the specified project.",
"description": "Lists all the SSL policies that have been configured for the specified project.",
"httpMethod": "GET",
"id": "compute.sslPolicies.list",
"parameterOrder": [
@ -14152,7 +14152,7 @@
]
},
"get": {
"description": "Returns the specified subnetwork. Get a list of available subnetworks list() request.",
"description": "Returns the specified subnetwork. Gets a list of available subnetworks list() request.",
"httpMethod": "GET",
"id": "compute.subnetworks.get",
"parameterOrder": [
@ -14383,7 +14383,7 @@
]
},
"patch": {
"description": "Patches the specified subnetwork with the data included in the request. Only the following fields within the subnetwork resource can be specified in the request: secondary_ip_range and allow_subnet_cidr_routes_overlap. It is also mandatory to specify the current fingeprint of the subnetwork resource being patched.",
"description": "Patches the specified subnetwork with the data included in the request. Only the following fields within the subnetwork resource can be specified in the request: secondary_ip_range, allow_subnet_cidr_routes_overlap and role. It is also mandatory to specify the current fingeprint of the subnetwork resource being patched.",
"httpMethod": "PATCH",
"id": "compute.subnetworks.patch",
"parameterOrder": [
@ -14465,7 +14465,7 @@
},
"path": "{project}/regions/{region}/subnetworks/{resource}/setIamPolicy",
"request": {
"$ref": "Policy"
"$ref": "RegionSetPolicyRequest"
},
"response": {
"$ref": "Policy"
@ -14612,7 +14612,7 @@
]
},
"get": {
"description": "Returns the specified TargetHttpProxy resource. Get a list of available target HTTP proxies by making a list() request.",
"description": "Returns the specified TargetHttpProxy resource. Gets a list of available target HTTP proxies by making a list() request.",
"httpMethod": "GET",
"id": "compute.targetHttpProxies.get",
"parameterOrder": [
@ -14848,7 +14848,7 @@
]
},
"get": {
"description": "Returns the specified TargetHttpsProxy resource. Get a list of available target HTTPS proxies by making a list() request.",
"description": "Returns the specified TargetHttpsProxy resource. Gets a list of available target HTTPS proxies by making a list() request.",
"httpMethod": "GET",
"id": "compute.targetHttpsProxies.get",
"parameterOrder": [
@ -15262,7 +15262,7 @@
]
},
"get": {
"description": "Returns the specified TargetInstance resource. Get a list of available target instances by making a list() request.",
"description": "Returns the specified TargetInstance resource. Gets a list of available target instances by making a list() request.",
"httpMethod": "GET",
"id": "compute.targetInstances.get",
"parameterOrder": [
@ -15644,7 +15644,7 @@
]
},
"get": {
"description": "Returns the specified target pool. Get a list of available target pools by making a list() request.",
"description": "Returns the specified target pool. Gets a list of available target pools by making a list() request.",
"httpMethod": "GET",
"id": "compute.targetPools.get",
"parameterOrder": [
@ -16069,7 +16069,7 @@
]
},
"get": {
"description": "Returns the specified TargetSslProxy resource. Get a list of available target SSL proxies by making a list() request.",
"description": "Returns the specified TargetSslProxy resource. Gets a list of available target SSL proxies by making a list() request.",
"httpMethod": "GET",
"id": "compute.targetSslProxies.get",
"parameterOrder": [
@ -16427,7 +16427,7 @@
]
},
"get": {
"description": "Returns the specified TargetTcpProxy resource. Get a list of available target TCP proxies by making a list() request.",
"description": "Returns the specified TargetTcpProxy resource. Gets a list of available target TCP proxies by making a list() request.",
"httpMethod": "GET",
"id": "compute.targetTcpProxies.get",
"parameterOrder": [
@ -16724,7 +16724,7 @@
]
},
"get": {
"description": "Returns the specified target VPN gateway. Get a list of available target VPN gateways by making a list() request.",
"description": "Returns the specified target VPN gateway. Gets a list of available target VPN gateways by making a list() request.",
"httpMethod": "GET",
"id": "compute.targetVpnGateways.get",
"parameterOrder": [
@ -17000,7 +17000,7 @@
]
},
"get": {
"description": "Returns the specified UrlMap resource. Get a list of available URL maps by making a list() request.",
"description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
"httpMethod": "GET",
"id": "compute.urlMaps.get",
"parameterOrder": [
@ -17411,7 +17411,7 @@
]
},
"get": {
"description": "Returns the specified VpnTunnel resource. Get a list of available VPN tunnels by making a list() request.",
"description": "Returns the specified VpnTunnel resource. Gets a list of available VPN tunnels by making a list() request.",
"httpMethod": "GET",
"id": "compute.vpnTunnels.get",
"parameterOrder": [
@ -17790,7 +17790,7 @@
"zones": {
"methods": {
"get": {
"description": "Returns the specified Zone resource. Get a list of available zones by making a list() request.",
"description": "Returns the specified Zone resource. Gets a list of available zones by making a list() request.",
"httpMethod": "GET",
"id": "compute.zones.get",
"parameterOrder": [
@ -17875,7 +17875,7 @@
}
}
},
"revision": "20180314",
"revision": "20180428",
"rootUrl": "https://www.googleapis.com/",
"schemas": {
"AcceleratorConfig": {
@ -18169,7 +18169,7 @@
"id": "AcceleratorTypesScopedList",
"properties": {
"acceleratorTypes": {
"description": "[Output Only] List of accelerator types contained in this scope.",
"description": "[Output Only] A list of accelerator types contained in this scope.",
"items": {
"$ref": "AcceleratorType"
},
@ -18660,7 +18660,7 @@
"id": "AddressesScopedList",
"properties": {
"addresses": {
"description": "[Output Only] List of addresses contained in this scope.",
"description": "[Output Only] A list of addresses contained in this scope.",
"items": {
"$ref": "Address"
},
@ -19337,7 +19337,7 @@
"id": "AutoscalersScopedList",
"properties": {
"autoscalers": {
"description": "[Output Only] List of autoscalers contained in this scope.",
"description": "[Output Only] A list of autoscalers contained in this scope.",
"items": {
"$ref": "Autoscaler"
},
@ -19790,6 +19790,13 @@
"description": "[Output Only] Creation timestamp in RFC3339 text format.",
"type": "string"
},
"customRequestHeaders": {
"description": "Headers that the HTTP/S load balancer should add to proxied requests.",
"items": {
"type": "string"
},
"type": "array"
},
"description": {
"description": "An optional description of this resource. Provide this property when you create the resource.",
"type": "string"
@ -19855,6 +19862,7 @@
"description": "The protocol this BackendService uses to communicate with backends.\n\nPossible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.\n\nFor internal load balancing, the possible values are TCP and UDP, and the default is TCP.",
"enum": [
"HTTP",
"HTTP2",
"HTTPS",
"SSL",
"TCP",
@ -19865,6 +19873,7 @@
"",
"",
"",
"",
""
],
"type": "string"
@ -20196,7 +20205,7 @@
"id": "BackendServicesScopedList",
"properties": {
"backendServices": {
"description": "List of BackendServices contained in this scope.",
"description": "A list of BackendServices contained in this scope.",
"items": {
"$ref": "BackendService"
},
@ -20295,7 +20304,7 @@
"description": "The condition that is associated with this binding. NOTE: an unsatisfied condition will not allow user access via current binding. Different bindings, including their conditions, are examined independently. This field is only visible as GOOGLE_INTERNAL or CONDITION_TRUSTED_TESTER."
},
"members": {
"description": "Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.\n\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.",
"description": "Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` .\n\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.\n\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.",
"items": {
"type": "string"
},
@ -20404,7 +20413,7 @@
"type": "string"
},
"resources": {
"description": "List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.",
"description": "A list of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.",
"items": {
"$ref": "ResourceCommitment"
},
@ -20669,7 +20678,7 @@
"id": "CommitmentsScopedList",
"properties": {
"commitments": {
"description": "[Output Only] List of commitments contained in this scope.",
"description": "[Output Only] A list of commitments contained in this scope.",
"items": {
"$ref": "Commitment"
},
@ -20857,12 +20866,16 @@
"description": "Represents a customer-supplied encryption key",
"id": "CustomerEncryptionKey",
"properties": {
"kmsKeyName": {
"description": "The name of the encryption key that is stored in Google Cloud KMS.",
"type": "string"
},
"rawKey": {
"description": "Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.",
"type": "string"
},
"rsaEncryptedKey": {
"description": "Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource.\n\nThe key must meet the following requirements before you can provide it to Compute Engine: \n- The key is wrapped using a RSA public key certificate provided by Google. \n- After being wrapped, the key must be encoded in RFC 4648 base64 encoding. Get the RSA public key certificate provided by Google at:\nhttps://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem",
"description": "Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource.\n\nThe key must meet the following requirements before you can provide it to Compute Engine: \n- The key is wrapped using a RSA public key certificate provided by Google. \n- After being wrapped, the key must be encoded in RFC 4648 base64 encoding. Gets the RSA public key certificate provided by Google at:\nhttps://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem",
"type": "string"
},
"sha256": {
@ -21410,6 +21423,10 @@
"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
"type": "string"
},
"region": {
"description": "[Output Only] URL of the region where the disk type resides. Only applicable for regional resources. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.",
"type": "string"
},
"selfLink": {
"description": "[Output Only] Server-defined URL for the resource.",
"type": "string"
@ -21653,7 +21670,7 @@
"id": "DiskTypesScopedList",
"properties": {
"diskTypes": {
"description": "[Output Only] List of disk types contained in this scope.",
"description": "[Output Only] A list of disk types contained in this scope.",
"items": {
"$ref": "DiskType"
},
@ -21758,7 +21775,7 @@
"id": "DisksScopedList",
"properties": {
"disks": {
"description": "[Output Only] List of disks contained in this scope.",
"description": "[Output Only] A list of disks contained in this scope.",
"items": {
"$ref": "Disk"
},
@ -22558,7 +22575,7 @@
"id": "ForwardingRulesScopedList",
"properties": {
"forwardingRules": {
"description": "List of forwarding rules contained in this scope.",
"description": "A list of forwarding rules contained in this scope.",
"items": {
"$ref": "ForwardingRule"
},
@ -22693,6 +22710,45 @@
},
"type": "object"
},
"HTTP2HealthCheck": {
"id": "HTTP2HealthCheck",
"properties": {
"host": {
"description": "The value of the host header in the HTTP/2 health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.",
"type": "string"
},
"port": {
"description": "The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.",
"format": "int32",
"type": "integer"
},
"portName": {
"description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.",
"type": "string"
},
"proxyHeader": {
"description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.",
"enum": [
"NONE",
"PROXY_V1"
],
"enumDescriptions": [
"",
""
],
"type": "string"
},
"requestPath": {
"description": "The request path of the HTTP/2 health check request. The default value is /.",
"type": "string"
},
"response": {
"description": "The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.",
"type": "string"
}
},
"type": "object"
},
"HTTPHealthCheck": {
"id": "HTTPHealthCheck",
"properties": {
@ -22793,6 +22849,9 @@
"format": "int32",
"type": "integer"
},
"http2HealthCheck": {
"$ref": "HTTP2HealthCheck"
},
"httpHealthCheck": {
"$ref": "HTTPHealthCheck"
},
@ -22833,6 +22892,7 @@
"description": "Specifies the type of the healthCheck, either TCP, SSL, HTTP or HTTPS. If not specified, the default is TCP. Exactly one of the protocol-specific health check field must be specified, which must match type field.",
"enum": [
"HTTP",
"HTTP2",
"HTTPS",
"INVALID",
"SSL",
@ -22845,6 +22905,7 @@
"",
"",
"",
"",
""
],
"type": "string"
@ -23723,7 +23784,7 @@
"type": "array"
},
"guestAccelerators": {
"description": "List of the type and count of accelerator cards attached to the instance.",
"description": "A list of the type and count of accelerator cards attached to the instance.",
"items": {
"$ref": "AcceleratorConfig"
},
@ -23740,7 +23801,7 @@
"type": "string"
},
"labelFingerprint": {
"description": "A fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.\n\nTo see the latest fingerprint, make get() request to the instance.",
"description": "A fingerprint for this request, which is essentially a hash of the label's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.\n\nTo see the latest fingerprint, make get() request to the instance.",
"format": "byte",
"type": "string"
},
@ -24004,7 +24065,7 @@
"type": "string"
},
"region": {
"description": "The URL of the region where the instance group is located (for regional resources).",
"description": "[Output Only] The URL of the region where the instance group is located (for regional resources).",
"type": "string"
},
"selfLink": {
@ -24017,7 +24078,7 @@
"type": "integer"
},
"subnetwork": {
"description": "The URL of the subnetwork to which all instances in the instance group belong.",
"description": "[Output Only] The URL of the subnetwork to which all instances in the instance group belong.",
"type": "string"
},
"zone": {
@ -24301,7 +24362,7 @@
"type": "string"
},
"fingerprint": {
"description": "[Output Only] The fingerprint of the resource data. You can use this optional field for optimistic locking when you update the resource.",
"description": "Fingerprint of this resource. This field may be used in optimistic locking. It will be ignored when inserting an InstanceGroupManager. An up-to-date fingerprint must be provided in order to update the InstanceGroupManager or the field need to be unset.",
"format": "byte",
"type": "string"
},
@ -24354,7 +24415,7 @@
"type": "string"
},
"serviceAccount": {
"description": "[Output Only] The service account to be used as credentials for all operations performed by the managed instance group on instances. The service accounts needs all permissions required to create and delete instances. By default, the service account {projectNumber}@cloudservices.gserviceaccount.com is used.",
"description": "The service account to be used as credentials for all operations performed by the managed instance group on instances. The service accounts needs all permissions required to create and delete instances. By default, the service account {projectNumber}@cloudservices.gserviceaccount.com is used.",
"type": "string"
},
"targetPools": {
@ -25771,7 +25832,7 @@
"id": "InstancesScopedList",
"properties": {
"instances": {
"description": "[Output Only] List of instances contained in this scope.",
"description": "[Output Only] A list of instances contained in this scope.",
"items": {
"$ref": "Instance"
},
@ -25882,7 +25943,7 @@
"id": "InstancesSetMachineResourcesRequest",
"properties": {
"guestAccelerators": {
"description": "List of the type and count of accelerator cards attached to the instance.",
"description": "A list of the type and count of accelerator cards attached to the instance.",
"items": {
"$ref": "AcceleratorConfig"
},
@ -25950,7 +26011,7 @@
"type": "boolean"
},
"circuitInfos": {
"description": "[Output Only] List of CircuitInfo objects, that describe the individual circuits in this LAG.",
"description": "[Output Only] A list of CircuitInfo objects, that describe the individual circuits in this LAG.",
"items": {
"$ref": "InterconnectCircuitInfo"
},
@ -25969,7 +26030,7 @@
"type": "string"
},
"expectedOutages": {
"description": "[Output Only] List of outages expected for this Interconnect.",
"description": "[Output Only] A list of outages expected for this Interconnect.",
"items": {
"$ref": "InterconnectOutageNotification"
},
@ -26550,7 +26611,7 @@
"id": "InterconnectAttachmentsScopedList",
"properties": {
"interconnectAttachments": {
"description": "List of interconnect attachments contained in this scope.",
"description": "A list of interconnect attachments contained in this scope.",
"items": {
"$ref": "InterconnectAttachment"
},
@ -27012,7 +27073,7 @@
"id": "InterconnectOutageNotification",
"properties": {
"affectedCircuits": {
"description": "Iff issue_type is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that will be affected.",
"description": "If issue_type is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that will be affected.",
"items": {
"type": "string"
},
@ -27713,7 +27774,7 @@
"id": "MachineTypesScopedList",
"properties": {
"machineTypes": {
"description": "[Output Only] List of machine types contained in this scope.",
"description": "[Output Only] A list of machine types contained in this scope.",
"items": {
"$ref": "MachineType"
},
@ -28034,7 +28095,7 @@
"type": "string"
},
"peerings": {
"description": "[Output Only] List of network peerings for the resource.",
"description": "[Output Only] A list of network peerings for the resource.",
"items": {
"$ref": "NetworkPeering"
},
@ -28309,7 +28370,7 @@
"id": "Operation",
"properties": {
"clientOperationId": {
"description": "[Output Only] Reserved for future use.",
"description": "[Output Only] The value of `requestId` if you provided it in the request. Not present otherwise.",
"type": "string"
},
"creationTimestamp": {
@ -28749,7 +28810,7 @@
"id": "OperationsScopedList",
"properties": {
"operations": {
"description": "[Output Only] List of operations contained in this scope.",
"description": "[Output Only] A list of operations contained in this scope.",
"items": {
"$ref": "Operation"
},
@ -28884,7 +28945,7 @@
"type": "object"
},
"Policy": {
"description": "Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.\n\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM.\n\n**Example**\n\n{ \"bindings\": [ { \"role\": \"roles/owner\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-other-app@appspot.gserviceaccount.com\", ] }, { \"role\": \"roles/viewer\", \"members\": [\"user:sean@example.com\"] } ] }\n\nFor a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam/docs).",
"description": "Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.\n\n\n\nA `Policy` consists of a list of `bindings`. A `binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM.\n\n**JSON Example**\n\n{ \"bindings\": [ { \"role\": \"roles/owner\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-other-app@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/viewer\", \"members\": [\"user:sean@example.com\"] } ] }\n\n**YAML Example**\n\nbindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-other-app@appspot.gserviceaccount.com role: roles/owner - members: - user:sean@example.com role: roles/viewer\n\n\n\nFor a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam/docs).",
"id": "Policy",
"properties": {
"auditConfigs": {
@ -29106,6 +29167,8 @@
"INSTANCE_GROUP_MANAGERS",
"INSTANCE_TEMPLATES",
"INTERCONNECTS",
"INTERCONNECT_ATTACHMENTS_PER_REGION",
"INTERCONNECT_ATTACHMENTS_TOTAL_MBPS",
"INTERNAL_ADDRESSES",
"IN_USE_ADDRESSES",
"LOCAL_SSD_TOTAL_GB",
@ -29185,6 +29248,8 @@
"",
"",
"",
"",
"",
""
],
"type": "string"
@ -29772,7 +29837,7 @@
"id": "RegionInstanceGroupManagersListInstancesResponse",
"properties": {
"managedInstances": {
"description": "List of managed instances.",
"description": "A list of managed instances.",
"items": {
"$ref": "ManagedInstance"
},
@ -30120,6 +30185,28 @@
},
"type": "object"
},
"RegionSetPolicyRequest": {
"id": "RegionSetPolicyRequest",
"properties": {
"bindings": {
"description": "Flatten Policy to create a backwacd compatible wire-format. Deprecated. Use 'policy' to specify bindings.",
"items": {
"$ref": "Binding"
},
"type": "array"
},
"etag": {
"description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag.",
"format": "byte",
"type": "string"
},
"policy": {
"$ref": "Policy",
"description": "REQUIRED: The complete policy to be applied to the 'resource'. The size of the policy is limited to a few 10s of KB. An empty policy is in general a valid policy but certain services (like Projects) might reject them."
}
},
"type": "object"
},
"ResourceCommitment": {
"description": "Commitment for a particular resource (a Commitment is composed of one or more of these).",
"id": "ResourceCommitment",
@ -30744,6 +30831,18 @@
"description": "IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.",
"type": "string"
},
"managementType": {
"description": "[Output Only] Type of how the resource/configuration of the BGP peer is managed. MANAGED_BY_USER is the default value; MANAGED_BY_ATTACHMENT represents an BGP peer that is automatically created for PARTNER interconnectAttachment, Google will automatically create/delete this type of BGP peer when the PARTNER interconnectAttachment is created/deleted.",
"enum": [
"MANAGED_BY_ATTACHMENT",
"MANAGED_BY_USER"
],
"enumDescriptions": [
"",
""
],
"type": "string"
},
"name": {
"description": "Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.",
"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
@ -30776,6 +30875,18 @@
"description": "URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.",
"type": "string"
},
"managementType": {
"description": "[Output Only] Type of how the resource/configuration of the interface is managed. MANAGED_BY_USER is the default value; MANAGED_BY_ATTACHMENT represents an interface that is automatically created for PARTNER type interconnectAttachment, Google will automatically create/update/delete this type of interface when the PARTNER interconnectAttachment is created/provisioned/deleted.",
"enum": [
"MANAGED_BY_ATTACHMENT",
"MANAGED_BY_USER"
],
"enumDescriptions": [
"",
""
],
"type": "string"
},
"name": {
"description": "Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.",
"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
@ -31014,7 +31125,7 @@
"id": "RoutersScopedList",
"properties": {
"routers": {
"description": "List of routers contained in this scope.",
"description": "A list of routers contained in this scope.",
"items": {
"$ref": "Router"
},
@ -31265,7 +31376,7 @@
"type": "string"
},
"rules": {
"description": "List 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": "A list 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.",
"items": {
"$ref": "SecurityPolicyRule"
},
@ -31435,6 +31546,10 @@
"$ref": "SecurityPolicyRuleMatcherConfig",
"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."
},
"expr": {
"$ref": "Expr",
"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."
},
"srcIpRanges": {
"description": "CIDR IP address range.",
"items": {
@ -32063,7 +32178,7 @@
"type": "string"
},
"customFeatures": {
"description": "List of features enabled when the selected profile is CUSTOM. The\n- method returns the set of features that can be specified in this list. This field must be empty if the profile is not CUSTOM.",
"description": "A list of features enabled when the selected profile is CUSTOM. The\n- method returns the set of features that can be specified in this list. This field must be empty if the profile is not CUSTOM.",
"items": {
"type": "string"
},
@ -32096,15 +32211,13 @@
"type": "string"
},
"minTlsVersion": {
"description": "The minimum version of SSL protocol that can be used by the clients to establish a connection with the load balancer. This can be one of TLS_1_0, TLS_1_1, TLS_1_2, TLS_1_3.",
"description": "The minimum version of SSL protocol that can be used by the clients to establish a connection with the load balancer. This can be one of TLS_1_0, TLS_1_1, TLS_1_2.",
"enum": [
"TLS_1_0",
"TLS_1_1",
"TLS_1_2",
"TLS_1_3"
"TLS_1_2"
],
"enumDescriptions": [
"",
"",
"",
""
@ -32560,7 +32673,7 @@
"id": "SubnetworksScopedList",
"properties": {
"subnetworks": {
"description": "List of subnetworks contained in this scope.",
"description": "A list of subnetworks contained in this scope.",
"items": {
"$ref": "Subnetwork"
},
@ -32699,7 +32812,7 @@
"id": "Tags",
"properties": {
"fingerprint": {
"description": "Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.\n\nTo see the latest fingerprint, make get() request to the instance.",
"description": "Specifies a fingerprint for this request, which is essentially a hash of the tags' contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update tags. You must always provide an up-to-date fingerprint hash in order to update or change tags.\n\nTo see the latest fingerprint, make get() request to the instance.",
"format": "byte",
"type": "string"
},
@ -33351,7 +33464,7 @@
"id": "TargetInstancesScopedList",
"properties": {
"targetInstances": {
"description": "List of target instances contained in this scope.",
"description": "A list of target instances contained in this scope.",
"items": {
"$ref": "TargetInstance"
},
@ -33817,7 +33930,7 @@
"id": "TargetPoolsScopedList",
"properties": {
"targetPools": {
"description": "List of target pools contained in this scope.",
"description": "A list of target pools contained in this scope.",
"items": {
"$ref": "TargetPool"
},
@ -34642,7 +34755,7 @@
"id": "TargetVpnGatewaysScopedList",
"properties": {
"targetVpnGateways": {
"description": "[Output Only] List of target vpn gateways contained in this scope.",
"description": "[Output Only] A list of target vpn gateways contained in this scope.",
"items": {
"$ref": "TargetVpnGateway"
},
@ -35556,7 +35669,7 @@
"id": "VpnTunnelsScopedList",
"properties": {
"vpnTunnels": {
"description": "List of vpn tunnels contained in this scope.",
"description": "A list of vpn tunnels contained in this scope.",
"items": {
"$ref": "VpnTunnel"
},

File diff suppressed because it is too large Load Diff

6
vendor/vendor.json vendored
View File

@ -1286,10 +1286,10 @@
"revisionTime": "2017-09-12T00:03:44Z"
},
{
"checksumSHA1": "gMu2KulO+2hJ4Bd00LqoQbIlVQU=",
"checksumSHA1": "w9T4m06NWJ5Wi62iHilwy92AEQI=",
"path": "google.golang.org/api/compute/v0.beta",
"revision": "e4126357c891acdef6dcd7805daa4c6533be6544",
"revisionTime": "2018-03-26T00:03:39Z"
"revision": "348810ff778af56686d572415ce79e6c9fad9613",
"revisionTime": "2018-05-08T15:48:10Z"
},
{
"checksumSHA1": "5ZmxWSE3+bfzxX6IJDmTtmjurJU=",

View File

@ -84,6 +84,9 @@ The following arguments are supported:
* `connection_draining_timeout_sec` - (Optional) Time for which instance will be drained (not accept new connections,
but still work to finish started ones). Defaults to `300`.
* `custom_request_headers` - (Optional, [Beta](/docs/providers/google/index.html#beta-features)) Headers that the
HTTP/S load balancer should add to proxied requests. See [guide](https://cloud.google.com/compute/docs/load-balancing/http/backend-service#user-defined-request-headers) for details.
* `description` - (Optional) The textual description for the backend service.
* `enable_cdn` - (Optional) Whether or not to enable the Cloud CDN on the backend service.