Merge pull request #65120 from freehan/revendor

Automatic merge from submit-queue (batch tested with PRs 64575, 65120, 65463, 65434, 65522). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Revendor GCE Go Client

Revendor GCE API go client and switch to use beta neg api in gce cloud provider.

```release-note
None
```
pull/8/head
Kubernetes Submit Queue 2018-06-28 02:20:16 -07:00 committed by GitHub
commit 2a0ad6b987
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 7816 additions and 170 deletions

22
Godeps/Godeps.json generated
View File

@ -3111,47 +3111,47 @@
}, },
{ {
"ImportPath": "google.golang.org/api/compute/v0.alpha", "ImportPath": "google.golang.org/api/compute/v0.alpha",
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5" "Rev": "3639d6d93f377f39a1de765fa4ef37b3c7ca8bd9"
}, },
{ {
"ImportPath": "google.golang.org/api/compute/v0.beta", "ImportPath": "google.golang.org/api/compute/v0.beta",
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5" "Rev": "3639d6d93f377f39a1de765fa4ef37b3c7ca8bd9"
}, },
{ {
"ImportPath": "google.golang.org/api/compute/v1", "ImportPath": "google.golang.org/api/compute/v1",
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5" "Rev": "3639d6d93f377f39a1de765fa4ef37b3c7ca8bd9"
}, },
{ {
"ImportPath": "google.golang.org/api/container/v1", "ImportPath": "google.golang.org/api/container/v1",
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5" "Rev": "3639d6d93f377f39a1de765fa4ef37b3c7ca8bd9"
}, },
{ {
"ImportPath": "google.golang.org/api/gensupport", "ImportPath": "google.golang.org/api/gensupport",
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5" "Rev": "3639d6d93f377f39a1de765fa4ef37b3c7ca8bd9"
}, },
{ {
"ImportPath": "google.golang.org/api/googleapi", "ImportPath": "google.golang.org/api/googleapi",
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5" "Rev": "3639d6d93f377f39a1de765fa4ef37b3c7ca8bd9"
}, },
{ {
"ImportPath": "google.golang.org/api/googleapi/internal/uritemplates", "ImportPath": "google.golang.org/api/googleapi/internal/uritemplates",
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5" "Rev": "3639d6d93f377f39a1de765fa4ef37b3c7ca8bd9"
}, },
{ {
"ImportPath": "google.golang.org/api/logging/v2beta1", "ImportPath": "google.golang.org/api/logging/v2beta1",
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5" "Rev": "3639d6d93f377f39a1de765fa4ef37b3c7ca8bd9"
}, },
{ {
"ImportPath": "google.golang.org/api/monitoring/v3", "ImportPath": "google.golang.org/api/monitoring/v3",
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5" "Rev": "3639d6d93f377f39a1de765fa4ef37b3c7ca8bd9"
}, },
{ {
"ImportPath": "google.golang.org/api/pubsub/v1", "ImportPath": "google.golang.org/api/pubsub/v1",
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5" "Rev": "3639d6d93f377f39a1de765fa4ef37b3c7ca8bd9"
}, },
{ {
"ImportPath": "google.golang.org/api/tpu/v1", "ImportPath": "google.golang.org/api/tpu/v1",
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5" "Rev": "3639d6d93f377f39a1de765fa4ef37b3c7ca8bd9"
}, },
{ {
"ImportPath": "google.golang.org/genproto/googleapis/api/annotations", "ImportPath": "google.golang.org/genproto/googleapis/api/annotations",

File diff suppressed because it is too large Load Diff

View File

@ -1207,7 +1207,7 @@ func Test{{.Service}}Group(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("Alpha{{.Service}}().List(); got %+v, want %+v", got, want) t.Errorf("Beta{{.Service}}().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -1227,7 +1227,7 @@ func Test{{.Service}}Group(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("Alpha{{.Service}}().List(); got %+v, want %+v", got, want) t.Errorf("{{.Service}}().List(); got %+v, want %+v", got, want)
} }
} }
} }

View File

@ -127,7 +127,7 @@ func TestAddressesGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaAddresses().List(); got %+v, want %+v", got, want) t.Errorf("BetaAddresses().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -141,7 +141,7 @@ func TestAddressesGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaAddresses().List(); got %+v, want %+v", got, want) t.Errorf("Addresses().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -262,7 +262,7 @@ func TestBackendServicesGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaBackendServices().List(); got %+v, want %+v", got, want) t.Errorf("BetaBackendServices().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -276,7 +276,7 @@ func TestBackendServicesGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaBackendServices().List(); got %+v, want %+v", got, want) t.Errorf("BackendServices().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -351,7 +351,7 @@ func TestDisksGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaDisks().List(); got %+v, want %+v", got, want) t.Errorf("Disks().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -414,7 +414,7 @@ func TestFirewallsGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaFirewalls().List(); got %+v, want %+v", got, want) t.Errorf("Firewalls().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -507,7 +507,7 @@ func TestForwardingRulesGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaForwardingRules().List(); got %+v, want %+v", got, want) t.Errorf("ForwardingRules().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -576,7 +576,7 @@ func TestGlobalAddressesGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaGlobalAddresses().List(); got %+v, want %+v", got, want) t.Errorf("GlobalAddresses().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -639,7 +639,7 @@ func TestGlobalForwardingRulesGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaGlobalForwardingRules().List(); got %+v, want %+v", got, want) t.Errorf("GlobalForwardingRules().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -665,6 +665,8 @@ func TestHealthChecksGroup(t *testing.T) {
var key *meta.Key var key *meta.Key
keyAlpha := meta.GlobalKey("key-alpha") keyAlpha := meta.GlobalKey("key-alpha")
key = keyAlpha key = keyAlpha
keyBeta := meta.GlobalKey("key-beta")
key = keyBeta
keyGA := meta.GlobalKey("key-ga") keyGA := meta.GlobalKey("key-ga")
key = keyGA key = keyGA
// Ignore unused variables. // Ignore unused variables.
@ -674,6 +676,9 @@ func TestHealthChecksGroup(t *testing.T) {
if _, err := mock.AlphaHealthChecks().Get(ctx, key); err == nil { if _, err := mock.AlphaHealthChecks().Get(ctx, key); err == nil {
t.Errorf("AlphaHealthChecks().Get(%v, %v) = _, nil; want error", ctx, key) t.Errorf("AlphaHealthChecks().Get(%v, %v) = _, nil; want error", ctx, key)
} }
if _, err := mock.BetaHealthChecks().Get(ctx, key); err == nil {
t.Errorf("BetaHealthChecks().Get(%v, %v) = _, nil; want error", ctx, key)
}
if _, err := mock.HealthChecks().Get(ctx, key); err == nil { if _, err := mock.HealthChecks().Get(ctx, key); err == nil {
t.Errorf("HealthChecks().Get(%v, %v) = _, nil; want error", ctx, key) t.Errorf("HealthChecks().Get(%v, %v) = _, nil; want error", ctx, key)
} }
@ -685,6 +690,12 @@ func TestHealthChecksGroup(t *testing.T) {
t.Errorf("AlphaHealthChecks().Insert(%v, %v, %v) = %v; want nil", ctx, keyAlpha, obj, err) t.Errorf("AlphaHealthChecks().Insert(%v, %v, %v) = %v; want nil", ctx, keyAlpha, obj, err)
} }
} }
{
obj := &beta.HealthCheck{}
if err := mock.BetaHealthChecks().Insert(ctx, keyBeta, obj); err != nil {
t.Errorf("BetaHealthChecks().Insert(%v, %v, %v) = %v; want nil", ctx, keyBeta, obj, err)
}
}
{ {
obj := &ga.HealthCheck{} obj := &ga.HealthCheck{}
if err := mock.HealthChecks().Insert(ctx, keyGA, obj); err != nil { if err := mock.HealthChecks().Insert(ctx, keyGA, obj); err != nil {
@ -696,15 +707,20 @@ func TestHealthChecksGroup(t *testing.T) {
if obj, err := mock.AlphaHealthChecks().Get(ctx, key); err != nil { if obj, err := mock.AlphaHealthChecks().Get(ctx, key); err != nil {
t.Errorf("AlphaHealthChecks().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err) t.Errorf("AlphaHealthChecks().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err)
} }
if obj, err := mock.BetaHealthChecks().Get(ctx, key); err != nil {
t.Errorf("BetaHealthChecks().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err)
}
if obj, err := mock.HealthChecks().Get(ctx, key); err != nil { if obj, err := mock.HealthChecks().Get(ctx, key); err != nil {
t.Errorf("HealthChecks().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err) t.Errorf("HealthChecks().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err)
} }
// List. // List.
mock.MockAlphaHealthChecks.Objects[*keyAlpha] = mock.MockAlphaHealthChecks.Obj(&alpha.HealthCheck{Name: keyAlpha.Name}) mock.MockAlphaHealthChecks.Objects[*keyAlpha] = mock.MockAlphaHealthChecks.Obj(&alpha.HealthCheck{Name: keyAlpha.Name})
mock.MockBetaHealthChecks.Objects[*keyBeta] = mock.MockBetaHealthChecks.Obj(&beta.HealthCheck{Name: keyBeta.Name})
mock.MockHealthChecks.Objects[*keyGA] = mock.MockHealthChecks.Obj(&ga.HealthCheck{Name: keyGA.Name}) mock.MockHealthChecks.Objects[*keyGA] = mock.MockHealthChecks.Obj(&ga.HealthCheck{Name: keyGA.Name})
want := map[string]bool{ want := map[string]bool{
"key-alpha": true, "key-alpha": true,
"key-beta": true,
"key-ga": true, "key-ga": true,
} }
_ = want // ignore unused variables. _ = want // ignore unused variables.
@ -722,6 +738,20 @@ func TestHealthChecksGroup(t *testing.T) {
} }
} }
} }
{
objs, err := mock.BetaHealthChecks().List(ctx, filter.None)
if err != nil {
t.Errorf("BetaHealthChecks().List(%v, %v, %v) = %v, %v; want _, nil", ctx, location, filter.None, objs, err)
} else {
got := map[string]bool{}
for _, obj := range objs {
got[obj.Name] = true
}
if !reflect.DeepEqual(got, want) {
t.Errorf("BetaHealthChecks().List(); got %+v, want %+v", got, want)
}
}
}
{ {
objs, err := mock.HealthChecks().List(ctx, filter.None) objs, err := mock.HealthChecks().List(ctx, filter.None)
if err != nil { if err != nil {
@ -732,7 +762,7 @@ func TestHealthChecksGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaHealthChecks().List(); got %+v, want %+v", got, want) t.Errorf("HealthChecks().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -741,6 +771,9 @@ func TestHealthChecksGroup(t *testing.T) {
if err := mock.AlphaHealthChecks().Delete(ctx, keyAlpha); err != nil { if err := mock.AlphaHealthChecks().Delete(ctx, keyAlpha); err != nil {
t.Errorf("AlphaHealthChecks().Delete(%v, %v) = %v; want nil", ctx, keyAlpha, err) t.Errorf("AlphaHealthChecks().Delete(%v, %v) = %v; want nil", ctx, keyAlpha, err)
} }
if err := mock.BetaHealthChecks().Delete(ctx, keyBeta); err != nil {
t.Errorf("BetaHealthChecks().Delete(%v, %v) = %v; want nil", ctx, keyBeta, err)
}
if err := mock.HealthChecks().Delete(ctx, keyGA); err != nil { if err := mock.HealthChecks().Delete(ctx, keyGA); err != nil {
t.Errorf("HealthChecks().Delete(%v, %v) = %v; want nil", ctx, keyGA, err) t.Errorf("HealthChecks().Delete(%v, %v) = %v; want nil", ctx, keyGA, err)
} }
@ -749,6 +782,9 @@ func TestHealthChecksGroup(t *testing.T) {
if err := mock.AlphaHealthChecks().Delete(ctx, keyAlpha); err == nil { if err := mock.AlphaHealthChecks().Delete(ctx, keyAlpha); err == nil {
t.Errorf("AlphaHealthChecks().Delete(%v, %v) = nil; want error", ctx, keyAlpha) t.Errorf("AlphaHealthChecks().Delete(%v, %v) = nil; want error", ctx, keyAlpha)
} }
if err := mock.BetaHealthChecks().Delete(ctx, keyBeta); err == nil {
t.Errorf("BetaHealthChecks().Delete(%v, %v) = nil; want error", ctx, keyBeta)
}
if err := mock.HealthChecks().Delete(ctx, keyGA); err == nil { if err := mock.HealthChecks().Delete(ctx, keyGA); err == nil {
t.Errorf("HealthChecks().Delete(%v, %v) = nil; want error", ctx, keyGA) t.Errorf("HealthChecks().Delete(%v, %v) = nil; want error", ctx, keyGA)
} }
@ -801,7 +837,7 @@ func TestHttpHealthChecksGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaHttpHealthChecks().List(); got %+v, want %+v", got, want) t.Errorf("HttpHealthChecks().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -864,7 +900,7 @@ func TestHttpsHealthChecksGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaHttpsHealthChecks().List(); got %+v, want %+v", got, want) t.Errorf("HttpsHealthChecks().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -927,7 +963,7 @@ func TestInstanceGroupsGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaInstanceGroups().List(); got %+v, want %+v", got, want) t.Errorf("InstanceGroups().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -1036,7 +1072,7 @@ func TestInstancesGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaInstances().List(); got %+v, want %+v", got, want) t.Errorf("BetaInstances().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -1050,7 +1086,7 @@ func TestInstancesGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaInstances().List(); got %+v, want %+v", got, want) t.Errorf("Instances().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -1088,6 +1124,8 @@ func TestNetworkEndpointGroupsGroup(t *testing.T) {
var key *meta.Key var key *meta.Key
keyAlpha := meta.ZonalKey("key-alpha", "location") keyAlpha := meta.ZonalKey("key-alpha", "location")
key = keyAlpha key = keyAlpha
keyBeta := meta.ZonalKey("key-beta", "location")
key = keyBeta
// Ignore unused variables. // Ignore unused variables.
_, _, _ = ctx, mock, key _, _, _ = ctx, mock, key
@ -1095,6 +1133,9 @@ func TestNetworkEndpointGroupsGroup(t *testing.T) {
if _, err := mock.AlphaNetworkEndpointGroups().Get(ctx, key); err == nil { if _, err := mock.AlphaNetworkEndpointGroups().Get(ctx, key); err == nil {
t.Errorf("AlphaNetworkEndpointGroups().Get(%v, %v) = _, nil; want error", ctx, key) t.Errorf("AlphaNetworkEndpointGroups().Get(%v, %v) = _, nil; want error", ctx, key)
} }
if _, err := mock.BetaNetworkEndpointGroups().Get(ctx, key); err == nil {
t.Errorf("BetaNetworkEndpointGroups().Get(%v, %v) = _, nil; want error", ctx, key)
}
// Insert. // Insert.
{ {
@ -1103,16 +1144,27 @@ func TestNetworkEndpointGroupsGroup(t *testing.T) {
t.Errorf("AlphaNetworkEndpointGroups().Insert(%v, %v, %v) = %v; want nil", ctx, keyAlpha, obj, err) t.Errorf("AlphaNetworkEndpointGroups().Insert(%v, %v, %v) = %v; want nil", ctx, keyAlpha, obj, err)
} }
} }
{
obj := &beta.NetworkEndpointGroup{}
if err := mock.BetaNetworkEndpointGroups().Insert(ctx, keyBeta, obj); err != nil {
t.Errorf("BetaNetworkEndpointGroups().Insert(%v, %v, %v) = %v; want nil", ctx, keyBeta, obj, err)
}
}
// Get across versions. // Get across versions.
if obj, err := mock.AlphaNetworkEndpointGroups().Get(ctx, key); err != nil { if obj, err := mock.AlphaNetworkEndpointGroups().Get(ctx, key); err != nil {
t.Errorf("AlphaNetworkEndpointGroups().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err) t.Errorf("AlphaNetworkEndpointGroups().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err)
} }
if obj, err := mock.BetaNetworkEndpointGroups().Get(ctx, key); err != nil {
t.Errorf("BetaNetworkEndpointGroups().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err)
}
// List. // List.
mock.MockAlphaNetworkEndpointGroups.Objects[*keyAlpha] = mock.MockAlphaNetworkEndpointGroups.Obj(&alpha.NetworkEndpointGroup{Name: keyAlpha.Name}) mock.MockAlphaNetworkEndpointGroups.Objects[*keyAlpha] = mock.MockAlphaNetworkEndpointGroups.Obj(&alpha.NetworkEndpointGroup{Name: keyAlpha.Name})
mock.MockBetaNetworkEndpointGroups.Objects[*keyBeta] = mock.MockBetaNetworkEndpointGroups.Obj(&beta.NetworkEndpointGroup{Name: keyBeta.Name})
want := map[string]bool{ want := map[string]bool{
"key-alpha": true, "key-alpha": true,
"key-beta": true,
} }
_ = want // ignore unused variables. _ = want // ignore unused variables.
{ {
@ -1129,16 +1181,36 @@ func TestNetworkEndpointGroupsGroup(t *testing.T) {
} }
} }
} }
{
objs, err := mock.BetaNetworkEndpointGroups().List(ctx, location, filter.None)
if err != nil {
t.Errorf("BetaNetworkEndpointGroups().List(%v, %v, %v) = %v, %v; want _, nil", ctx, location, filter.None, objs, err)
} else {
got := map[string]bool{}
for _, obj := range objs {
got[obj.Name] = true
}
if !reflect.DeepEqual(got, want) {
t.Errorf("BetaNetworkEndpointGroups().List(); got %+v, want %+v", got, want)
}
}
}
// Delete across versions. // Delete across versions.
if err := mock.AlphaNetworkEndpointGroups().Delete(ctx, keyAlpha); err != nil { if err := mock.AlphaNetworkEndpointGroups().Delete(ctx, keyAlpha); err != nil {
t.Errorf("AlphaNetworkEndpointGroups().Delete(%v, %v) = %v; want nil", ctx, keyAlpha, err) t.Errorf("AlphaNetworkEndpointGroups().Delete(%v, %v) = %v; want nil", ctx, keyAlpha, err)
} }
if err := mock.BetaNetworkEndpointGroups().Delete(ctx, keyBeta); err != nil {
t.Errorf("BetaNetworkEndpointGroups().Delete(%v, %v) = %v; want nil", ctx, keyBeta, err)
}
// Delete not found. // Delete not found.
if err := mock.AlphaNetworkEndpointGroups().Delete(ctx, keyAlpha); err == nil { if err := mock.AlphaNetworkEndpointGroups().Delete(ctx, keyAlpha); err == nil {
t.Errorf("AlphaNetworkEndpointGroups().Delete(%v, %v) = nil; want error", ctx, keyAlpha) t.Errorf("AlphaNetworkEndpointGroups().Delete(%v, %v) = nil; want error", ctx, keyAlpha)
} }
if err := mock.BetaNetworkEndpointGroups().Delete(ctx, keyBeta); err == nil {
t.Errorf("BetaNetworkEndpointGroups().Delete(%v, %v) = nil; want error", ctx, keyBeta)
}
} }
func TestProjectsGroup(t *testing.T) { func TestProjectsGroup(t *testing.T) {
@ -1249,7 +1321,7 @@ func TestRegionBackendServicesGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaRegionBackendServices().List(); got %+v, want %+v", got, want) t.Errorf("RegionBackendServices().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -1318,7 +1390,7 @@ func TestRegionDisksGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaRegionDisks().List(); got %+v, want %+v", got, want) t.Errorf("BetaRegionDisks().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -1372,7 +1444,7 @@ func TestRegionsGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaRegions().List(); got %+v, want %+v", got, want) t.Errorf("Regions().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -1429,7 +1501,7 @@ func TestRoutesGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaRoutes().List(); got %+v, want %+v", got, want) t.Errorf("Routes().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -1492,7 +1564,7 @@ func TestSecurityPoliciesGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaSecurityPolicies().List(); got %+v, want %+v", got, want) t.Errorf("BetaSecurityPolicies().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -1555,7 +1627,7 @@ func TestSslCertificatesGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaSslCertificates().List(); got %+v, want %+v", got, want) t.Errorf("SslCertificates().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -1618,7 +1690,7 @@ func TestTargetHttpProxiesGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaTargetHttpProxies().List(); got %+v, want %+v", got, want) t.Errorf("TargetHttpProxies().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -1681,7 +1753,7 @@ func TestTargetHttpsProxiesGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaTargetHttpsProxies().List(); got %+v, want %+v", got, want) t.Errorf("TargetHttpsProxies().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -1744,7 +1816,7 @@ func TestTargetPoolsGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaTargetPools().List(); got %+v, want %+v", got, want) t.Errorf("TargetPools().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -1807,7 +1879,7 @@ func TestUrlMapsGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaUrlMaps().List(); got %+v, want %+v", got, want) t.Errorf("UrlMaps().List(); got %+v, want %+v", got, want)
} }
} }
} }
@ -1861,7 +1933,7 @@ func TestZonesGroup(t *testing.T) {
got[obj.Name] = true got[obj.Name] = true
} }
if !reflect.DeepEqual(got, want) { if !reflect.DeepEqual(got, want) {
t.Errorf("AlphaZones().List(); got %+v, want %+v", got, want) t.Errorf("Zones().List(); got %+v, want %+v", got, want)
} }
} }
} }

View File

@ -221,6 +221,17 @@ var AllServices = []*ServiceInfo{
"Update", "Update",
}, },
}, },
{
Object: "HealthCheck",
Service: "HealthChecks",
Resource: "healthChecks",
version: VersionBeta,
keyType: Global,
serviceType: reflect.TypeOf(&beta.HealthChecksService{}),
additionalMethods: []string{
"Update",
},
},
{ {
Object: "HealthCheck", Object: "HealthCheck",
Service: "HealthChecks", Service: "HealthChecks",
@ -316,6 +327,20 @@ var AllServices = []*ServiceInfo{
}, },
options: AggregatedList, options: AggregatedList,
}, },
{
Object: "NetworkEndpointGroup",
Service: "NetworkEndpointGroups",
Resource: "networkEndpointGroups",
version: VersionBeta,
keyType: Zonal,
serviceType: reflect.TypeOf(&beta.NetworkEndpointGroupsService{}),
additionalMethods: []string{
"AttachNetworkEndpoints",
"DetachNetworkEndpoints",
"ListNetworkEndpoints",
},
options: AggregatedList,
},
{ {
Object: "Project", Object: "Project",
Service: "Projects", Service: "Projects",

View File

@ -20,6 +20,7 @@ import (
"github.com/golang/glog" "github.com/golang/glog"
computealpha "google.golang.org/api/compute/v0.alpha" computealpha "google.golang.org/api/compute/v0.alpha"
computebeta "google.golang.org/api/compute/v0.beta"
compute "google.golang.org/api/compute/v1" compute "google.golang.org/api/compute/v1"
"k8s.io/api/core/v1" "k8s.io/api/core/v1"
@ -173,6 +174,16 @@ func (gce *GCECloud) GetAlphaHealthCheck(name string) (*computealpha.HealthCheck
return v, mc.Observe(err) return v, mc.Observe(err)
} }
// GetBetaHealthCheck returns the given beta HealthCheck by name.
func (gce *GCECloud) GetBetaHealthCheck(name string) (*computebeta.HealthCheck, error) {
ctx, cancel := cloud.ContextWithCallTimeout()
defer cancel()
mc := newHealthcheckMetricContextWithVersion("get", computeBetaVersion)
v, err := gce.c.BetaHealthChecks().Get(ctx, meta.GlobalKey(name))
return v, mc.Observe(err)
}
// UpdateHealthCheck applies the given HealthCheck as an update. // UpdateHealthCheck applies the given HealthCheck as an update.
func (gce *GCECloud) UpdateHealthCheck(hc *compute.HealthCheck) error { func (gce *GCECloud) UpdateHealthCheck(hc *compute.HealthCheck) error {
ctx, cancel := cloud.ContextWithCallTimeout() ctx, cancel := cloud.ContextWithCallTimeout()
@ -191,6 +202,15 @@ func (gce *GCECloud) UpdateAlphaHealthCheck(hc *computealpha.HealthCheck) error
return mc.Observe(gce.c.AlphaHealthChecks().Update(ctx, meta.GlobalKey(hc.Name), hc)) return mc.Observe(gce.c.AlphaHealthChecks().Update(ctx, meta.GlobalKey(hc.Name), hc))
} }
// UpdateBetaHealthCheck applies the given beta HealthCheck as an update.
func (gce *GCECloud) UpdateBetaHealthCheck(hc *computebeta.HealthCheck) error {
ctx, cancel := cloud.ContextWithCallTimeout()
defer cancel()
mc := newHealthcheckMetricContextWithVersion("update", computeBetaVersion)
return mc.Observe(gce.c.BetaHealthChecks().Update(ctx, meta.GlobalKey(hc.Name), hc))
}
// DeleteHealthCheck deletes the given HealthCheck by name. // DeleteHealthCheck deletes the given HealthCheck by name.
func (gce *GCECloud) DeleteHealthCheck(name string) error { func (gce *GCECloud) DeleteHealthCheck(name string) error {
ctx, cancel := cloud.ContextWithCallTimeout() ctx, cancel := cloud.ContextWithCallTimeout()
@ -218,6 +238,15 @@ func (gce *GCECloud) CreateAlphaHealthCheck(hc *computealpha.HealthCheck) error
return mc.Observe(gce.c.AlphaHealthChecks().Insert(ctx, meta.GlobalKey(hc.Name), hc)) return mc.Observe(gce.c.AlphaHealthChecks().Insert(ctx, meta.GlobalKey(hc.Name), hc))
} }
// CreateBetaHealthCheck creates the given beta HealthCheck.
func (gce *GCECloud) CreateBetaHealthCheck(hc *computebeta.HealthCheck) error {
ctx, cancel := cloud.ContextWithCallTimeout()
defer cancel()
mc := newHealthcheckMetricContextWithVersion("create", computeBetaVersion)
return mc.Observe(gce.c.BetaHealthChecks().Insert(ctx, meta.GlobalKey(hc.Name), hc))
}
// ListHealthChecks lists all HealthCheck in the project. // ListHealthChecks lists all HealthCheck in the project.
func (gce *GCECloud) ListHealthChecks() ([]*compute.HealthCheck, error) { func (gce *GCECloud) ListHealthChecks() ([]*compute.HealthCheck, error) {
ctx, cancel := cloud.ContextWithCallTimeout() ctx, cancel := cloud.ContextWithCallTimeout()

View File

@ -20,7 +20,7 @@ import (
"fmt" "fmt"
"strings" "strings"
computealpha "google.golang.org/api/compute/v0.alpha" computebeta "google.golang.org/api/compute/v0.beta"
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
@ -28,44 +28,43 @@ import (
) )
const ( const (
NEGLoadBalancerType = "LOAD_BALANCING"
NEGIPPortNetworkEndpointType = "GCE_VM_IP_PORT" NEGIPPortNetworkEndpointType = "GCE_VM_IP_PORT"
) )
func newNetworkEndpointGroupMetricContext(request string, zone string) *metricContext { func newNetworkEndpointGroupMetricContext(request string, zone string) *metricContext {
return newGenericMetricContext("networkendpointgroup_", request, unusedMetricLabel, zone, computeAlphaVersion) return newGenericMetricContext("networkendpointgroup_", request, unusedMetricLabel, zone, computeBetaVersion)
} }
func (gce *GCECloud) GetNetworkEndpointGroup(name string, zone string) (*computealpha.NetworkEndpointGroup, error) { func (gce *GCECloud) GetNetworkEndpointGroup(name string, zone string) (*computebeta.NetworkEndpointGroup, error) {
ctx, cancel := cloud.ContextWithCallTimeout() ctx, cancel := cloud.ContextWithCallTimeout()
defer cancel() defer cancel()
mc := newNetworkEndpointGroupMetricContext("get", zone) mc := newNetworkEndpointGroupMetricContext("get", zone)
v, err := gce.c.AlphaNetworkEndpointGroups().Get(ctx, meta.ZonalKey(name, zone)) v, err := gce.c.BetaNetworkEndpointGroups().Get(ctx, meta.ZonalKey(name, zone))
return v, mc.Observe(err) return v, mc.Observe(err)
} }
func (gce *GCECloud) ListNetworkEndpointGroup(zone string) ([]*computealpha.NetworkEndpointGroup, error) { func (gce *GCECloud) ListNetworkEndpointGroup(zone string) ([]*computebeta.NetworkEndpointGroup, error) {
ctx, cancel := cloud.ContextWithCallTimeout() ctx, cancel := cloud.ContextWithCallTimeout()
defer cancel() defer cancel()
mc := newNetworkEndpointGroupMetricContext("list", zone) mc := newNetworkEndpointGroupMetricContext("list", zone)
negs, err := gce.c.AlphaNetworkEndpointGroups().List(ctx, zone, filter.None) negs, err := gce.c.BetaNetworkEndpointGroups().List(ctx, zone, filter.None)
return negs, mc.Observe(err) return negs, mc.Observe(err)
} }
// AggregatedListNetworkEndpointGroup returns a map of zone -> endpoint group. // AggregatedListNetworkEndpointGroup returns a map of zone -> endpoint group.
func (gce *GCECloud) AggregatedListNetworkEndpointGroup() (map[string][]*computealpha.NetworkEndpointGroup, error) { func (gce *GCECloud) AggregatedListNetworkEndpointGroup() (map[string][]*computebeta.NetworkEndpointGroup, error) {
ctx, cancel := cloud.ContextWithCallTimeout() ctx, cancel := cloud.ContextWithCallTimeout()
defer cancel() defer cancel()
mc := newNetworkEndpointGroupMetricContext("aggregated_list", "") mc := newNetworkEndpointGroupMetricContext("aggregated_list", "")
// TODO: filter for the region the cluster is in. // TODO: filter for the region the cluster is in.
all, err := gce.c.AlphaNetworkEndpointGroups().AggregatedList(ctx, filter.None) all, err := gce.c.BetaNetworkEndpointGroups().AggregatedList(ctx, filter.None)
if err != nil { if err != nil {
return nil, mc.Observe(err) return nil, mc.Observe(err)
} }
ret := map[string][]*computealpha.NetworkEndpointGroup{} ret := map[string][]*computebeta.NetworkEndpointGroup{}
for key, byZone := range all { for key, byZone := range all {
// key is "zones/<zone name>" // key is "zones/<zone name>"
parts := strings.Split(key, "/") parts := strings.Split(key, "/")
@ -78,12 +77,12 @@ func (gce *GCECloud) AggregatedListNetworkEndpointGroup() (map[string][]*compute
return ret, mc.Observe(nil) return ret, mc.Observe(nil)
} }
func (gce *GCECloud) CreateNetworkEndpointGroup(neg *computealpha.NetworkEndpointGroup, zone string) error { func (gce *GCECloud) CreateNetworkEndpointGroup(neg *computebeta.NetworkEndpointGroup, zone string) error {
ctx, cancel := cloud.ContextWithCallTimeout() ctx, cancel := cloud.ContextWithCallTimeout()
defer cancel() defer cancel()
mc := newNetworkEndpointGroupMetricContext("create", zone) mc := newNetworkEndpointGroupMetricContext("create", zone)
return mc.Observe(gce.c.AlphaNetworkEndpointGroups().Insert(ctx, meta.ZonalKey(neg.Name, zone), neg)) return mc.Observe(gce.c.BetaNetworkEndpointGroups().Insert(ctx, meta.ZonalKey(neg.Name, zone), neg))
} }
func (gce *GCECloud) DeleteNetworkEndpointGroup(name string, zone string) error { func (gce *GCECloud) DeleteNetworkEndpointGroup(name string, zone string) error {
@ -91,32 +90,32 @@ func (gce *GCECloud) DeleteNetworkEndpointGroup(name string, zone string) error
defer cancel() defer cancel()
mc := newNetworkEndpointGroupMetricContext("delete", zone) mc := newNetworkEndpointGroupMetricContext("delete", zone)
return mc.Observe(gce.c.AlphaNetworkEndpointGroups().Delete(ctx, meta.ZonalKey(name, zone))) return mc.Observe(gce.c.BetaNetworkEndpointGroups().Delete(ctx, meta.ZonalKey(name, zone)))
} }
func (gce *GCECloud) AttachNetworkEndpoints(name, zone string, endpoints []*computealpha.NetworkEndpoint) error { func (gce *GCECloud) AttachNetworkEndpoints(name, zone string, endpoints []*computebeta.NetworkEndpoint) error {
ctx, cancel := cloud.ContextWithCallTimeout() ctx, cancel := cloud.ContextWithCallTimeout()
defer cancel() defer cancel()
mc := newNetworkEndpointGroupMetricContext("attach", zone) mc := newNetworkEndpointGroupMetricContext("attach", zone)
req := &computealpha.NetworkEndpointGroupsAttachEndpointsRequest{ req := &computebeta.NetworkEndpointGroupsAttachEndpointsRequest{
NetworkEndpoints: endpoints, NetworkEndpoints: endpoints,
} }
return mc.Observe(gce.c.AlphaNetworkEndpointGroups().AttachNetworkEndpoints(ctx, meta.ZonalKey(name, zone), req)) return mc.Observe(gce.c.BetaNetworkEndpointGroups().AttachNetworkEndpoints(ctx, meta.ZonalKey(name, zone), req))
} }
func (gce *GCECloud) DetachNetworkEndpoints(name, zone string, endpoints []*computealpha.NetworkEndpoint) error { func (gce *GCECloud) DetachNetworkEndpoints(name, zone string, endpoints []*computebeta.NetworkEndpoint) error {
ctx, cancel := cloud.ContextWithCallTimeout() ctx, cancel := cloud.ContextWithCallTimeout()
defer cancel() defer cancel()
mc := newNetworkEndpointGroupMetricContext("detach", zone) mc := newNetworkEndpointGroupMetricContext("detach", zone)
req := &computealpha.NetworkEndpointGroupsDetachEndpointsRequest{ req := &computebeta.NetworkEndpointGroupsDetachEndpointsRequest{
NetworkEndpoints: endpoints, NetworkEndpoints: endpoints,
} }
return mc.Observe(gce.c.AlphaNetworkEndpointGroups().DetachNetworkEndpoints(ctx, meta.ZonalKey(name, zone), req)) return mc.Observe(gce.c.BetaNetworkEndpointGroups().DetachNetworkEndpoints(ctx, meta.ZonalKey(name, zone), req))
} }
func (gce *GCECloud) ListNetworkEndpoints(name, zone string, showHealthStatus bool) ([]*computealpha.NetworkEndpointWithHealthStatus, error) { func (gce *GCECloud) ListNetworkEndpoints(name, zone string, showHealthStatus bool) ([]*computebeta.NetworkEndpointWithHealthStatus, error) {
ctx, cancel := cloud.ContextWithCallTimeout() ctx, cancel := cloud.ContextWithCallTimeout()
defer cancel() defer cancel()
@ -125,9 +124,9 @@ func (gce *GCECloud) ListNetworkEndpoints(name, zone string, showHealthStatus bo
if showHealthStatus { if showHealthStatus {
healthStatus = "SHOW" healthStatus = "SHOW"
} }
req := &computealpha.NetworkEndpointGroupsListEndpointsRequest{ req := &computebeta.NetworkEndpointGroupsListEndpointsRequest{
HealthStatus: healthStatus, HealthStatus: healthStatus,
} }
l, err := gce.c.AlphaNetworkEndpointGroups().ListNetworkEndpoints(ctx, meta.ZonalKey(name, zone), req, filter.None) l, err := gce.c.BetaNetworkEndpointGroups().ListNetworkEndpoints(ctx, meta.ZonalKey(name, zone), req, filter.None)
return l, mc.Observe(err) return l, mc.Observe(err)
} }

View File

@ -48,6 +48,7 @@ Kunpei Sakai <namusyaka@gmail.com>
Matthew Whisenhunt <matt.whisenhunt@gmail.com> Matthew Whisenhunt <matt.whisenhunt@gmail.com>
Michael McGreevy <mcgreevy@golang.org> Michael McGreevy <mcgreevy@golang.org>
Nick Craig-Wood <nickcw@gmail.com> Nick Craig-Wood <nickcw@gmail.com>
Robbie Trencheny <me@robbiet.us>
Ross Light <light@google.com> Ross Light <light@google.com>
Sarah Adams <shadams@google.com> Sarah Adams <shadams@google.com>
Scott Van Woudenberg <scottvw@google.com> Scott Van Woudenberg <scottvw@google.com>

View File

@ -29,7 +29,7 @@
"description": "Creates and runs virtual machines on Google Cloud Platform.", "description": "Creates and runs virtual machines on Google Cloud Platform.",
"discoveryVersion": "v1", "discoveryVersion": "v1",
"documentationLink": "https://developers.google.com/compute/docs/reference/latest/", "documentationLink": "https://developers.google.com/compute/docs/reference/latest/",
"etag": "\"Zkyw9ACJZUvcYmlFaKGChzhmtnE/uu5Fb8xKeF9Z7ooFYwXgp7bFFJg\"", "etag": "\"Zkyw9ACJZUvcYmlFaKGChzhmtnE/KNWJ1HZYolCRG_Vy_LaMdDtL5UU\"",
"icons": { "icons": {
"x16": "https://www.google.com/images/icons/product/compute_engine-16.png", "x16": "https://www.google.com/images/icons/product/compute_engine-16.png",
"x32": "https://www.google.com/images/icons/product/compute_engine-32.png" "x32": "https://www.google.com/images/icons/product/compute_engine-32.png"
@ -17749,6 +17749,71 @@
"https://www.googleapis.com/auth/compute.readonly" "https://www.googleapis.com/auth/compute.readonly"
] ]
}, },
"getNatMappingInfo": {
"description": "Retrieves runtime Nat mapping information of VM endpoints.",
"httpMethod": "GET",
"id": "compute.routers.getNatMappingInfo",
"parameterOrder": [
"project",
"region",
"router"
],
"parameters": {
"filter": {
"description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
"location": "query",
"type": "string"
},
"maxResults": {
"default": "500",
"description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
"format": "uint32",
"location": "query",
"minimum": "0",
"type": "integer"
},
"orderBy": {
"description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
"location": "query",
"type": "string"
},
"pageToken": {
"description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
"location": "query",
"type": "string"
},
"project": {
"description": "Project ID for this request.",
"location": "path",
"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
"required": true,
"type": "string"
},
"region": {
"description": "Name of the region for this request.",
"location": "path",
"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
"required": true,
"type": "string"
},
"router": {
"description": "Name of the Router resource to query for Nat Mapping information of VM endpoints.",
"location": "path",
"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
"required": true,
"type": "string"
}
},
"path": "{project}/regions/{region}/routers/{router}/getNatMappingInfo",
"response": {
"$ref": "VmEndpointNatMappingsList"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/compute",
"https://www.googleapis.com/auth/compute.readonly"
]
},
"getRouterStatus": { "getRouterStatus": {
"description": "Retrieves runtime information of the specified router.", "description": "Retrieves runtime information of the specified router.",
"httpMethod": "GET", "httpMethod": "GET",
@ -23842,7 +23907,6 @@
} }
} }
}, },
"revision": "20180518",
"rootUrl": "https://www.googleapis.com/", "rootUrl": "https://www.googleapis.com/",
"schemas": { "schemas": {
"AcceleratorConfig": { "AcceleratorConfig": {
@ -24416,9 +24480,11 @@
"description": "[Output Only] The status of the address, which can be one of RESERVING, RESERVED, or IN_USE. An address that is RESERVING is currently in the process of being reserved. A RESERVED address is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.", "description": "[Output Only] The status of the address, which can be one of RESERVING, RESERVED, or IN_USE. An address that is RESERVING is currently in the process of being reserved. A RESERVED address is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.",
"enum": [ "enum": [
"IN_USE", "IN_USE",
"RESERVED" "RESERVED",
"RESERVING"
], ],
"enumDescriptions": [ "enumDescriptions": [
"",
"", "",
"" ""
], ],
@ -28480,6 +28546,10 @@
], ],
"type": "string" "type": "string"
}, },
"allPorts": {
"description": "This field is used along with the backend_service field for internal load balancing or with the target field for internal TargetInstance. This field cannot be used with port or portRange fields.\n\nWhen the load balancing scheme is INTERNAL and protocol is TCP/UDP, specify this field to allow packets addressed to any ports will be forwarded to the backends configured with this forwarding rule.",
"type": "boolean"
},
"backendService": { "backendService": {
"description": "This field is not used for external load balancing.\n\nFor internal load balancing, this field identifies the BackendService resource to receive the matched traffic.", "description": "This field is not used for external load balancing.\n\nFor internal load balancing, this field identifies the BackendService resource to receive the matched traffic.",
"type": "string" "type": "string"
@ -35775,7 +35845,7 @@
"type": "object" "type": "object"
}, },
"ManagedInstance": { "ManagedInstance": {
"description": "Next available tag: 12", "description": "A Managed Instance resource.",
"id": "ManagedInstance", "id": "ManagedInstance",
"properties": { "properties": {
"currentAction": { "currentAction": {
@ -37308,6 +37378,21 @@
"nodeType": { "nodeType": {
"description": "The type of this node.", "description": "The type of this node.",
"type": "string" "type": "string"
},
"status": {
"enum": [
"CREATING",
"DELETING",
"INVALID",
"READY"
],
"enumDescriptions": [
"",
"",
"",
""
],
"type": "string"
} }
}, },
"type": "object" "type": "object"
@ -39086,6 +39171,7 @@
"IN_USE_MAINTENANCE_WINDOWS", "IN_USE_MAINTENANCE_WINDOWS",
"LOCAL_SSD_TOTAL_GB", "LOCAL_SSD_TOTAL_GB",
"NETWORKS", "NETWORKS",
"NETWORK_ENDPOINT_GROUPS",
"NVIDIA_K80_GPUS", "NVIDIA_K80_GPUS",
"NVIDIA_P100_GPUS", "NVIDIA_P100_GPUS",
"NVIDIA_P100_VWS_GPUS", "NVIDIA_P100_VWS_GPUS",
@ -39173,6 +39259,7 @@
"", "",
"", "",
"", "",
"",
"" ""
], ],
"type": "string" "type": "string"
@ -41702,6 +41789,16 @@
}, },
"type": "array" "type": "array"
}, },
"icmpIdleTimeoutSec": {
"description": "Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.",
"format": "int32",
"type": "integer"
},
"minPortsPerVm": {
"description": "Minimum number of ports allocated to a VM from this NAT config. If not set, a default number of ports is allocated to a VM. This gets rounded up to the nearest power of 2. Eg. if the value of this field is 50, at least 64 ports will be allocated to a VM.",
"format": "int32",
"type": "integer"
},
"name": { "name": {
"description": "Unique name of this Nat service. The name must be 1-63 characters long and comply with RFC1035.", "description": "Unique name of this Nat service. The name must be 1-63 characters long and comply with RFC1035.",
"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
@ -41746,6 +41843,21 @@
"$ref": "RouterNatSubnetworkToNat" "$ref": "RouterNatSubnetworkToNat"
}, },
"type": "array" "type": "array"
},
"tcpEstablishedIdleTimeoutSec": {
"description": "Timeout (in seconds) for TCP established connections. Defaults to 1200s if not set.",
"format": "int32",
"type": "integer"
},
"tcpTransitoryIdleTimeoutSec": {
"description": "Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not set.",
"format": "int32",
"type": "integer"
},
"udpIdleTimeoutSec": {
"description": "Timeout (in seconds) for UDP connections. Defaults to 30s if not set.",
"format": "int32",
"type": "integer"
} }
}, },
"type": "object" "type": "object"
@ -46688,6 +46800,162 @@
}, },
"type": "object" "type": "object"
}, },
"VmEndpointNatMappings": {
"description": "Contain information of Nat mapping for a VM endpoint (i.e., NIC).",
"id": "VmEndpointNatMappings",
"properties": {
"instanceName": {
"description": "Name of the VM instance which the endpoint belongs to",
"type": "string"
},
"interfaceNatMappings": {
"items": {
"$ref": "VmEndpointNatMappingsInterfaceNatMappings"
},
"type": "array"
}
},
"type": "object"
},
"VmEndpointNatMappingsInterfaceNatMappings": {
"description": "Contain information of Nat mapping for an interface of this endpoint.",
"id": "VmEndpointNatMappingsInterfaceNatMappings",
"properties": {
"natIpPortRanges": {
"description": "A list of all IP:port-range mappings assigned to this interface. These ranges are inclusive, that is, both the first and the last ports can be used for NAT. Example: [\"2.2.2.2:12345-12355\", \"1.1.1.1:2234-2234\"].",
"items": {
"type": "string"
},
"type": "array"
},
"numTotalNatPorts": {
"description": "Total number of ports across all NAT IPs allocated to this interface. It equals to the aggregated port number in the field nat_ip_port_ranges.",
"format": "int32",
"type": "integer"
},
"sourceAliasIpRange": {
"description": "Alias IP range for this interface endpoint. It will be a private (RFC 1918) IP range. Examples: \"10.33.4.55/32\", or \"192.168.5.0/24\".",
"type": "string"
},
"sourceVirtualIp": {
"description": "Primary IP of the VM for this NIC.",
"type": "string"
}
},
"type": "object"
},
"VmEndpointNatMappingsList": {
"description": "Contains a list of VmEndpointNatMappings.",
"id": "VmEndpointNatMappingsList",
"properties": {
"id": {
"description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.",
"type": "string"
},
"kind": {
"default": "compute#vmEndpointNatMappingsList",
"description": "[Output Only] Type of resource. Always compute#vmEndpointNatMappingsList for lists of Nat mappings of VM endpoints.",
"type": "string"
},
"nextPageToken": {
"description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.",
"type": "string"
},
"result": {
"description": "[Output Only] A list of Nat mapping information of VM endpoints.",
"items": {
"$ref": "VmEndpointNatMappings"
},
"type": "array"
},
"selfLink": {
"description": "[Output Only] Server-defined URL for this resource.",
"type": "string"
},
"warning": {
"description": "[Output Only] Informational warning message.",
"properties": {
"code": {
"description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.",
"enum": [
"CLEANUP_FAILED",
"DEPRECATED_RESOURCE_USED",
"DEPRECATED_TYPE_USED",
"DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
"EXPERIMENTAL_TYPE_USED",
"EXTERNAL_API_WARNING",
"FIELD_VALUE_OVERRIDEN",
"INJECTED_KERNELS_DEPRECATED",
"MISSING_TYPE_DEPENDENCY",
"NEXT_HOP_ADDRESS_NOT_ASSIGNED",
"NEXT_HOP_CANNOT_IP_FORWARD",
"NEXT_HOP_INSTANCE_NOT_FOUND",
"NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
"NEXT_HOP_NOT_RUNNING",
"NOT_CRITICAL_ERROR",
"NO_RESULTS_ON_PAGE",
"REQUIRED_TOS_AGREEMENT",
"RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
"RESOURCE_NOT_DELETED",
"SCHEMA_VALIDATION_IGNORED",
"SINGLE_INSTANCE_PROPERTY_TEMPLATE",
"UNDECLARED_PROPERTIES",
"UNREACHABLE"
],
"enumDescriptions": [
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
],
"type": "string"
},
"data": {
"description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }",
"items": {
"properties": {
"key": {
"description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).",
"type": "string"
},
"value": {
"description": "[Output Only] A warning data value corresponding to the key.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"message": {
"description": "[Output Only] A human-readable description of the warning code.",
"type": "string"
}
},
"type": "object"
}
},
"type": "object"
},
"VpnGateway": { "VpnGateway": {
"description": "Represents a VPN gateway resource.", "description": "Represents a VPN gateway resource.",
"id": "VpnGateway", "id": "VpnGateway",
@ -46741,20 +47009,6 @@
"description": "URL of the network to which this VPN gateway is attached. Provided by the client when the VPN gateway is created.", "description": "URL of the network to which this VPN gateway is attached. Provided by the client when the VPN gateway is created.",
"type": "string" "type": "string"
}, },
"redundancy": {
"description": "The redundancy mode configured for this VPN gateway. Possible values are ACTIVE_ACTIVE and NONE. If set to ACTIVE_ACTIVE, two VPN interfaces are created thereby providing higher availability. If set to NONE, only one interface is created with a lower availability SLA.\n\nIf this field is specified, either 2 or 1 external IP addresses (depending on the value of specified redundancy) are automatically allocated for use with this VPN gateway, and incoming traffic on the external addresses to ports ESP, UDP:500 and UDP:4500 are automatically forwarded to this gateway.",
"enum": [
"ACTIVE_ACTIVE",
"NONE",
"REDUNDANCY_UNSPECIFIED"
],
"enumDescriptions": [
"",
"",
""
],
"type": "string"
},
"region": { "region": {
"description": "[Output Only] URL of the region where the VPN gateway resides.", "description": "[Output Only] URL of the region where the VPN gateway resides.",
"type": "string" "type": "string"
@ -47235,11 +47489,11 @@
"type": "string" "type": "string"
}, },
"vpnGateway": { "vpnGateway": {
"description": "URL of the VPN gateway with which this VPN tunnel is associated. Provided by the client when the VPN tunnel is created. This must be used (instead of target_vpn_gateway) if a VPN gateway resource is created with redundancy.\n\nVPN gateway resource provides a way to create a highly available VPN setup.", "description": "URL of the VPN gateway with which this VPN tunnel is associated. Provided by the client when the VPN tunnel is created. This must be used (instead of target_vpn_gateway) if a High Availability VPN gateway resource is created.",
"type": "string" "type": "string"
}, },
"vpnGatewayInterface": { "vpnGatewayInterface": {
"description": "The interface ID of the VPN gateway with which this VPN tunnel is associated. If the VPN gateway has redundancy other than NONE, this field is required to identify which interface of the VPN gateway to use.", "description": "The interface ID of the VPN gateway with which this VPN tunnel is associated.",
"format": "int32", "format": "int32",
"type": "integer" "type": "integer"
} }

View File

@ -1628,6 +1628,7 @@ type Address struct {
// Possible values: // Possible values:
// "IN_USE" // "IN_USE"
// "RESERVED" // "RESERVED"
// "RESERVING"
Status string `json:"status,omitempty"` Status string `json:"status,omitempty"`
// Subnetwork: The URL of the subnetwork in which to reserve the // Subnetwork: The URL of the subnetwork in which to reserve the
@ -7901,6 +7902,16 @@ type ForwardingRule struct {
// "UDP" // "UDP"
IPProtocol string `json:"IPProtocol,omitempty"` IPProtocol string `json:"IPProtocol,omitempty"`
// AllPorts: This field is used along with the backend_service field for
// internal load balancing or with the target field for internal
// TargetInstance. This field cannot be used with port or portRange
// fields.
//
// When the load balancing scheme is INTERNAL and protocol is TCP/UDP,
// specify this field to allow packets addressed to any ports will be
// forwarded to the backends configured with this forwarding rule.
AllPorts bool `json:"allPorts,omitempty"`
// BackendService: This field is not used for external load // BackendService: This field is not used for external load
// balancing. // balancing.
// //
@ -18227,7 +18238,7 @@ func (s *MachineTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
} }
// ManagedInstance: Next available tag: 12 // ManagedInstance: A Managed Instance resource.
type ManagedInstance struct { type ManagedInstance struct {
// CurrentAction: [Output Only] The current action that the managed // CurrentAction: [Output Only] The current action that the managed
// instance group has scheduled for the instance. Possible values: // instance group has scheduled for the instance. Possible values:
@ -20503,6 +20514,13 @@ type NodeGroupNode struct {
// NodeType: The type of this node. // NodeType: The type of this node.
NodeType string `json:"nodeType,omitempty"` NodeType string `json:"nodeType,omitempty"`
// Possible values:
// "CREATING"
// "DELETING"
// "INVALID"
// "READY"
Status string `json:"status,omitempty"`
// ForceSendFields is a list of field names (e.g. "Index") to // ForceSendFields is a list of field names (e.g. "Index") to
// unconditionally include in API requests. By default, fields with // unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer, // empty values are omitted from API requests. However, any non-pointer,
@ -23139,6 +23157,7 @@ type Quota struct {
// "IN_USE_MAINTENANCE_WINDOWS" // "IN_USE_MAINTENANCE_WINDOWS"
// "LOCAL_SSD_TOTAL_GB" // "LOCAL_SSD_TOTAL_GB"
// "NETWORKS" // "NETWORKS"
// "NETWORK_ENDPOINT_GROUPS"
// "NVIDIA_K80_GPUS" // "NVIDIA_K80_GPUS"
// "NVIDIA_P100_GPUS" // "NVIDIA_P100_GPUS"
// "NVIDIA_P100_VWS_GPUS" // "NVIDIA_P100_VWS_GPUS"
@ -26907,6 +26926,16 @@ type RouterNat struct {
// shrink based on the number of VMs configured to use NAT. // shrink based on the number of VMs configured to use NAT.
AutoAllocatedNatIps []string `json:"autoAllocatedNatIps,omitempty"` AutoAllocatedNatIps []string `json:"autoAllocatedNatIps,omitempty"`
// IcmpIdleTimeoutSec: Timeout (in seconds) for ICMP connections.
// Defaults to 30s if not set.
IcmpIdleTimeoutSec int64 `json:"icmpIdleTimeoutSec,omitempty"`
// MinPortsPerVm: Minimum number of ports allocated to a VM from this
// NAT config. If not set, a default number of ports is allocated to a
// VM. This gets rounded up to the nearest power of 2. Eg. if the value
// of this field is 50, at least 64 ports will be allocated to a VM.
MinPortsPerVm int64 `json:"minPortsPerVm,omitempty"`
// Name: Unique name of this Nat service. The name must be 1-63 // Name: Unique name of this Nat service. The name must be 1-63
// characters long and comply with RFC1035. // characters long and comply with RFC1035.
Name string `json:"name,omitempty"` Name string `json:"name,omitempty"`
@ -26941,6 +26970,18 @@ type RouterNat struct {
// is selected for the SubnetworkIpRangeToNatOption above. // is selected for the SubnetworkIpRangeToNatOption above.
Subnetworks []*RouterNatSubnetworkToNat `json:"subnetworks,omitempty"` Subnetworks []*RouterNatSubnetworkToNat `json:"subnetworks,omitempty"`
// TcpEstablishedIdleTimeoutSec: Timeout (in seconds) for TCP
// established connections. Defaults to 1200s if not set.
TcpEstablishedIdleTimeoutSec int64 `json:"tcpEstablishedIdleTimeoutSec,omitempty"`
// TcpTransitoryIdleTimeoutSec: Timeout (in seconds) for TCP transitory
// connections. Defaults to 30s if not set.
TcpTransitoryIdleTimeoutSec int64 `json:"tcpTransitoryIdleTimeoutSec,omitempty"`
// UdpIdleTimeoutSec: Timeout (in seconds) for UDP connections. Defaults
// to 30s if not set.
UdpIdleTimeoutSec int64 `json:"udpIdleTimeoutSec,omitempty"`
// ForceSendFields is a list of field names (e.g. "AutoAllocatedNatIps") // ForceSendFields is a list of field names (e.g. "AutoAllocatedNatIps")
// to unconditionally include in API requests. By default, fields with // to unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer, // empty values are omitted from API requests. However, any non-pointer,
@ -34326,6 +34367,241 @@ func (s *UsageExportLocation) MarshalJSON() ([]byte, error) {
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
} }
// VmEndpointNatMappings: Contain information of Nat mapping for a VM
// endpoint (i.e., NIC).
type VmEndpointNatMappings struct {
// InstanceName: Name of the VM instance which the endpoint belongs to
InstanceName string `json:"instanceName,omitempty"`
InterfaceNatMappings []*VmEndpointNatMappingsInterfaceNatMappings `json:"interfaceNatMappings,omitempty"`
// ForceSendFields is a list of field names (e.g. "InstanceName") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "InstanceName") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *VmEndpointNatMappings) MarshalJSON() ([]byte, error) {
type NoMethod VmEndpointNatMappings
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// VmEndpointNatMappingsInterfaceNatMappings: Contain information of Nat
// mapping for an interface of this endpoint.
type VmEndpointNatMappingsInterfaceNatMappings struct {
// NatIpPortRanges: A list of all IP:port-range mappings assigned to
// this interface. These ranges are inclusive, that is, both the first
// and the last ports can be used for NAT. Example:
// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
NatIpPortRanges []string `json:"natIpPortRanges,omitempty"`
// NumTotalNatPorts: Total number of ports across all NAT IPs allocated
// to this interface. It equals to the aggregated port number in the
// field nat_ip_port_ranges.
NumTotalNatPorts int64 `json:"numTotalNatPorts,omitempty"`
// SourceAliasIpRange: Alias IP range for this interface endpoint. It
// will be a private (RFC 1918) IP range. Examples: "10.33.4.55/32", or
// "192.168.5.0/24".
SourceAliasIpRange string `json:"sourceAliasIpRange,omitempty"`
// SourceVirtualIp: Primary IP of the VM for this NIC.
SourceVirtualIp string `json:"sourceVirtualIp,omitempty"`
// ForceSendFields is a list of field names (e.g. "NatIpPortRanges") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "NatIpPortRanges") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *VmEndpointNatMappingsInterfaceNatMappings) MarshalJSON() ([]byte, error) {
type NoMethod VmEndpointNatMappingsInterfaceNatMappings
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// VmEndpointNatMappingsList: Contains a list of VmEndpointNatMappings.
type VmEndpointNatMappingsList struct {
// Id: [Output Only] The unique identifier for the resource. This
// identifier is defined by the server.
Id string `json:"id,omitempty"`
// Kind: [Output Only] Type of resource. Always
// compute#vmEndpointNatMappingsList for lists of Nat mappings of VM
// endpoints.
Kind string `json:"kind,omitempty"`
// NextPageToken: [Output Only] This token allows you to get the next
// page of results for list requests. If the number of results is larger
// than maxResults, use the nextPageToken as a value for the query
// parameter pageToken in the next list request. Subsequent list
// requests will have their own nextPageToken to continue paging through
// the results.
NextPageToken string `json:"nextPageToken,omitempty"`
// Result: [Output Only] A list of Nat mapping information of VM
// endpoints.
Result []*VmEndpointNatMappings `json:"result,omitempty"`
// SelfLink: [Output Only] Server-defined URL for this resource.
SelfLink string `json:"selfLink,omitempty"`
// Warning: [Output Only] Informational warning message.
Warning *VmEndpointNatMappingsListWarning `json:"warning,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "Id") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Id") to include in API
// requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *VmEndpointNatMappingsList) MarshalJSON() ([]byte, error) {
type NoMethod VmEndpointNatMappingsList
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// VmEndpointNatMappingsListWarning: [Output Only] Informational warning
// message.
type VmEndpointNatMappingsListWarning struct {
// Code: [Output Only] A warning code, if applicable. For example,
// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
// the response.
//
// Possible values:
// "CLEANUP_FAILED"
// "DEPRECATED_RESOURCE_USED"
// "DEPRECATED_TYPE_USED"
// "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
// "EXPERIMENTAL_TYPE_USED"
// "EXTERNAL_API_WARNING"
// "FIELD_VALUE_OVERRIDEN"
// "INJECTED_KERNELS_DEPRECATED"
// "MISSING_TYPE_DEPENDENCY"
// "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
// "NEXT_HOP_CANNOT_IP_FORWARD"
// "NEXT_HOP_INSTANCE_NOT_FOUND"
// "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
// "NEXT_HOP_NOT_RUNNING"
// "NOT_CRITICAL_ERROR"
// "NO_RESULTS_ON_PAGE"
// "REQUIRED_TOS_AGREEMENT"
// "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
// "RESOURCE_NOT_DELETED"
// "SCHEMA_VALIDATION_IGNORED"
// "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
// "UNDECLARED_PROPERTIES"
// "UNREACHABLE"
Code string `json:"code,omitempty"`
// Data: [Output Only] Metadata about this warning in key: value format.
// For example:
// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
Data []*VmEndpointNatMappingsListWarningData `json:"data,omitempty"`
// Message: [Output Only] A human-readable description of the warning
// code.
Message string `json:"message,omitempty"`
// ForceSendFields is a list of field names (e.g. "Code") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Code") to include in API
// requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *VmEndpointNatMappingsListWarning) MarshalJSON() ([]byte, error) {
type NoMethod VmEndpointNatMappingsListWarning
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
type VmEndpointNatMappingsListWarningData struct {
// Key: [Output Only] A key that provides more detail on the warning
// being returned. For example, for warnings where there are no results
// in a list request for a particular zone, this key might be scope and
// the key value might be the zone name. Other examples might be a key
// indicating a deprecated resource and a suggested replacement, or a
// warning about invalid network settings (for example, if an instance
// attempts to perform IP forwarding but is not enabled for IP
// forwarding).
Key string `json:"key,omitempty"`
// Value: [Output Only] A warning data value corresponding to the key.
Value string `json:"value,omitempty"`
// ForceSendFields is a list of field names (e.g. "Key") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Key") to include in API
// requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *VmEndpointNatMappingsListWarningData) MarshalJSON() ([]byte, error) {
type NoMethod VmEndpointNatMappingsListWarningData
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// VpnGateway: Represents a VPN gateway resource. // VpnGateway: Represents a VPN gateway resource.
type VpnGateway struct { type VpnGateway struct {
// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
@ -34373,24 +34649,6 @@ type VpnGateway struct {
// Provided by the client when the VPN gateway is created. // Provided by the client when the VPN gateway is created.
Network string `json:"network,omitempty"` Network string `json:"network,omitempty"`
// Redundancy: The redundancy mode configured for this VPN gateway.
// Possible values are ACTIVE_ACTIVE and NONE. If set to ACTIVE_ACTIVE,
// two VPN interfaces are created thereby providing higher availability.
// If set to NONE, only one interface is created with a lower
// availability SLA.
//
// If this field is specified, either 2 or 1 external IP addresses
// (depending on the value of specified redundancy) are automatically
// allocated for use with this VPN gateway, and incoming traffic on the
// external addresses to ports ESP, UDP:500 and UDP:4500 are
// automatically forwarded to this gateway.
//
// Possible values:
// "ACTIVE_ACTIVE"
// "NONE"
// "REDUNDANCY_UNSPECIFIED"
Redundancy string `json:"redundancy,omitempty"`
// Region: [Output Only] URL of the region where the VPN gateway // Region: [Output Only] URL of the region where the VPN gateway
// resides. // resides.
Region string `json:"region,omitempty"` Region string `json:"region,omitempty"`
@ -35015,17 +35273,12 @@ type VpnTunnel struct {
// VpnGateway: URL of the VPN gateway with which this VPN tunnel is // VpnGateway: URL of the VPN gateway with which this VPN tunnel is
// associated. Provided by the client when the VPN tunnel is created. // associated. Provided by the client when the VPN tunnel is created.
// This must be used (instead of target_vpn_gateway) if a VPN gateway // This must be used (instead of target_vpn_gateway) if a High
// resource is created with redundancy. // Availability VPN gateway resource is created.
//
// VPN gateway resource provides a way to create a highly available VPN
// setup.
VpnGateway string `json:"vpnGateway,omitempty"` VpnGateway string `json:"vpnGateway,omitempty"`
// VpnGatewayInterface: The interface ID of the VPN gateway with which // VpnGatewayInterface: The interface ID of the VPN gateway with which
// this VPN tunnel is associated. If the VPN gateway has redundancy // this VPN tunnel is associated.
// other than NONE, this field is required to identify which interface
// of the VPN gateway to use.
VpnGatewayInterface int64 `json:"vpnGatewayInterface,omitempty"` VpnGatewayInterface int64 `json:"vpnGatewayInterface,omitempty"`
// ServerResponse contains the HTTP response code and headers from the // ServerResponse contains the HTTP response code and headers from the
@ -108279,6 +108532,276 @@ func (c *RoutersGetCall) Do(opts ...googleapi.CallOption) (*Router, error) {
} }
// method id "compute.routers.getNatMappingInfo":
type RoutersGetNatMappingInfoCall struct {
s *Service
project string
region string
router string
urlParams_ gensupport.URLParams
ifNoneMatch_ string
ctx_ context.Context
header_ http.Header
}
// GetNatMappingInfo: Retrieves runtime Nat mapping information of VM
// endpoints.
func (r *RoutersService) GetNatMappingInfo(project string, region string, router string) *RoutersGetNatMappingInfoCall {
c := &RoutersGetNatMappingInfoCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.project = project
c.region = region
c.router = router
return c
}
// Filter sets the optional parameter "filter": A filter expression that
// filters resources listed in the response. The expression must specify
// the field name, a comparison operator, and the value that you want to
// use for filtering. The value must be a string, a number, or a
// boolean. The comparison operator must be either =, !=, >, or <.
//
// For example, if you are filtering Compute Engine instances, you can
// exclude instances named example-instance by specifying name !=
// example-instance.
//
// You can also filter nested fields. For example, you could specify
// scheduling.automaticRestart = false to include instances only if they
// are not scheduled for automatic restarts. You can use filtering on
// nested fields to filter based on resource labels.
//
// To filter on multiple expressions, provide each separate expression
// within parentheses. For example, (scheduling.automaticRestart = true)
// (cpuPlatform = "Intel Skylake"). By default, each expression is an
// AND expression. However, you can include AND and OR expressions
// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
// true).
func (c *RoutersGetNatMappingInfoCall) Filter(filter string) *RoutersGetNatMappingInfoCall {
c.urlParams_.Set("filter", filter)
return c
}
// MaxResults sets the optional parameter "maxResults": The maximum
// number of results per page that should be returned. If the number of
// available results is larger than maxResults, Compute Engine returns a
// nextPageToken that can be used to get the next page of results in
// subsequent list requests. Acceptable values are 0 to 500, inclusive.
// (Default: 500)
func (c *RoutersGetNatMappingInfoCall) MaxResults(maxResults int64) *RoutersGetNatMappingInfoCall {
c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
return c
}
// OrderBy sets the optional parameter "orderBy": Sorts list results by
// a certain order. By default, results are returned in alphanumerical
// order based on the resource name.
//
// You can also sort results in descending order based on the creation
// timestamp using orderBy="creationTimestamp desc". This sorts results
// based on the creationTimestamp field in reverse chronological order
// (newest result first). Use this to sort resources like operations so
// that the newest operation is returned first.
//
// Currently, only sorting by name or creationTimestamp desc is
// supported.
func (c *RoutersGetNatMappingInfoCall) OrderBy(orderBy string) *RoutersGetNatMappingInfoCall {
c.urlParams_.Set("orderBy", orderBy)
return c
}
// PageToken sets the optional parameter "pageToken": Specifies a page
// token to use. Set pageToken to the nextPageToken returned by a
// previous list request to get the next page of results.
func (c *RoutersGetNatMappingInfoCall) PageToken(pageToken string) *RoutersGetNatMappingInfoCall {
c.urlParams_.Set("pageToken", pageToken)
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *RoutersGetNatMappingInfoCall) Fields(s ...googleapi.Field) *RoutersGetNatMappingInfoCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// IfNoneMatch sets the optional parameter which makes the operation
// fail if the object's ETag matches the given value. This is useful for
// getting updates only after the object has changed since the last
// request. Use googleapi.IsNotModified to check whether the response
// error from Do is the result of In-None-Match.
func (c *RoutersGetNatMappingInfoCall) IfNoneMatch(entityTag string) *RoutersGetNatMappingInfoCall {
c.ifNoneMatch_ = entityTag
return c
}
// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *RoutersGetNatMappingInfoCall) Context(ctx context.Context) *RoutersGetNatMappingInfoCall {
c.ctx_ = ctx
return c
}
// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *RoutersGetNatMappingInfoCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *RoutersGetNatMappingInfoCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := make(http.Header)
for k, v := range c.header_ {
reqHeaders[k] = v
}
reqHeaders.Set("User-Agent", c.s.userAgent())
if c.ifNoneMatch_ != "" {
reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
}
var body io.Reader = nil
c.urlParams_.Set("alt", alt)
urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/getNatMappingInfo")
urls += "?" + c.urlParams_.Encode()
req, _ := http.NewRequest("GET", urls, body)
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"project": c.project,
"region": c.region,
"router": c.router,
})
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "compute.routers.getNatMappingInfo" call.
// Exactly one of *VmEndpointNatMappingsList or error will be non-nil.
// Any non-2xx status code is an error. Response headers are in either
// *VmEndpointNatMappingsList.ServerResponse.Header or (if a response
// was returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was
// because http.StatusNotModified was returned.
func (c *RoutersGetNatMappingInfoCall) Do(opts ...googleapi.CallOption) (*VmEndpointNatMappingsList, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, &googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
}
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, err
}
ret := &VmEndpointNatMappingsList{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
if err := gensupport.DecodeResponse(target, res); err != nil {
return nil, err
}
return ret, nil
// {
// "description": "Retrieves runtime Nat mapping information of VM endpoints.",
// "httpMethod": "GET",
// "id": "compute.routers.getNatMappingInfo",
// "parameterOrder": [
// "project",
// "region",
// "router"
// ],
// "parameters": {
// "filter": {
// "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
// "location": "query",
// "type": "string"
// },
// "maxResults": {
// "default": "500",
// "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
// "format": "uint32",
// "location": "query",
// "minimum": "0",
// "type": "integer"
// },
// "orderBy": {
// "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
// "location": "query",
// "type": "string"
// },
// "pageToken": {
// "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
// "location": "query",
// "type": "string"
// },
// "project": {
// "description": "Project ID for this request.",
// "location": "path",
// "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
// "required": true,
// "type": "string"
// },
// "region": {
// "description": "Name of the region for this request.",
// "location": "path",
// "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
// "required": true,
// "type": "string"
// },
// "router": {
// "description": "Name of the Router resource to query for Nat Mapping information of VM endpoints.",
// "location": "path",
// "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
// "required": true,
// "type": "string"
// }
// },
// "path": "{project}/regions/{region}/routers/{router}/getNatMappingInfo",
// "response": {
// "$ref": "VmEndpointNatMappingsList"
// },
// "scopes": [
// "https://www.googleapis.com/auth/cloud-platform",
// "https://www.googleapis.com/auth/compute",
// "https://www.googleapis.com/auth/compute.readonly"
// ]
// }
}
// Pages invokes f for each page of results.
// A non-nil error returned from f will halt the iteration.
// The provided context supersedes any context provided to the Context method.
func (c *RoutersGetNatMappingInfoCall) Pages(ctx context.Context, f func(*VmEndpointNatMappingsList) error) error {
c.ctx_ = ctx
defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
for {
x, err := c.Do()
if err != nil {
return err
}
if err := f(x); err != nil {
return err
}
if x.NextPageToken == "" {
return nil
}
c.PageToken(x.NextPageToken)
}
}
// method id "compute.routers.getRouterStatus": // method id "compute.routers.getRouterStatus":
type RoutersGetRouterStatusCall struct { type RoutersGetRouterStatusCall struct {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -29,7 +29,7 @@
"description": "Creates and runs virtual machines on Google Cloud Platform.", "description": "Creates and runs virtual machines on Google Cloud Platform.",
"discoveryVersion": "v1", "discoveryVersion": "v1",
"documentationLink": "https://developers.google.com/compute/docs/reference/latest/", "documentationLink": "https://developers.google.com/compute/docs/reference/latest/",
"etag": "\"Zkyw9ACJZUvcYmlFaKGChzhmtnE/rcMTQpIOHgWYetp22aQ7_LoqIH4\"", "etag": "\"Zkyw9ACJZUvcYmlFaKGChzhmtnE/BGL7e2LbtubnBH3AZ2eFVpuxx2U\"",
"icons": { "icons": {
"x16": "https://www.google.com/images/icons/product/compute_engine-16.png", "x16": "https://www.google.com/images/icons/product/compute_engine-16.png",
"x32": "https://www.google.com/images/icons/product/compute_engine-32.png" "x32": "https://www.google.com/images/icons/product/compute_engine-32.png"
@ -812,6 +812,46 @@
}, },
"backendBuckets": { "backendBuckets": {
"methods": { "methods": {
"addSignedUrlKey": {
"description": "Adds the given Signed URL Key to the backend bucket.",
"httpMethod": "POST",
"id": "compute.backendBuckets.addSignedUrlKey",
"parameterOrder": [
"project",
"backendBucket"
],
"parameters": {
"backendBucket": {
"description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
"location": "path",
"required": true,
"type": "string"
},
"project": {
"description": "Project ID for this request.",
"location": "path",
"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
"required": true,
"type": "string"
},
"requestId": {
"description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
"location": "query",
"type": "string"
}
},
"path": "{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey",
"request": {
"$ref": "SignedUrlKey"
},
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/compute"
]
},
"delete": { "delete": {
"description": "Deletes the specified BackendBucket resource.", "description": "Deletes the specified BackendBucket resource.",
"httpMethod": "DELETE", "httpMethod": "DELETE",
@ -850,6 +890,50 @@
"https://www.googleapis.com/auth/compute" "https://www.googleapis.com/auth/compute"
] ]
}, },
"deleteSignedUrlKey": {
"description": "Deletes the given Signed URL Key from the backend bucket.",
"httpMethod": "POST",
"id": "compute.backendBuckets.deleteSignedUrlKey",
"parameterOrder": [
"project",
"backendBucket",
"keyName"
],
"parameters": {
"backendBucket": {
"description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
"location": "path",
"required": true,
"type": "string"
},
"keyName": {
"description": "The name of the Signed URL Key to delete.",
"location": "query",
"required": true,
"type": "string"
},
"project": {
"description": "Project ID for this request.",
"location": "path",
"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
"required": true,
"type": "string"
},
"requestId": {
"description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
"location": "query",
"type": "string"
}
},
"path": "{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey",
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/compute"
]
},
"get": { "get": {
"description": "Returns the specified BackendBucket resource. Gets 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", "httpMethod": "GET",
@ -1052,6 +1136,46 @@
}, },
"backendServices": { "backendServices": {
"methods": { "methods": {
"addSignedUrlKey": {
"description": "Adds the given Signed URL Key to the specified backend service.",
"httpMethod": "POST",
"id": "compute.backendServices.addSignedUrlKey",
"parameterOrder": [
"project",
"backendService"
],
"parameters": {
"backendService": {
"description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
"location": "path",
"required": true,
"type": "string"
},
"project": {
"description": "Project ID for this request.",
"location": "path",
"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
"required": true,
"type": "string"
},
"requestId": {
"description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
"location": "query",
"type": "string"
}
},
"path": "{project}/global/backendServices/{backendService}/addSignedUrlKey",
"request": {
"$ref": "SignedUrlKey"
},
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/compute"
]
},
"aggregatedList": { "aggregatedList": {
"description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project.", "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project.",
"httpMethod": "GET", "httpMethod": "GET",
@ -1139,6 +1263,50 @@
"https://www.googleapis.com/auth/compute" "https://www.googleapis.com/auth/compute"
] ]
}, },
"deleteSignedUrlKey": {
"description": "Deletes the given Signed URL Key from the specified backend service.",
"httpMethod": "POST",
"id": "compute.backendServices.deleteSignedUrlKey",
"parameterOrder": [
"project",
"backendService",
"keyName"
],
"parameters": {
"backendService": {
"description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
"location": "path",
"required": true,
"type": "string"
},
"keyName": {
"description": "The name of the Signed URL Key to delete.",
"location": "query",
"required": true,
"type": "string"
},
"project": {
"description": "Project ID for this request.",
"location": "path",
"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
"required": true,
"type": "string"
},
"requestId": {
"description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
"location": "query",
"type": "string"
}
},
"path": "{project}/global/backendServices/{backendService}/deleteSignedUrlKey",
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/compute"
]
},
"get": { "get": {
"description": "Returns the specified BackendService resource. Gets 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", "httpMethod": "GET",
@ -14944,7 +15112,6 @@
} }
} }
}, },
"revision": "20180518",
"rootUrl": "https://www.googleapis.com/", "rootUrl": "https://www.googleapis.com/",
"schemas": { "schemas": {
"AcceleratorConfig": { "AcceleratorConfig": {
@ -15443,9 +15610,11 @@
"description": "[Output Only] The status of the address, which can be one of RESERVING, RESERVED, or IN_USE. An address that is RESERVING is currently in the process of being reserved. A RESERVED address is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.", "description": "[Output Only] The status of the address, which can be one of RESERVING, RESERVED, or IN_USE. An address that is RESERVING is currently in the process of being reserved. A RESERVED address is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.",
"enum": [ "enum": [
"IN_USE", "IN_USE",
"RESERVED" "RESERVED",
"RESERVING"
], ],
"enumDescriptions": [ "enumDescriptions": [
"",
"", "",
"" ""
], ],
@ -16526,6 +16695,10 @@
"description": "Cloud Storage bucket name.", "description": "Cloud Storage bucket name.",
"type": "string" "type": "string"
}, },
"cdnPolicy": {
"$ref": "BackendBucketCdnPolicy",
"description": "Cloud CDN Coniguration for this BackendBucket."
},
"creationTimestamp": { "creationTimestamp": {
"description": "[Output Only] Creation timestamp in RFC3339 text format.", "description": "[Output Only] Creation timestamp in RFC3339 text format.",
"type": "string" "type": "string"
@ -16560,6 +16733,25 @@
}, },
"type": "object" "type": "object"
}, },
"BackendBucketCdnPolicy": {
"description": "Message containing Cloud CDN configuration for a backend bucket.",
"id": "BackendBucketCdnPolicy",
"properties": {
"signedUrlCacheMaxAgeSec": {
"description": "Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this bucket had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.",
"format": "int64",
"type": "string"
},
"signedUrlKeyNames": {
"description": "[Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend bucket.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"BackendBucketList": { "BackendBucketList": {
"description": "Contains a list of BackendBucket resources.", "description": "Contains a list of BackendBucket resources.",
"id": "BackendBucketList", "id": "BackendBucketList",
@ -16932,6 +17124,18 @@
"cacheKeyPolicy": { "cacheKeyPolicy": {
"$ref": "CacheKeyPolicy", "$ref": "CacheKeyPolicy",
"description": "The CacheKeyPolicy for this CdnPolicy." "description": "The CacheKeyPolicy for this CdnPolicy."
},
"signedUrlCacheMaxAgeSec": {
"description": "Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.",
"format": "int64",
"type": "string"
},
"signedUrlKeyNames": {
"description": "[Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.",
"items": {
"type": "string"
},
"type": "array"
} }
}, },
"type": "object" "type": "object"
@ -17980,6 +18184,47 @@
}, },
"type": "object" "type": "object"
}, },
"DiskInstantiationConfig": {
"description": "A specification of the desired way to instantiate a disk in the instance template when its created from a source instance.",
"id": "DiskInstantiationConfig",
"properties": {
"autoDelete": {
"description": "Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).",
"type": "boolean"
},
"customImage": {
"description": "The custom source image to be used to restore this disk when instantiating this instance template.",
"type": "string"
},
"deviceName": {
"description": "Specifies the device name of the disk to which the configurations apply to.",
"type": "string"
},
"instantiateFrom": {
"description": "Specifies whether to include the disk and what image to use. Possible values are: \n- source-image: to use the same image that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. \n- source-image-family: to use the same image family that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. \n- custom-image: to use a user-provided image url for disk creation. Applicable to the boot disk and additional read-write disks. \n- attach-read-only: to attach a read-only disk. Applicable to read-only disks. \n- do-not-include: to exclude a disk from the template. Applicable to additional read-write disks, local SSDs, and read-only disks.",
"enum": [
"ATTACH_READ_ONLY",
"BLANK",
"CUSTOM_IMAGE",
"DEFAULT",
"DO_NOT_INCLUDE",
"SOURCE_IMAGE",
"SOURCE_IMAGE_FAMILY"
],
"enumDescriptions": [
"",
"",
"",
"",
"",
"",
""
],
"type": "string"
}
},
"type": "object"
},
"DiskList": { "DiskList": {
"description": "A list of Disk resources.", "description": "A list of Disk resources.",
"id": "DiskList", "id": "DiskList",
@ -22037,6 +22282,14 @@
"selfLink": { "selfLink": {
"description": "[Output Only] The URL for this instance template. The server defines this URL.", "description": "[Output Only] The URL for this instance template. The server defines this URL.",
"type": "string" "type": "string"
},
"sourceInstance": {
"description": "The source instance used to create the template. You can provide this as a partial or full URL to the resource. For example, the following are valid values: \n- https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance \n- projects/project/zones/zone/instances/instance",
"type": "string"
},
"sourceInstanceParams": {
"$ref": "SourceInstanceParams",
"description": "The source instance params to use to create this instance template."
} }
}, },
"type": "object" "type": "object"
@ -24148,7 +24401,7 @@
"type": "object" "type": "object"
}, },
"ManagedInstance": { "ManagedInstance": {
"description": "Next available tag: 12", "description": "A Managed Instance resource.",
"id": "ManagedInstance", "id": "ManagedInstance",
"properties": { "properties": {
"currentAction": { "currentAction": {
@ -27480,6 +27733,22 @@
}, },
"type": "object" "type": "object"
}, },
"SignedUrlKey": {
"description": "Represents a customer-supplied Signing Key used by Cloud CDN Signed URLs",
"id": "SignedUrlKey",
"properties": {
"keyName": {
"description": "Name of the key. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.",
"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
"type": "string"
},
"keyValue": {
"description": "128-bit key value used for signing the URL. The key value must be a valid RFC 4648 Section 5 base64url encoded string.",
"type": "string"
}
},
"type": "object"
},
"Snapshot": { "Snapshot": {
"description": "A persistent disk snapshot resource. (== resource_for beta.snapshots ==) (== resource_for v1.snapshots ==)", "description": "A persistent disk snapshot resource. (== resource_for beta.snapshots ==) (== resource_for v1.snapshots ==)",
"id": "Snapshot", "id": "Snapshot",
@ -27709,6 +27978,20 @@
}, },
"type": "object" "type": "object"
}, },
"SourceInstanceParams": {
"description": "A specification of the parameters to use when creating the instance template from a source instance.",
"id": "SourceInstanceParams",
"properties": {
"diskConfigs": {
"description": "Attached disks configuration. If not provided, defaults are applied: For boot disk and any other R/W disks, new custom images will be created from each disk. For read-only disks, they will be attached in read-only mode. Local SSD disks will be created as blank volumes.",
"items": {
"$ref": "DiskInstantiationConfig"
},
"type": "array"
}
},
"type": "object"
},
"SslCertificate": { "SslCertificate": {
"description": "An SslCertificate resource. This resource provides a mechanism to upload an SSL key and certificate to the load balancer to serve secure connections from the user. (== resource_for beta.sslCertificates ==) (== resource_for v1.sslCertificates ==)", "description": "An SslCertificate resource. This resource provides a mechanism to upload an SSL key and certificate to the load balancer to serve secure connections from the user. (== resource_for beta.sslCertificates ==) (== resource_for v1.sslCertificates ==)",
"id": "SslCertificate", "id": "SslCertificate",

View File

@ -1413,6 +1413,7 @@ type Address struct {
// Possible values: // Possible values:
// "IN_USE" // "IN_USE"
// "RESERVED" // "RESERVED"
// "RESERVING"
Status string `json:"status,omitempty"` Status string `json:"status,omitempty"`
// Subnetwork: The URL of the subnetwork in which to reserve the // Subnetwork: The URL of the subnetwork in which to reserve the
@ -3130,6 +3131,9 @@ type BackendBucket struct {
// BucketName: Cloud Storage bucket name. // BucketName: Cloud Storage bucket name.
BucketName string `json:"bucketName,omitempty"` BucketName string `json:"bucketName,omitempty"`
// CdnPolicy: Cloud CDN Coniguration for this BackendBucket.
CdnPolicy *BackendBucketCdnPolicy `json:"cdnPolicy,omitempty"`
// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
// format. // format.
CreationTimestamp string `json:"creationTimestamp,omitempty"` CreationTimestamp string `json:"creationTimestamp,omitempty"`
@ -3187,6 +3191,48 @@ func (s *BackendBucket) MarshalJSON() ([]byte, error) {
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
} }
// BackendBucketCdnPolicy: Message containing Cloud CDN configuration
// for a backend bucket.
type BackendBucketCdnPolicy struct {
// SignedUrlCacheMaxAgeSec: Number of seconds up to which the response
// to a signed URL request will be cached in the CDN. After this time
// period, the Signed URL will be revalidated before being served.
// Defaults to 1hr (3600s). If this field is set, Cloud CDN will
// internally act as though all responses from this bucket had a
// ?Cache-Control: public, max-age=[TTL]? header, regardless of any
// existing Cache-Control header. The actual headers served in responses
// will not be altered.
SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
// SignedUrlKeyNames: [Output Only] Names of the keys currently
// configured for Cloud CDN Signed URL on this backend bucket.
SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
// ForceSendFields is a list of field names (e.g.
// "SignedUrlCacheMaxAgeSec") to unconditionally include in API
// requests. By default, fields with empty values are omitted from API
// requests. However, any non-pointer, non-interface field appearing in
// ForceSendFields will be sent to the server regardless of whether the
// field is empty or not. This may be used to include empty fields in
// Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "SignedUrlCacheMaxAgeSec")
// to include in API requests with the JSON null value. By default,
// fields with empty values are omitted from API requests. However, any
// field with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *BackendBucketCdnPolicy) MarshalJSON() ([]byte, error) {
type NoMethod BackendBucketCdnPolicy
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// BackendBucketList: Contains a list of BackendBucket resources. // BackendBucketList: Contains a list of BackendBucket resources.
type BackendBucketList struct { type BackendBucketList struct {
// Id: [Output Only] Unique identifier for the resource; defined by the // Id: [Output Only] Unique identifier for the resource; defined by the
@ -3676,6 +3722,20 @@ type BackendServiceCdnPolicy struct {
// CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy. // CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy.
CacheKeyPolicy *CacheKeyPolicy `json:"cacheKeyPolicy,omitempty"` CacheKeyPolicy *CacheKeyPolicy `json:"cacheKeyPolicy,omitempty"`
// SignedUrlCacheMaxAgeSec: Number of seconds up to which the response
// to a signed URL request will be cached in the CDN. After this time
// period, the Signed URL will be revalidated before being served.
// Defaults to 1hr (3600s). If this field is set, Cloud CDN will
// internally act as though all responses from this backend had a
// ?Cache-Control: public, max-age=[TTL]? header, regardless of any
// existing Cache-Control header. The actual headers served in responses
// will not be altered.
SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
// SignedUrlKeyNames: [Output Only] Names of the keys currently
// configured for Cloud CDN Signed URL on this backend service.
SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
// ForceSendFields is a list of field names (e.g. "CacheKeyPolicy") to // ForceSendFields is a list of field names (e.g. "CacheKeyPolicy") to
// unconditionally include in API requests. By default, fields with // unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer, // empty values are omitted from API requests. However, any non-pointer,
@ -5232,6 +5292,71 @@ func (s *DiskAggregatedListWarningData) MarshalJSON() ([]byte, error) {
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
} }
// DiskInstantiationConfig: A specification of the desired way to
// instantiate a disk in the instance template when its created from a
// source instance.
type DiskInstantiationConfig struct {
// AutoDelete: Specifies whether the disk will be auto-deleted when the
// instance is deleted (but not when the disk is detached from the
// instance).
AutoDelete bool `json:"autoDelete,omitempty"`
// CustomImage: The custom source image to be used to restore this disk
// when instantiating this instance template.
CustomImage string `json:"customImage,omitempty"`
// DeviceName: Specifies the device name of the disk to which the
// configurations apply to.
DeviceName string `json:"deviceName,omitempty"`
// InstantiateFrom: Specifies whether to include the disk and what image
// to use. Possible values are:
// - source-image: to use the same image that was used to create the
// source instance's corresponding disk. Applicable to the boot disk and
// additional read-write disks.
// - source-image-family: to use the same image family that was used to
// create the source instance's corresponding disk. Applicable to the
// boot disk and additional read-write disks.
// - custom-image: to use a user-provided image url for disk creation.
// Applicable to the boot disk and additional read-write disks.
// - attach-read-only: to attach a read-only disk. Applicable to
// read-only disks.
// - do-not-include: to exclude a disk from the template. Applicable to
// additional read-write disks, local SSDs, and read-only disks.
//
// Possible values:
// "ATTACH_READ_ONLY"
// "BLANK"
// "CUSTOM_IMAGE"
// "DEFAULT"
// "DO_NOT_INCLUDE"
// "SOURCE_IMAGE"
// "SOURCE_IMAGE_FAMILY"
InstantiateFrom string `json:"instantiateFrom,omitempty"`
// ForceSendFields is a list of field names (e.g. "AutoDelete") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AutoDelete") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *DiskInstantiationConfig) MarshalJSON() ([]byte, error) {
type NoMethod DiskInstantiationConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// DiskList: A list of Disk resources. // DiskList: A list of Disk resources.
type DiskList struct { type DiskList struct {
// Id: [Output Only] Unique identifier for the resource; defined by the // Id: [Output Only] Unique identifier for the resource; defined by the
@ -11055,6 +11180,18 @@ type InstanceTemplate struct {
// server defines this URL. // server defines this URL.
SelfLink string `json:"selfLink,omitempty"` SelfLink string `json:"selfLink,omitempty"`
// SourceInstance: The source instance used to create the template. You
// can provide this as a partial or full URL to the resource. For
// example, the following are valid values:
// -
// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
// - projects/project/zones/zone/instances/instance
SourceInstance string `json:"sourceInstance,omitempty"`
// SourceInstanceParams: The source instance params to use to create
// this instance template.
SourceInstanceParams *SourceInstanceParams `json:"sourceInstanceParams,omitempty"`
// ServerResponse contains the HTTP response code and headers from the // ServerResponse contains the HTTP response code and headers from the
// server. // server.
googleapi.ServerResponse `json:"-"` googleapi.ServerResponse `json:"-"`
@ -13951,7 +14088,7 @@ func (s *MachineTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
} }
// ManagedInstance: Next available tag: 12 // ManagedInstance: A Managed Instance resource.
type ManagedInstance struct { type ManagedInstance struct {
// CurrentAction: [Output Only] The current action that the managed // CurrentAction: [Output Only] The current action that the managed
// instance group has scheduled for the instance. Possible values: // instance group has scheduled for the instance. Possible values:
@ -18797,6 +18934,44 @@ func (s *ServiceAccount) MarshalJSON() ([]byte, error) {
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
} }
// SignedUrlKey: Represents a customer-supplied Signing Key used by
// Cloud CDN Signed URLs
type SignedUrlKey struct {
// KeyName: Name of the key. The name must be 1-63 characters long, and
// comply with RFC1035. Specifically, the name must be 1-63 characters
// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
// which means the first character must be a lowercase letter, and all
// following characters must be a dash, lowercase letter, or digit,
// except the last character, which cannot be a dash.
KeyName string `json:"keyName,omitempty"`
// KeyValue: 128-bit key value used for signing the URL. The key value
// must be a valid RFC 4648 Section 5 base64url encoded string.
KeyValue string `json:"keyValue,omitempty"`
// ForceSendFields is a list of field names (e.g. "KeyName") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "KeyName") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *SignedUrlKey) MarshalJSON() ([]byte, error) {
type NoMethod SignedUrlKey
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// Snapshot: A persistent disk snapshot resource. (== resource_for // Snapshot: A persistent disk snapshot resource. (== resource_for
// beta.snapshots ==) (== resource_for v1.snapshots ==) // beta.snapshots ==) (== resource_for v1.snapshots ==)
type Snapshot struct { type Snapshot struct {
@ -19095,6 +19270,39 @@ func (s *SnapshotListWarningData) MarshalJSON() ([]byte, error) {
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
} }
// SourceInstanceParams: A specification of the parameters to use when
// creating the instance template from a source instance.
type SourceInstanceParams struct {
// DiskConfigs: Attached disks configuration. If not provided, defaults
// are applied: For boot disk and any other R/W disks, new custom images
// will be created from each disk. For read-only disks, they will be
// attached in read-only mode. Local SSD disks will be created as blank
// volumes.
DiskConfigs []*DiskInstantiationConfig `json:"diskConfigs,omitempty"`
// ForceSendFields is a list of field names (e.g. "DiskConfigs") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "DiskConfigs") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *SourceInstanceParams) MarshalJSON() ([]byte, error) {
type NoMethod SourceInstanceParams
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// SslCertificate: An SslCertificate resource. This resource provides a // SslCertificate: An SslCertificate resource. This resource provides a
// mechanism to upload an SSL key and certificate to the load balancer // mechanism to upload an SSL key and certificate to the load balancer
// to serve secure connections from the user. (== resource_for // to serve secure connections from the user. (== resource_for
@ -28056,6 +28264,175 @@ func (c *AutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, er
} }
// method id "compute.backendBuckets.addSignedUrlKey":
type BackendBucketsAddSignedUrlKeyCall struct {
s *Service
project string
backendBucket string
signedurlkey *SignedUrlKey
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// AddSignedUrlKey: Adds the given Signed URL Key to the backend bucket.
func (r *BackendBucketsService) AddSignedUrlKey(project string, backendBucket string, signedurlkey *SignedUrlKey) *BackendBucketsAddSignedUrlKeyCall {
c := &BackendBucketsAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.project = project
c.backendBucket = backendBucket
c.signedurlkey = signedurlkey
return c
}
// RequestId sets the optional parameter "requestId": An optional
// request ID to identify requests. Specify a unique request ID so that
// if you must retry your request, the server will know to ignore the
// request if it has already been completed.
//
// For example, consider a situation where you make an initial request
// and the request times out. If you make the request again with the
// same request ID, the server can check if original operation with the
// same request ID was received, and if so, will ignore the second
// request. This prevents clients from accidentally creating duplicate
// commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID
// is not supported (00000000-0000-0000-0000-000000000000).
func (c *BackendBucketsAddSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsAddSignedUrlKeyCall {
c.urlParams_.Set("requestId", requestId)
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *BackendBucketsAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsAddSignedUrlKeyCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *BackendBucketsAddSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsAddSignedUrlKeyCall {
c.ctx_ = ctx
return c
}
// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *BackendBucketsAddSignedUrlKeyCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *BackendBucketsAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := make(http.Header)
for k, v := range c.header_ {
reqHeaders[k] = v
}
reqHeaders.Set("User-Agent", c.s.userAgent())
var body io.Reader = nil
body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
if err != nil {
return nil, err
}
reqHeaders.Set("Content-Type", "application/json")
c.urlParams_.Set("alt", alt)
urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey")
urls += "?" + c.urlParams_.Encode()
req, _ := http.NewRequest("POST", urls, body)
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"project": c.project,
"backendBucket": c.backendBucket,
})
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "compute.backendBuckets.addSignedUrlKey" call.
// Exactly one of *Operation or error will be non-nil. Any non-2xx
// status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
// to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *BackendBucketsAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, &googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
}
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, err
}
ret := &Operation{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
if err := gensupport.DecodeResponse(target, res); err != nil {
return nil, err
}
return ret, nil
// {
// "description": "Adds the given Signed URL Key to the backend bucket.",
// "httpMethod": "POST",
// "id": "compute.backendBuckets.addSignedUrlKey",
// "parameterOrder": [
// "project",
// "backendBucket"
// ],
// "parameters": {
// "backendBucket": {
// "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
// "location": "path",
// "required": true,
// "type": "string"
// },
// "project": {
// "description": "Project ID for this request.",
// "location": "path",
// "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
// "required": true,
// "type": "string"
// },
// "requestId": {
// "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
// "location": "query",
// "type": "string"
// }
// },
// "path": "{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey",
// "request": {
// "$ref": "SignedUrlKey"
// },
// "response": {
// "$ref": "Operation"
// },
// "scopes": [
// "https://www.googleapis.com/auth/cloud-platform",
// "https://www.googleapis.com/auth/compute"
// ]
// }
}
// method id "compute.backendBuckets.delete": // method id "compute.backendBuckets.delete":
type BackendBucketsDeleteCall struct { type BackendBucketsDeleteCall struct {
@ -28216,6 +28593,174 @@ func (c *BackendBucketsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation,
} }
// method id "compute.backendBuckets.deleteSignedUrlKey":
type BackendBucketsDeleteSignedUrlKeyCall struct {
s *Service
project string
backendBucket string
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// DeleteSignedUrlKey: Deletes the given Signed URL Key from the backend
// bucket.
func (r *BackendBucketsService) DeleteSignedUrlKey(project string, backendBucket string, keyName string) *BackendBucketsDeleteSignedUrlKeyCall {
c := &BackendBucketsDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.project = project
c.backendBucket = backendBucket
c.urlParams_.Set("keyName", keyName)
return c
}
// RequestId sets the optional parameter "requestId": An optional
// request ID to identify requests. Specify a unique request ID so that
// if you must retry your request, the server will know to ignore the
// request if it has already been completed.
//
// For example, consider a situation where you make an initial request
// and the request times out. If you make the request again with the
// same request ID, the server can check if original operation with the
// same request ID was received, and if so, will ignore the second
// request. This prevents clients from accidentally creating duplicate
// commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID
// is not supported (00000000-0000-0000-0000-000000000000).
func (c *BackendBucketsDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsDeleteSignedUrlKeyCall {
c.urlParams_.Set("requestId", requestId)
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *BackendBucketsDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteSignedUrlKeyCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *BackendBucketsDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsDeleteSignedUrlKeyCall {
c.ctx_ = ctx
return c
}
// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *BackendBucketsDeleteSignedUrlKeyCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *BackendBucketsDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := make(http.Header)
for k, v := range c.header_ {
reqHeaders[k] = v
}
reqHeaders.Set("User-Agent", c.s.userAgent())
var body io.Reader = nil
c.urlParams_.Set("alt", alt)
urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey")
urls += "?" + c.urlParams_.Encode()
req, _ := http.NewRequest("POST", urls, body)
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"project": c.project,
"backendBucket": c.backendBucket,
})
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "compute.backendBuckets.deleteSignedUrlKey" call.
// Exactly one of *Operation or error will be non-nil. Any non-2xx
// status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
// to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *BackendBucketsDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, &googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
}
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, err
}
ret := &Operation{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
if err := gensupport.DecodeResponse(target, res); err != nil {
return nil, err
}
return ret, nil
// {
// "description": "Deletes the given Signed URL Key from the backend bucket.",
// "httpMethod": "POST",
// "id": "compute.backendBuckets.deleteSignedUrlKey",
// "parameterOrder": [
// "project",
// "backendBucket",
// "keyName"
// ],
// "parameters": {
// "backendBucket": {
// "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
// "location": "path",
// "required": true,
// "type": "string"
// },
// "keyName": {
// "description": "The name of the Signed URL Key to delete.",
// "location": "query",
// "required": true,
// "type": "string"
// },
// "project": {
// "description": "Project ID for this request.",
// "location": "path",
// "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
// "required": true,
// "type": "string"
// },
// "requestId": {
// "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
// "location": "query",
// "type": "string"
// }
// },
// "path": "{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey",
// "response": {
// "$ref": "Operation"
// },
// "scopes": [
// "https://www.googleapis.com/auth/cloud-platform",
// "https://www.googleapis.com/auth/compute"
// ]
// }
}
// method id "compute.backendBuckets.get": // method id "compute.backendBuckets.get":
type BackendBucketsGetCall struct { type BackendBucketsGetCall struct {
@ -29119,6 +29664,176 @@ func (c *BackendBucketsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation,
} }
// method id "compute.backendServices.addSignedUrlKey":
type BackendServicesAddSignedUrlKeyCall struct {
s *Service
project string
backendService string
signedurlkey *SignedUrlKey
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// AddSignedUrlKey: Adds the given Signed URL Key to the specified
// backend service.
func (r *BackendServicesService) AddSignedUrlKey(project string, backendService string, signedurlkey *SignedUrlKey) *BackendServicesAddSignedUrlKeyCall {
c := &BackendServicesAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.project = project
c.backendService = backendService
c.signedurlkey = signedurlkey
return c
}
// RequestId sets the optional parameter "requestId": An optional
// request ID to identify requests. Specify a unique request ID so that
// if you must retry your request, the server will know to ignore the
// request if it has already been completed.
//
// For example, consider a situation where you make an initial request
// and the request times out. If you make the request again with the
// same request ID, the server can check if original operation with the
// same request ID was received, and if so, will ignore the second
// request. This prevents clients from accidentally creating duplicate
// commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID
// is not supported (00000000-0000-0000-0000-000000000000).
func (c *BackendServicesAddSignedUrlKeyCall) RequestId(requestId string) *BackendServicesAddSignedUrlKeyCall {
c.urlParams_.Set("requestId", requestId)
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *BackendServicesAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesAddSignedUrlKeyCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *BackendServicesAddSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesAddSignedUrlKeyCall {
c.ctx_ = ctx
return c
}
// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *BackendServicesAddSignedUrlKeyCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *BackendServicesAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := make(http.Header)
for k, v := range c.header_ {
reqHeaders[k] = v
}
reqHeaders.Set("User-Agent", c.s.userAgent())
var body io.Reader = nil
body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
if err != nil {
return nil, err
}
reqHeaders.Set("Content-Type", "application/json")
c.urlParams_.Set("alt", alt)
urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/addSignedUrlKey")
urls += "?" + c.urlParams_.Encode()
req, _ := http.NewRequest("POST", urls, body)
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"project": c.project,
"backendService": c.backendService,
})
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "compute.backendServices.addSignedUrlKey" call.
// Exactly one of *Operation or error will be non-nil. Any non-2xx
// status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
// to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *BackendServicesAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, &googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
}
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, err
}
ret := &Operation{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
if err := gensupport.DecodeResponse(target, res); err != nil {
return nil, err
}
return ret, nil
// {
// "description": "Adds the given Signed URL Key to the specified backend service.",
// "httpMethod": "POST",
// "id": "compute.backendServices.addSignedUrlKey",
// "parameterOrder": [
// "project",
// "backendService"
// ],
// "parameters": {
// "backendService": {
// "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
// "location": "path",
// "required": true,
// "type": "string"
// },
// "project": {
// "description": "Project ID for this request.",
// "location": "path",
// "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
// "required": true,
// "type": "string"
// },
// "requestId": {
// "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
// "location": "query",
// "type": "string"
// }
// },
// "path": "{project}/global/backendServices/{backendService}/addSignedUrlKey",
// "request": {
// "$ref": "SignedUrlKey"
// },
// "response": {
// "$ref": "Operation"
// },
// "scopes": [
// "https://www.googleapis.com/auth/cloud-platform",
// "https://www.googleapis.com/auth/compute"
// ]
// }
}
// method id "compute.backendServices.aggregatedList": // method id "compute.backendServices.aggregatedList":
type BackendServicesAggregatedListCall struct { type BackendServicesAggregatedListCall struct {
@ -29528,6 +30243,174 @@ func (c *BackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation
} }
// method id "compute.backendServices.deleteSignedUrlKey":
type BackendServicesDeleteSignedUrlKeyCall struct {
s *Service
project string
backendService string
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// DeleteSignedUrlKey: Deletes the given Signed URL Key from the
// specified backend service.
func (r *BackendServicesService) DeleteSignedUrlKey(project string, backendService string, keyName string) *BackendServicesDeleteSignedUrlKeyCall {
c := &BackendServicesDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.project = project
c.backendService = backendService
c.urlParams_.Set("keyName", keyName)
return c
}
// RequestId sets the optional parameter "requestId": An optional
// request ID to identify requests. Specify a unique request ID so that
// if you must retry your request, the server will know to ignore the
// request if it has already been completed.
//
// For example, consider a situation where you make an initial request
// and the request times out. If you make the request again with the
// same request ID, the server can check if original operation with the
// same request ID was received, and if so, will ignore the second
// request. This prevents clients from accidentally creating duplicate
// commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID
// is not supported (00000000-0000-0000-0000-000000000000).
func (c *BackendServicesDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendServicesDeleteSignedUrlKeyCall {
c.urlParams_.Set("requestId", requestId)
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *BackendServicesDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesDeleteSignedUrlKeyCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *BackendServicesDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesDeleteSignedUrlKeyCall {
c.ctx_ = ctx
return c
}
// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *BackendServicesDeleteSignedUrlKeyCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *BackendServicesDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := make(http.Header)
for k, v := range c.header_ {
reqHeaders[k] = v
}
reqHeaders.Set("User-Agent", c.s.userAgent())
var body io.Reader = nil
c.urlParams_.Set("alt", alt)
urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/deleteSignedUrlKey")
urls += "?" + c.urlParams_.Encode()
req, _ := http.NewRequest("POST", urls, body)
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"project": c.project,
"backendService": c.backendService,
})
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "compute.backendServices.deleteSignedUrlKey" call.
// Exactly one of *Operation or error will be non-nil. Any non-2xx
// status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
// to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *BackendServicesDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, &googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
}
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, err
}
ret := &Operation{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
if err := gensupport.DecodeResponse(target, res); err != nil {
return nil, err
}
return ret, nil
// {
// "description": "Deletes the given Signed URL Key from the specified backend service.",
// "httpMethod": "POST",
// "id": "compute.backendServices.deleteSignedUrlKey",
// "parameterOrder": [
// "project",
// "backendService",
// "keyName"
// ],
// "parameters": {
// "backendService": {
// "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
// "location": "path",
// "required": true,
// "type": "string"
// },
// "keyName": {
// "description": "The name of the Signed URL Key to delete.",
// "location": "query",
// "required": true,
// "type": "string"
// },
// "project": {
// "description": "Project ID for this request.",
// "location": "path",
// "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
// "required": true,
// "type": "string"
// },
// "requestId": {
// "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
// "location": "query",
// "type": "string"
// }
// },
// "path": "{project}/global/backendServices/{backendService}/deleteSignedUrlKey",
// "response": {
// "$ref": "Operation"
// },
// "scopes": [
// "https://www.googleapis.com/auth/cloud-platform",
// "https://www.googleapis.com/auth/compute"
// ]
// }
}
// method id "compute.backendServices.get": // method id "compute.backendServices.get":
type BackendServicesGetCall struct { type BackendServicesGetCall struct {

View File

@ -60,11 +60,6 @@
"location": "query", "location": "query",
"type": "string" "type": "string"
}, },
"bearer_token": {
"description": "OAuth bearer token.",
"location": "query",
"type": "string"
},
"callback": { "callback": {
"description": "JSONP", "description": "JSONP",
"location": "query", "location": "query",
@ -85,12 +80,6 @@
"location": "query", "location": "query",
"type": "string" "type": "string"
}, },
"pp": {
"default": "true",
"description": "Pretty-print response.",
"location": "query",
"type": "boolean"
},
"prettyPrint": { "prettyPrint": {
"default": "true", "default": "true",
"description": "Returns response with indentations and line breaks.", "description": "Returns response with indentations and line breaks.",
@ -2372,7 +2361,7 @@
} }
} }
}, },
"revision": "20180504", "revision": "20180607",
"rootUrl": "https://container.googleapis.com/", "rootUrl": "https://container.googleapis.com/",
"schemas": { "schemas": {
"AcceleratorConfig": { "AcceleratorConfig": {

View File

@ -270,11 +270,20 @@ func ProcessMediaOptions(opts []MediaOption) *MediaOptions {
func ResolveRelative(basestr, relstr string) string { func ResolveRelative(basestr, relstr string) string {
u, _ := url.Parse(basestr) u, _ := url.Parse(basestr)
afterColonPath := ""
if i := strings.IndexRune(relstr, ':'); i > 0 {
afterColonPath = relstr[i+1:]
relstr = relstr[:i]
}
rel, _ := url.Parse(relstr) rel, _ := url.Parse(relstr)
u = u.ResolveReference(rel) u = u.ResolveReference(rel)
us := u.String() us := u.String()
if afterColonPath != "" {
us = fmt.Sprintf("%s:%s", us, afterColonPath)
}
us = strings.Replace(us, "%7B", "{", -1) us = strings.Replace(us, "%7B", "{", -1)
us = strings.Replace(us, "%7D", "}", -1) us = strings.Replace(us, "%7D", "}", -1)
us = strings.Replace(us, "%2A", "*", -1)
return us return us
} }

View File

@ -72,11 +72,6 @@
"location": "query", "location": "query",
"type": "string" "type": "string"
}, },
"bearer_token": {
"description": "OAuth bearer token.",
"location": "query",
"type": "string"
},
"callback": { "callback": {
"description": "JSONP", "description": "JSONP",
"location": "query", "location": "query",
@ -97,12 +92,6 @@
"location": "query", "location": "query",
"type": "string" "type": "string"
}, },
"pp": {
"default": "true",
"description": "Pretty-print response.",
"location": "query",
"type": "boolean"
},
"prettyPrint": { "prettyPrint": {
"default": "true", "default": "true",
"description": "Returns response with indentations and line breaks.", "description": "Returns response with indentations and line breaks.",
@ -755,7 +744,7 @@
} }
} }
}, },
"revision": "20180424", "revision": "20180604",
"rootUrl": "https://logging.googleapis.com/", "rootUrl": "https://logging.googleapis.com/",
"schemas": { "schemas": {
"BucketOptions": { "BucketOptions": {

View File

@ -69,11 +69,6 @@
"location": "query", "location": "query",
"type": "string" "type": "string"
}, },
"bearer_token": {
"description": "OAuth bearer token.",
"location": "query",
"type": "string"
},
"callback": { "callback": {
"description": "JSONP", "description": "JSONP",
"location": "query", "location": "query",
@ -94,12 +89,6 @@
"location": "query", "location": "query",
"type": "string" "type": "string"
}, },
"pp": {
"default": "true",
"description": "Pretty-print response.",
"location": "query",
"type": "boolean"
},
"prettyPrint": { "prettyPrint": {
"default": "true", "default": "true",
"description": "Returns response with indentations and line breaks.", "description": "Returns response with indentations and line breaks.",
@ -1463,7 +1452,7 @@
} }
} }
}, },
"revision": "20180529", "revision": "20180603",
"rootUrl": "https://monitoring.googleapis.com/", "rootUrl": "https://monitoring.googleapis.com/",
"schemas": { "schemas": {
"Aggregation": { "Aggregation": {
@ -1894,7 +1883,7 @@
"type": "string" "type": "string"
}, },
"exemplars": { "exemplars": {
"description": "Must be in increasing order of |value| field. The current requirement enforced by the backend is that at most one Exemplar will fall into any bucket.", "description": "Must be in increasing order of value field.",
"items": { "items": {
"$ref": "Exemplar" "$ref": "Exemplar"
}, },

View File

@ -1068,9 +1068,7 @@ type Distribution struct {
// histogram is provided. // histogram is provided.
Count int64 `json:"count,omitempty,string"` Count int64 `json:"count,omitempty,string"`
// Exemplars: Must be in increasing order of |value| field. The current // Exemplars: Must be in increasing order of value field.
// requirement enforced by the backend is that at most one Exemplar will
// fall into any bucket.
Exemplars []*Exemplar `json:"exemplars,omitempty"` Exemplars []*Exemplar `json:"exemplars,omitempty"`
// Mean: The arithmetic mean of the values in the population. If count // Mean: The arithmetic mean of the values in the population. If count

View File

@ -62,11 +62,6 @@
"location": "query", "location": "query",
"type": "string" "type": "string"
}, },
"bearer_token": {
"description": "OAuth bearer token.",
"location": "query",
"type": "string"
},
"callback": { "callback": {
"description": "JSONP", "description": "JSONP",
"location": "query", "location": "query",
@ -87,12 +82,6 @@
"location": "query", "location": "query",
"type": "string" "type": "string"
}, },
"pp": {
"default": "true",
"description": "Pretty-print response.",
"location": "query",
"type": "boolean"
},
"prettyPrint": { "prettyPrint": {
"default": "true", "default": "true",
"description": "Returns response with indentations and line breaks.", "description": "Returns response with indentations and line breaks.",
@ -1056,7 +1045,7 @@
} }
} }
}, },
"revision": "20180522", "revision": "20180604",
"rootUrl": "https://pubsub.googleapis.com/", "rootUrl": "https://pubsub.googleapis.com/",
"schemas": { "schemas": {
"AcknowledgeRequest": { "AcknowledgeRequest": {